Om Enheter

Selv om de fleste enheter som trengs av pakker i BLFS og utover er satt opp skikkelig av udev ved å bruke standardreglene installert av LFS i /etc/udev/rules.d, det er tilfeller der reglene må endres eller utvides.

Flere Lydkort

Hvis det er flere lydkort i et system, vil "standard" lydkortet blir tilfeldig. Metoden for å etablere lydkortrekkefølge avhenger av om driverne er moduler eller ikke. Hvis lydkortets drivere er kompilert inn i kjernen, kontroll er via kjernekommandolinjens parametere i /boot/grub/grub.cfg. For eksempel, hvis et system har både et FM801-kort og et SoundBlaster PCI-kort, følgende kan legges til kommandolinjen:

snd-fm801.index=0 snd-ens1371.index=1

Hvis lydkortdriverne er bygget som moduler, kan rekkefølgen bli etablert i /etc/modprobe.conf filen med:

options snd-fm801 index=0
options snd-ens1371 index=1

Problemer med USB Enheter

USB enheter har vanligvis to typer enhetsnoder knyttet til seg.

Den første typen er laget av enhetsspesifikke drivere (f.eks. usb_storage/sd_mod eller usblp) i kjernen. For eksempel en USB masselagringsenhet ville være /dev/sdb, og en USB skriver ville være /dev/usb/lp0. Disse enhetsnodene eksisterer bare når den enhetensspesifikke driveren er lastet inn.

Den andre typen enhetsnoder (/dev/bus/usb/BBB/DDD, der BBB er bussnummeret og DDD er enhetsnummeret) opprettes selv om enheten ikke har en kjernedriver. Ved å bruke disse "rå" USB enhetenes noder, kan en applikasjon utveksle vilkårlige USB pakker med enheten, dvs. omgå den muligens eksisterende kjernedriveren.

Tilgang til rå USB enhetsnoder er nødvendig når et brukerromsprogram fungerer som enhetsdriver. Men for at programmet skal lykkes med å åpne enheten, må tillatelsene settes riktig. Som standard, pga av sikkerhetshensyn eies alle rå USB enheter av bruker root og gruppe root, og har 0664-tillatelser (lesetilgangen er nødvendig, f.eks. for at lsusb skal fungere og for at programmer skal få tilgang til USB huber). Pakker (f.eks som SANE og libgphoto2) som også inneholder USB enhetsdrivere for brukerområdet send udev-regler som endrer tillatelsene til den kontrollerte rå USB enheten. Det vil si at regler installert av SANE endrer tillatelser for kjente skannere, men ikke skrivere. Hvis en pakkevedlikeholder glemte å skrive en regel for enheten din, rapporter en feil til både BLFS (hvis pakken er der) og oppstrøms, og du må skrive din egen regel.

Før Linux-2.6.15 ble tilgang til rå USB enheter ikke utført med /dev/bus/usb/BBB/DDD enhetsnoder, men med /proc/bus/usb/BBB/DDD pseudofiles. Noen applikasjoner bruker fortsatt bare denne foreldede teknikken og kan ikke bruke de nye enhetsnodene. De kan ikke fungere med Linux kjerne versjon 3.5 eller nyere. Hvis du trenger å kjøre en slik applikasjon, kontakt utvikleren av den for en løsning.

Udev Enhetsattributter

Finjustering av enhetsattributter som gruppenavn og tillatelser er mulig ved å lage ekstra udev regler, samsvarende på noe slikt. Leverandøren og produktet kan finnes med å søke på /sys/devices mappegoppføringer eller bruk udevadm info etter at enheten er koblet til. Se dokumentasjonen i gjeldende udev mappen til /usr/share/doc for detaljer.

SUBSYSTEM=="usb_device", SYSFS{idVendor}=="05d8", SYSFS{idProduct}=="4002", \
  GROUP:="scanner", MODE:="0660"
[Note]

Note

Linjen ovenfor brukes kun for beskrivende formål. udev skanner regler settes på plass når SANE-1.2.1 installeres.

Enheter for Servere

I noen tilfeller er det fornuftig å deaktivere udev fullstendig og lage statiske enheter. Servere er ett eksempel om denne situasjonen. Trenger en server evne til å håndtere dynamiske enheter? Bare systemadministratoren kan svare på det spørsmålet, men i mange tilfeller vil svaret være nei.

Hvis dynamiske enheter ikke er ønsket, må statiske enheter være opprettet på systemet. I standardkonfigurasjonen /etc/rc.d/rcS.d/S10udev oppstartsskript monterer en tmpfs partisjon over /dev mappen. Dette problemet kan overvinnes ved å montere root partisjonen midlertidig:

[Warning]

Warning

Hvis instruksjonene nedenfor ikke følges nøye, kan systemet ditt bli uoppstartbart.

mount --bind / /mnt
cp -a /dev/* /mnt/dev
rm /etc/rc.d/rcS.d/{S10udev,S50udev_retry}
umount /mnt

På dette tidspunktet vil systemet bruke statiske enheter på neste omstart. Lag eventuelle ekstra enheter ved hjelp av mknod.

Hvis du vil gjenopprette de dynamiske enhetene, gjenskaper du /etc/rc.d/rcS.d/{S10udev,S50udev_retry} symbolske koblinger og starter på nytt. Statiske enheter trenger ikke å fjernes (konsoll og null er alltid nødvendig) fordi de er dekket av tmpfs partisjonen. Disk bruk for enheter er ubetydelig (ca 20–30 byte per oppføring).

Devices for DVD Drives

Hvis den første oppstartsprosessen ikke konfigurerer /dev/dvd enheten riktig, kan den installeres ved å bruke følgende modifikasjon av standard udev regler. Som root bruker, kjør:

sed '1d;/SYMLINK.*cdrom/ a\
KERNEL=="sr0", ENV{ID_CDROM_DVD}=="1", SYMLINK+="dvd", OPTIONS+="link_priority=-100"' \
/lib/udev/rules.d/60-cdrom_id.rules > /etc/udev/rules.d/60-cdrom_id.rules