[Risolto] Udev o non Udev? Ma come si fa a fissare un device al boot?

Riconoscimento, installazione e configurazione delle periferiche.
Avatar utente
smurf
Rampante Reduce
Rampante Reduce
Messaggi: 5610
Iscrizione: domenica 9 luglio 2006, 9:18
Desktop: MATE con Compiz
Distribuzione: Ubuntu 20.04.4
Sesso: Maschile
Località: Lima - Perú

[Risolto] Udev o non Udev? Ma come si fa a fissare un device al boot?

Messaggio da smurf »

Ho una scheda tv interna che al boot normalmente viene rilevata come /dev/video0 ed una web cam usb che normalmente viene rilevata come /dev/video1.
Ma purtroppo normalmente non è sempre e così ogni tanto il sistema inverte i device, risultato: devo fare reboot per poter vedere la tv oppure per poter video chattare.

Ho trovato un pochino di documentazione in rete, ma nessuna guida funziona, soprattutto perché si basano quasi sempre sul riconoscimento dell' HW in base a parametri che Udev non usa più.
Ho provato anche a chiedere su Launchpad, ma nessuna risposta.

Qualche anima pia saprebbe spiegarmi per favore come fare per fissare i device?
Ultima modifica di smurf il lunedì 2 agosto 2010, 20:33, modificato 1 volta in totale.
La terra non è una eredità che riceviamo dai nostri genitori, ma un prestito che ci fanno i nostri figli.
Avatar utente
steff
Moderatore Globale
Moderatore Globale
Messaggi: 40351
Iscrizione: domenica 18 febbraio 2007, 19:48
Desktop: LXQt+labwc
Distribuzione: Arch; Debian; Ubuntu Server
Sesso: Maschile
Località: Toscana
Contatti:

Re: Udev o non Udev? Ma come si fa a fissare un device al boot?

Messaggio da steff »

Non so se puoi scrivere una regola precisa per la webcam usb almeno, questo comando di dovrebbe

Codice: Seleziona tutto

udevadm info -a -p $(udevadm info  -q path -n /dev/video1)
dare le info. Non so neanche se è lecito ancora  che appena hai imparato qualcosa non vale più :)

Per le regole ti posta una che monta una penna esegue un comando e la smonta se la levi, per l'ispirazione...

Codice: Seleziona tutto

cat /etc/udev/rules.d/12-pennina.rules

KERNEL=="sd?1",ENV{ID_MODEL}="TS256MJF2B/2L",  SYMLINK+="penna"
ACTION=="add", KERNEL=="sd?1",ENV{ID_MODEL}="TS256MJF2B/2L", RUN+="/bin/mkdir /mnt/penna"
ACTION=="add", KERNEL=="sd?1", ATTRS{vendor}=="JetFlash", RUN+="/bin/mount -t vfat -o sync,flush,uid=1000,gid=100 /dev/penna /mnt/penna"
ACTION=="add", KERNEL=="sd?1", ATTRS{vendor}=="JetFlash", RUN+="/home/arch/bin/cp-test"
ACTION=="remove", KERNEL=="sd?1", ENV{ID_VENDOR}=="JetFlash", RUN+="/bin/umount /mnt/penna"
ACTION=="remove", KERNEL=="sd?1", ENV{ID_VENDOR}=="JetFlash", RUN+="/bin/rmdir /mnt/penna"
tipo qualcosa come
SUBSYSTEM=="usb", ATTR{products}=="CIF Single Chip ", SYMLINK+="video1"
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Avatar utente
smurf
Rampante Reduce
Rampante Reduce
Messaggi: 5610
Iscrizione: domenica 9 luglio 2006, 9:18
Desktop: MATE con Compiz
Distribuzione: Ubuntu 20.04.4
Sesso: Maschile
Località: Lima - Perú

Re: Udev o non Udev? Ma come si fa a fissare un device al boot?

Messaggio da smurf »

