[mythtv-users] cx88-dvb won't load

R. G. Newbury newbury at mandamus.org
Tue Mar 21 23:34:13 UTC 2006


Mark Johannessen wrote:
> I tried both renaming and doing a chmod 000 on the files tveeprom.ko,
> tuner.ko, and tda9887.ko that were in three directories on my FC4
> system, for example:
> 
> # locate tveeprom.ko
> /lib/modules/2.6.11-1.1369_FC4/kernel/drivers/media/video/tveeprom.ko
> /lib/modules/2.6.15-1.1833_FC4/updates/drivers/media/video/tveeprom.ko
> /lib/modules/2.6.15-1.1833_FC4/kernel/drivers/media/video/tveeprom.ko

Some history here.
The v4l and dvb people merged their code and got it into the kernel at 
about 2.6.14. That code base uses a file tveeprom.ko to query the 
hardware and pass parameters to the ATSC module (cx88-dvb_ or the NTSC 
module (CX8800). The other modules, cx8802 and cx88-blackbird are 
support modules and may be used by either main module. Fedora, at least, 
  seems to make up its own mind about which module (cx8800 or cx88-dvb) 
it will load first when the kernel finds the hardware. (The modules are 
listed in /lib/modules/$KVER/modules.pcimap but I cannot get the order 
to 'stick') I suspect that all this happens very early in the boot 
process and *before* modprobe.conf gets called (which is why modprobe 
commands do not seem to do what you would expect).

The ivtv people also use a module called tveeprom.ko. Because these both 
query the hardware there are some standards about calling methods etc. 
which makes them similar. In versions .2 and .3 (and IIRC .40) ivtv's 
module was called tveeprom-ivtv.ko.... thus the instruction to add the 
line 'alias tveeprom tveeprom-ivtv' to modprobe.conf.

Now these groups are aiming at merging the code completely. For whatever 
reason, in ivtv .43 the module has reverted to being called tveeprom.ko. 
Big collision!


HERE IS THE PROBLEM:  the ivtv tveeprom module will NOT work with a dvb 
card. It will work only with Hauppauge type cards. BUT Hauppauge cards 
will work happily with the dvb version tveeprom module (since about 
version .41...October 2005)

So, please take notes, there will be a test on this material and it will 
count for 100% of your final mark!

1.	If you have only a Hauppauge card, you may use he ivtv tveeprom module.
2.	If you have an HD3000 card, you must use the kernel tveeprom module.
3.	If you have both an HD3000 card and a Hauppauge card, you must use 
the kernel tveeprom module together with the ivtv tuner, tda9887 and 
other modules.

Rename the tveeprom.ko module in the /updates/drivers... etc folder chain.
Rename the tveeprom.ko module in the /ivtv folder chain but not the 
other modules in that folder.

Comment out all of the lines in modprobe.conf relating to dvb.

Add the following to your rc.local file:

rmmod -v cx88-blackbird
rmmod -v cx88-dvb
rmmod -v cx8800
rmmod -v cx8802			#Remove *everything*!
modprobe cx88-dvb		#The kernel will decide what else it needs to load

The cx88-atsc module had long since been replaced and is no longer used. 
Where did your line calling it come from? That module is NOT in the kernel.
Except for firmware, everything you need to make an HD3000 card work, is 
in the kernel (excepting mythtv, or xine etc)

You need not worry about the kernel 2.6.11 version, as it will only be 
used if you use grub to boot into 2.6.11.

*************** IMPORTANT *******
RUN depmod -a

AFTER renaming the unwanted versions.


> my /etc/modprobe.conf looks like this:
> 
> =====================

> alias char-major-81 ivtv
You should have a line here for the PVR card handled by ivtv...
alias char-major-81-0 ivtv	#points to /dev/video0

Comment out the following
  install cx88-atsc /sbin/modprobe cx8800;/sbin/modprobe
  --ignore-install cx88-atsc
  install cx88-dvb /sbin/modprobe cx8800;/sbin/modprobe --ignore-install 
cx88-dvb
  install btcx-risc /sbin/modprobe tuner;/sbin/modprobe --ignore-install 
btcx-risc
*************
> I get:
> 
> WARNING: Error inserting cx88xx
> (/lib/modules/2.6.15-1.1833_FC4/kernel/drivers/media/video/cx88/cx88xx.ko):
> Unknown symbol in module, or unknown parameter (see dmesg)
> WARNING: Error inserting cx8802
> (/lib/modules/2.6.15-1.1833_FC4/kernel/drivers/media/video/cx88/cx8802.ko):
> Unknown symbol in module, or unknown parameter (see dmesg)
> FATAL: Error inserting cx88_dvb
> (/lib/modules/2.6.15-1.1833_FC4/kernel/drivers/media/video/cx88/cx88-dvb.ko):
> Unknown symbol in module, or unknown parameter (see dmesg)

These errors tell me that you still have the NTSC module cx8800 loaded. 
As far as I know, cx88xx is ONLY loaded by cx8800...it is not loaded on 
my setup with cx88-dvb. I suspect that the cx88-dvb load fails because 
the cx8800 module is already loaded.

I think you need the rmmod's to clean things up (or use modprobe -r if 
you prefer).

> I found that by removing ivtv (yum remove ivtv), I can get
> /sbin/modprobe -v cx88-dvb to load and create the /dev/dvb directory,
> but that breaks at least lirc for my PVR 350.  This at least confirms
> that the issue is with ivtv.  It appears others have gotten cx88-dvb
> to load by simply moving the three files above, but for some reason
> that doesn't work for me.  I also tried re-ordering the loading of
> ivtv, cx88_blackbird, cx88-dvb, and cx8800 with no luck.

Of course it breaks lirc *for the PVR350*...removing ivtv should remove 
the supporting modules that let the PVR350 work.
The last line just above is the source of the problem. DO NOT LOAD 
CX8800  *EVER*.
(Well, not if you want to receive ATSC!).

Hope this helps to clarify what the heck is going on!
Messed me up too!


        R. Geoffrey Newbury			
      Barrister and Solicitor
  Suite 106, 150 Lakeshore Road West
     Mississauga, Ontario, L5H 3R2

   905-271-9600  Fax 905-271-1638
        newbury at mandamus.org


More information about the mythtv-users mailing list