Open-Club.Net Проект полностью ориентирован на Open Source-подход(изучаем, настраиваем, устанавливаем и общаемся о Linux).
Мы в соц. сетях:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Несколько DVB карт в Linux
DiselДата: Вс, 26.07.2009, 20:34 | Сообщение # 1
Генерал-лейтенант
Группа: Бывалый
Сообщений: 489
Столкнулся с проблемой тут недавно. Несколько DVB карт при перезагрузке менялись местами в произвольном порядке. Весьма неприятное явление, если у Вас каналы идут с разных спутников. Они отваливаются напрочь.

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

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

Quote
# 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 с содержимым:
Quote

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-карт. Если надо больше – значит добавляем больше строк. После перезагрузки карты не перемешаются, а останутся зафиксированными.


 
  • Страница 1 из 1
  • 1
Поиск:
Новый ответ
Имя:
Текст сообщения:
Код безопасности: