Need help with udev or adapter_nr module option
I have 2 individual DVB tuners and one dual DVB tuner in my system and their order keeps on changing randomly on boot. This is a problem for me because the dual tuner card has a problem with one channel, so I need the order to stay the same so that i can avoid recording that channel on the dual tuners.
I have 2 Dvico Fusion HDTV DVB-T Lite
and one Dvico Fusion HDTV dual express
The problem is these cards are so similar that there isnt much for for udev to pick out to tell them apart. From what I can tell the 2 lite tuners give the exact same info when I do:
udevadm info -a -p $(udevadm info -q path -n /dev/dvb/adapter0/frontend0) ....with different adapter numbers of course.
The dual tuners also give the exact same info.
I have tried this udev rule, which appears to work:
# /etc/udev/rules.d/10-dvb.rules
#
# To Ientify serial nos etc for a Device call
# udevadm info -a -p $(udevadm info -q path -n /dev/dvb/adapter0/frontend0)
#
# Create a symlink for single tuner Dvico DVB-T Lite device
#SUBSYSTEM=="dvb", KERNEL=="dvb1.frontend0", ATTRS{device}=="0x8852", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter103/%%s $${K#*.}'", SYMLINK+="%c"
# Create a symlink for single tuner Dvico DVB-T Lite device
SUBSYSTEM=="dvb", ATTRS{device}=="0x8852", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; N=$${K#*.}; if [ ! -e /dev/dvb/adapter103/$N ] ; then printf dvb/adapter103/%%s $${K#*.}; else printf dvb/adapter104/%%s $${K#*.}; fi ; exit 0'", SYMLINK+="%c"
# Create a symlink for both tuners of Dvico Dual DVB-T device
#SUBSYSTEM=="dvb", KERNEL=="dvb0.frontend0", ATTRS{device}=="0x0878", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter101/%%s $${K#*.}'", SYMLINK+="%c"
# Create a symlink for both tuners of Dvico Dual DVB-T device
SUBSYSTEM=="dvb", ATTRS{device}=="0x0878", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; N=$${K#*.}; if [ ! -e /dev/dvb/adapter101/$N ] ; then printf dvb/adapter101/%%s $${K#*.}; else printf dvb/adapter102/%%s $${K#*.}; fi ; exit 0'", SYMLINK+="%c"
adapter101-104 are created in /dev/dvb and I re-setup the tuners in mythtv-setup and it all looked good at first. But after a couple of reboots the dual tuner vanished and I was left with only 2 tuners. Mythtv-setup could only see 2 tuners at this point. The only way to get it back was to delete the udev rule and reboot, so then I had to add all the tuners again.
I also tried:
# /etc/modules.d/dvb
#
options bttv0 adapter_nr=1
options bttv1 adapter_nr=2
#
options cx23885 adapter_nr=3,4
This looked like it was working at first but after a few days the tuners reverted back to random order.
This is the site I've been getting my info form:
http://www.mythtv.org/wiki/Device_Filenames_and_udev
I've tries everything I can think of now, I could really use some help.

ID nearly identical cards
[ ... ]
I have 2 Dvico Fusion HDTV DVB-T Lite
and one Dvico Fusion HDTV dual express
The problem is these cards are so similar that there isnt much for for udev to pick out to tell them apart. From what I can tell the 2 lite tuners give the exact same info when I do:
udevadm info -a -p $(udevadm info -q path -n /dev/dvb/adapter0/frontend0) ....with different adapter numbers of course.
The dual tuners also give the exact same info.
[ ... ]
I've had difficulties with the seeming random order of device naming and made some udev rules for my cards.
Your cards might have different serial numbers. They certainly have different PCI slot addresses. Perhaps one of these can help you differentiate the cards with a good rule.
In my experience the udev rule, though tricky and sometimes difficult, was the way to go. I think you are on the right path with that.
--
Michael Palmer