Несколько DVB карт в Linux

Эта запись опубликована в рубрике [ Линукс ]

Столкнулся с проблемой тут недавно. Несколько DVB карт при перезагрузке менялись местами в произвольном порядке. Весьма неприятное явление, если у Вас каналы идут с разных спутников. Они отваливаются напрочь.

Перерыл кучу всего и только в одном месте смог найти внятное объяснение. Через udev нужно было “зафиксировать” эти карты на своих местах. Проблема была в том, что у меня 4 карты из 5 одного производителя, что влечет за собой невозможность привязки по производителю.

Из положения вышел привязкой по другому параметру. Итак, смотрим параметры карт:

# udevinfo -a -n /dev/dvb/adapter0/frontend0

Udevinfo 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 '/class/dvb/dvb0.frontend0':
    KERNEL=="dvb0.frontend0"
    SUBSYSTEM=="dvb"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:1e.0/0000:02:00.0':
    KERNELS=="0000:02:00.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="b2c2_flexcop_pci"
    ATTRS{vendor}=="0x13d0"
    ATTRS{device}=="0x2103"
    ATTRS{subsystem_vendor}=="0x13d0"
    ATTRS{subsystem_device}=="0x2103"
    ATTRS{class}=="0x028000"
    ATTRS{irq}=="21"
    ATTRS{local_cpus}=="00000000"
    ATTRS{local_cpulist}==""
    ATTRS{modalias}=="pci:v000013D0d00002103sv000013D0sd00002103bc02sc80i00"
    ATTRS{numa_node}=="-1"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""

  looking at parent device '/devices/pci0000:00/0000:00:1e.0':
    KERNELS=="0000:00:1e.0"
    SUBSYSTEMS=="pci"
    DRIVERS==""
    ATTRS{vendor}=="0x8086"
    ATTRS{device}=="0x244e"
    ATTRS{subsystem_vendor}=="0x0000"
    ATTRS{subsystem_device}=="0x0000"
    ATTRS{class}=="0x060400"
    ATTRS{irq}=="0"
    ATTRS{local_cpus}=="00000000"
    ATTRS{local_cpulist}==""
    ATTRS{modalias}=="pci:v00008086d0000244Esv00000000sd00000000bc06sc04i00"
    ATTRS{numa_node}=="-1"
    ATTRS{enable}=="1"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}=="1"

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

Соответственно, для других карт смотрим тоже-самое. Дальше “прибиваем” карту к устройству в dev. Создаем файл /etc/udev/rules.d/10-local.rules с содержимым:

SUBSYSTEM=="dvb", KERNELS=="0000:02:00.0", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter0/%%s $${K#*.}'", NAME="%c", GROUP="video"
SUBSYSTEM=="dvb", KERNELS=="0000:02:02.0", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter1/%%s $${K#*.}'", NAME="%c", GROUP="video"

Это для двух DVB-карт. Если надо больше – значит добавляем больше строк. После перезагрузки карты не перемешаются, а останутся зафиксированными.

Постовые: valet parking heathrow, гостиницы болгарии, наращивание ногтей спб

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Post to Twitter Post to Delicious Post to Facebook Post to MySpace Post to Ping.fm

Оценить эту запись:
1 звезда2 звезды3 звезды4 звезды5 звезд (2 голос(ов), среднее: 2.00 из 5)
Метки: [ , , ]
Вы можете следить за ответами к этой записи через RSS 2.0 feed. Вы можете оставить мнение, или трэкбэк с собственного сайта.

Нет комментариев

(Обязательно)
(Обязательно, не публикуется)