Re: Plugin IPTV
Inviato: 16 lug 2008, 18:56
La soluzione proposta di mettere in blacklist i moduli delle schede DVB e poi caricarli in ordine con lo script di startup di vdr è la soluzione più semplice.
Se poi vuoi divertirti con udev
Per la prima scheda dvb esegui:
Risposta:
Questo è il risultato che si ottiene da una scheda tipo SS1, chip 7146
Per la seconda scheda dvb, esegui:
Risposta:
Questo è il risultato che si ottiene da una scheda tipo DTT, chip saa7134
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
e inserito le seguenti regole:
Vanno scritte tutte su una riga
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
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
