[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