[mythtv-users] WinTV-HVR1100 and Nova-TD Stick udev rules

Alistair Grant akgrant0710 at gmail.com
Sat Mar 8 03:30:04 UTC 2014


Hi Everyone,

I've happily been running MythTV with an old Hauppauge HVR1100 pci
card for a couple of years and have just purchased a Nova-TD USB dual
tuner.  I'm trying to set up appropriate udev rules so the adapter
numbers don't change.

>From reading numerous other threads, my understanding is that I want
to set up a symlink to each of the adapters using udev rules to find
the device.

Using:

$ udevadm info -q path -n /dev/dvb/adapter2/frontend0 --attribute-walk

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device
'/devices/pci0000:00/0000:00:1e.0/0000:02:0c.2/dvb/dvb2.frontend0':
    KERNEL=="dvb2.frontend0"
    SUBSYSTEM=="dvb"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:02:0c.2':
    KERNELS=="0000:02:0c.2"
    SUBSYSTEMS=="pci"
    DRIVERS=="cx88-mpeg driver manager"
    ATTRS{irq}=="20"
    ATTRS{subsystem_vendor}=="0x0070"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x048000"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{local_cpus}=="ff"
    ATTRS{device}=="0x8802"
    ATTRS{msi_bus}==""
    ATTRS{local_cpulist}=="0-7"
    ATTRS{vendor}=="0x14f1"
    ATTRS{subsystem_device}=="0x9800"
    ATTRS{d3cold_allowed}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1e.0':
    KERNELS=="0000:00:1e.0"
    SUBSYSTEMS=="pci"
    DRIVERS==""
    ATTRS{irq}=="0"
    ATTRS{subsystem_vendor}=="0x0000"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x060400"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{local_cpus}=="ff"
    ATTRS{device}=="0x244e"
    ATTRS{msi_bus}=="1"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{vendor}=="0x8086"
    ATTRS{subsystem_device}=="0x0000"
    ATTRS{d3cold_allowed}=="0"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

I can generate a rule:

KERNEL=="dvb?.frontend?", SUBSYSTEM=="dvb", ATTRS{device}=="0x8802",
SYMLINK+="dvb/HVR1100"

But this creates:

$ ls -l /dev/dvb
total 0
drwxr-xr-x 2 root root 120 Mar  8 13:03 adapter0
drwxr-xr-x 2 root root 120 Mar  8 13:03 adapter1
drwxr-xr-x 2 root root 120 Mar  8 13:03 adapter2
lrwxrwxrwx 1 root root   8 Mar  8 13:25 HVR1100 -> adapter2/frontend0

While this allows the card to be configured within Myth, it fails to
scan channels correctly.  My understanding is that the symlink should
just point to the adapter, i.e.

lrwxrwxrwx 1 root root   8 Mar  8 13:25 HVR1100 -> adapter2

Manually setting this up allows the card to be configured and channels
scanned with EIT as the video source.

However:

$ udevadm info -q path -n /dev/dvb/adapter2 --attribute-walk
device node has wrong file type

So I can't see how to generate the udev rule for the adapter, rather
than just for frontend0.

Other info:

OS: Mythbuntu 12.04, kernel 3.11.0-18-generic
MythTV Version : v0.27-178-g6b14852
MythTV Branch : fixes/0.27

(the next problem will be how to generate rules for the USB device,
which has two tuners and I can't see anything to differentiate them
based on udevadm output, but one step at a time).

Thanks very much,
Alistair


More information about the mythtv-users mailing list