beh esattamente per il dubbio sulla webcam usb io pensavo di fissare prima il device /dev/video0 alla scheda tv interna e poi la web.
queste sono le regole che ho scritto
luca@luca-desktop:~$ cat /etc/udev/rules.d/v4l-local.rules
# fissa i device per la scheda TV e la webcam
# scheda tv
SUBSYSTEM=="pci", DRIVERS=="saa7134", ATTRS{vendor}=="0x1131", ATTRS{device}=="0x7134", SYMLINK+="video0"
# web cam
SUBSYSTEMS=="usb", DRIVERS=="zc3xx", KERNELS=="4-2:1.0", SYMLINK+="video1"
luca@luca-desktop:~$
Il file con la regola si chiama v4l-local.rules, senza numero perché cosí dovrebbe essere eseguito come ultimo e superare qualunque altra "pre"impostazione di udev.
Ma non mi funziona...

questi sono gli output dei dati di udev:
1) scheda tv

Codice: Seleziona tutto

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:08.0/0000:01:08.0/video4linux/video0':
    KERNEL=="video0"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{name}=="saa7134[0] video (Kworld Plus T"
    ATTR{index}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:08.0/0000:01:08.0':
    KERNELS=="0000:01:08.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="saa7134"
    ATTRS{vendor}=="0x1131"
    ATTRS{device}=="0x7134"
    ATTRS{subsystem_vendor}=="0x17de"
    ATTRS{subsystem_device}=="0x7128"
    ATTRS{class}=="0x048000"
    ATTRS{irq}=="19"
    ATTRS{local_cpus}=="00000000,00000003"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{modalias}=="pci:v00001131d00007134sv000017DEsd00007128bc04sc80i00"
    ATTRS{numa_node}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""

  looking at parent device '/devices/pci0000:00/0000:00:08.0':
    KERNELS=="0000:00:08.0"
    SUBSYSTEMS=="pci"
    DRIVERS==""
    ATTRS{vendor}=="0x10de"
    ATTRS{device}=="0x075a"
    ATTRS{subsystem_vendor}=="0x0000"
    ATTRS{subsystem_device}=="0x0000"
    ATTRS{class}=="0x060401"
    ATTRS{irq}=="0"
    ATTRS{local_cpus}=="00000000,00000003"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{modalias}=="pci:v000010DEd0000075Asv00000000sd00000000bc06sc04i01"
    ATTRS{numa_node}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}=="1"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
2) webcam usb

Codice: Seleziona tutto

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:04.0/usb4/4-2/4-2:1.0/video4linux/video1':
    KERNEL=="video1"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{name}=="gspca main driver"
    ATTR{index}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:04.0/usb4/4-2/4-2:1.0':
    KERNELS=="4-2:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="zc3xx"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="02"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceSubClass}=="ff"
    ATTRS{bInterfaceProtocol}=="ff"
    ATTRS{modalias}=="usb:v046Dp08D7d0100dc00dsc00dp00icFFiscFFipFF"
    ATTRS{supports_autosuspend}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:04.0/usb4/4-2':
    KERNELS=="4-2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 3"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{urbnum}=="204"
    ATTRS{idVendor}=="046d"
    ATTRS{idProduct}=="08d7"
    ATTRS{bcdDevice}=="0100"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="4"
    ATTRS{devnum}=="2"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:04.0/usb4':
    KERNELS=="usb4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bMaxPower}=="  0mA"
    ATTRS{urbnum}=="42"
    ATTRS{idVendor}=="1d6b"
    ATTRS{idProduct}=="0001"
    ATTRS{bcdDevice}=="0206"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{speed}=="12"
    ATTRS{busnum}=="4"
    ATTRS{devnum}=="1"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="6"
    ATTRS{quirks}=="0x0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="Linux 2.6.32-24-generic ohci_hcd"
    ATTRS{product}=="OHCI Host Controller"
    ATTRS{serial}=="0000:00:04.0"
    ATTRS{authorized_default}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:04.0':
    KERNELS=="0000:00:04.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ohci_hcd"
    ATTRS{vendor}=="0x10de"
    ATTRS{device}=="0x077d"
    ATTRS{subsystem_vendor}=="0x1462"
    ATTRS{subsystem_device}=="0x7508"
    ATTRS{class}=="0x0c0310"
    ATTRS{irq}=="23"
    ATTRS{local_cpus}=="00000000,00000003"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{modalias}=="pci:v000010DEd0000077Dsv00001462sd00007508bc0Csc03i10"
    ATTRS{numa_node}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{msi_bus}==""

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
La terra non è una eredità che riceviamo dai nostri genitori, ma un prestito che ci fanno i nostri figli.
Avatar utente
steff
Moderatore Globale
Moderatore Globale
Messaggi: 40351
Iscrizione: domenica 18 febbraio 2007, 19:48
Desktop: LXQt+labwc
Distribuzione: Arch; Debian; Ubuntu Server
Sesso: Maschile
Località: Toscana
Contatti:

