Se poi vuoi divertirti con udev
Per la prima scheda dvb esegui:
Codice: Seleziona tutto
udevinfo -a -p $(udevinfo -q path -n /dev/dvb/adapter0/frontend0 )
Codice: Seleziona tutto
looking at device '/class/dvb/dvb0.frontend0':
KERNEL=="dvb1.frontend0"
SUBSYSTEM=="dvb"
DRIVER==""
ATTR{dev}=="212:3"
looking at parent device '/devices/pci0000:00/0000:00:0e.0/0000:02:07.0':
KERNELS=="0000:02:07.0"
SUBSYSTEMS=="pci"
DRIVERS=="dvb"
......
......
ATTRS{device}=="0x7146"
ATTRS{vendor}=="0x1131"
..........
Per la seconda scheda dvb, esegui:
Codice: Seleziona tutto
udevinfo -a -p $(udevinfo -q path -n /dev/dvb/adapter1/frontend0 )
Codice: Seleziona tutto
looking at device '/class/dvb/dvb1.frontend0':
KERNEL=="dvb0.frontend0"
SUBSYSTEM=="dvb"
DRIVER==""
ATTR{dev}=="212:131"
looking at parent device '/devices/pci0000:00/0000:00:0e.0/0000:02:08.0':
KERNELS=="0000:02:08.0"
SUBSYSTEMS=="pci"
DRIVERS=="saa7134"
.......
.......
ATTRS{device}=="0x7133"
ATTRS{vendor}=="0x1131"
.......
Ti ho riportato quello che accade nel mio sistema, dove senza apposite regole udev, verrebbe prima caricata la DTT (KERNEL=="dvb0.frontend0") e poi la SS1 (KERNEL=="dvb1.frontend0").
Da questi 2 comandi ricavo la scheda ID dello slot PCI tramite l'attributo KERNELS
La scheda SS1 è nello slot PCI: 0000:02:07.0
La scheda DTT è nello slot PCI: 0000:02:08.0
Con questi 2 valori ho creato il file
Codice: Seleziona tutto
/ etc / udev / rules.d / 01-dvb.rules
Codice: Seleziona tutto
BUS=="pci", ID=="0000:02:07.0", KERNEL=="dvb*", SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s 0 $${K#*.}'", NAME="%c"
BUS=="pci", ID=="0000:02:08.0", KERNEL=="dvb*", SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s 1 $${K#*.}'", NAME="%c"
Salvato e riavviato il sistema per rendere le regole operative.
Da notare lo 0 e 1 nella prima e seconda riga, è l'id dell'adapter che voglio dare alla mia scheda.
Comunque la soluzione blacklist è la più semplice.
Ciao