Re: Udev o non Udev? Ma come si fa a fissare un device al boot?

Messaggio da steff »

Prova a mettere un numero e dividerli in due files, forse vengono ignorati quelli senza numero?
Ultima modifica di steff il lunedì 2 agosto 2010, 7:14, modificato 1 volta in totale.
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Avatar utente
smurf
Rampante Reduce
Rampante Reduce
Messaggi: 5610
Iscrizione: domenica 9 luglio 2006, 9:18
Desktop: MATE con Compiz
Distribuzione: Ubuntu 20.04.4
Sesso: Maschile
Località: Lima - Perú

Re: Udev o non Udev? Ma come si fa a fissare un device al boot?

Messaggio da smurf »

Il README presente in /etc/udev/rules.d/  dice espressamente di creare un file .rules senza numero per essere assolutamente sicuri che venga eseguito dopo tutte le regole presenti li e nel /lib/udev/rules.d/  :-\.

Stasera proveró a dividere in due e creare due regole, poi ti dico.
Grazie comunque.
La terra non è una eredità che riceviamo dai nostri genitori, ma un prestito che ci fanno i nostri figli.
Avatar utente
steff
Moderatore Globale
Moderatore Globale
Messaggi: 40351
Iscrizione: domenica 18 febbraio 2007, 19:48
Desktop: LXQt+labwc
Distribuzione: Arch; Debian; Ubuntu Server
Sesso: Maschile
Località: Toscana
Contatti:

Re: Udev o non Udev? Ma come si fa a fissare un device al boot?

Messaggio da steff »

prova magari invece di video0  e video1 "tv" "webcam" per controllare meglio in /dev
Per la webcam dovrebbe bastare inserirla per creare /dev/webcam
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Avatar utente
smurf
Rampante Reduce
Rampante Reduce
Messaggi: 5610
Iscrizione: domenica 9 luglio 2006, 9:18
Desktop: MATE con Compiz
Distribuzione: Ubuntu 20.04.4
Sesso: Maschile
Località: Lima - Perú

Re: Udev o non Udev? Ma come si fa a fissare un device al boot?

Messaggio da smurf »

sembra che ho trovato il problema.

commettevo un errore stupido, mescolavo i dati dei vari parent device di ogni device e quindi non poteva definire correttamente il device, inoltre non tutti i parent device sono adatti a creare un SYMLINK.
Dopo un certo numero di prove (usando i device fasulli /dev/webcam e /dev/tvcard) ho scopetto i giusti ATTRS da usare, adesso resta solo da sperare che effettivamente questo sorpassi (override) i device creati in automatico.
non è necessario dividere in due il file, funziona anche "tutto in uno".
# fissa il device per la scheda tv
KERNELS=="0000:01:08.0", ATTRS{vendor}=="0x1131", ATTRS{device}=="0x7134", SYMLINK+="video0"

# fissa il device per la webcam
SUBSYSTEMS=="usb", DRIVERS=="zc3xx", KERNELS=="4-2:1.0", SYMLINK+="video1"
Grazie Steff.
Ultima modifica di smurf il lunedì 2 agosto 2010, 21:09, modificato 1 volta in totale.
La terra non è una eredità che riceviamo dai nostri genitori, ma un prestito che ci fanno i nostri figli.
Avatar utente
steff
Moderatore Globale
Moderatore Globale
Messaggi: 40351
Iscrizione: domenica 18 febbraio 2007, 19:48
Desktop: LXQt+labwc
Distribuzione: Arch; Debian; Ubuntu Server
Sesso: Maschile
Località: Toscana
Contatti:

Re: [Risolto] Udev o non Udev? Ma come si fa a fissare un device al boot?

Messaggio da steff »

Prego  :D
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Scrivi risposta

Ritorna a “Driver e periferiche”

Chi c’è in linea

Visualizzano questa sezione: Roberto Pontecorvi, tottobuono e 9 ospiti