Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
lpi1:udev [2012/02/22 12:12] 127.0.0.1 Externe Bearbeitung |
lpi1:udev [2025/02/25 17:00] (aktuell) |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== udev events anzeigen ====== | ||
| - | === Centos 5 === | ||
| - | |||
| - | udevmonitor | ||
| - | udevtest /block/sdc/sdc1 | ||
| - | udevcontrol log_priority=debug | ||
| - | |||
| - | === SuSE 11.0 / Ubuntu 8.04 === | ||
| - | |||
| - | udevadm monitor | ||
| - | udevtest /block/sdc/sdc1 | ||
| - | udevcontrol log_priority=debug | ||
| ====== zuletzt angelegte Gerätedateien finden ====== | ====== zuletzt angelegte Gerätedateien finden ====== | ||
| Zeile 17: | Zeile 5: | ||
| find /dev -ctime -30 | find /dev -ctime -30 | ||
| find /dev -type c -o -type b -printf '%TY%Tm%Td%TI%TM %p\n' | sort -n | find /dev -type c -o -type b -printf '%TY%Tm%Td%TI%TM %p\n' | sort -n | ||
| - | ====== Gerätenamen fest vergeben ====== | + | ====== Dummy Netzwerkinterface dummy0 in intern0 umbenennen ====== |
| - | ===== Netzwerkkarte eth0 anhand Mac-Adresse bestimmen ===== | + | ===== ... mit udev.rules ===== |
| - | ''/etc/udev/rules.d/30-net_persistent_names.rules'': ( SuSE 10.1 default ) | + | ==== Dummy Netzwerkinterface erzeugen ==== |
| - | <file> | + | modprobe dummy numdummies=1 |
| - | SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="00:00:f0:73:d5:5e", IMPORT="/lib/udev/rename_netiface %k eth0" | + | ip link show dummy0 |
| - | </file> | + | (( ''numdummies=1'' überschreibt ''/lib/modprobe.d/systemd.conf'' )) |
| - | + | ||
| - | ===== Netzwerkkarte eth0 anhand PCI-ID bestimmen ===== | + | |
| ==== udev Regel erstellen ==== | ==== udev Regel erstellen ==== | ||
| - | udevinfo -a -p /sys/class/net/eth0 | ||
| - | oder | ||
| - | udevadm info -a -p /sys/class/net/eth0 | ||
| - | lspci | + | === Netzdevice umbenennen === |
| - | ''/etc/udev/rules.d/30-net_persistent_names.rules'': ( SuSE 10.2 ) | + | udevadm info -a /sys/class/net/dummy0 |
| - | <file> | + | <file txt /etc/udev/rules.d/70-persistent-net.rules> |
| - | SUBSYSTEMS=="pci", KERNELS=="0000:00:11.0" , IMPORT="/lib/udev/rename_netiface %k eth0" | + | … |
| + | ACTION=="add", SUBSYSTEM=="net", KERNEL=="dummy0", NAME="intern0" | ||
| + | … | ||
| </file> | </file> | ||
| - | ===== Dummy Netzwerkinterface dummy0 in intern0 umbenennen ===== | + | Konfigurationsdatei prüfen: |
| - | ==== Dummy Netzwerkinterface erzeugen ==== | + | udevadm test /sys/class/net/dummy0 |
| - | modprobe dummy | + | |
| - | ifconfig dummy0 | + | |
| - | ==== udev Regel erstellen ==== | + | erstes Terminalfenster: |
| - | udevinfo -a -p /sys/class/net/dummy0 | + | udevadm monitor |
| - | ''/etc/udev/rules.d/z25_persistent-net.rules'': ( Debian 4.0 ) | + | |
| - | ''/etc/udev/rules.d/70-persistent-net.rules'': ( SuSE 11.1, Debian 5.0 ) | + | zweites Terminalfenster: |
| - | ''/etc/udev/rules.d/60-net.rules'' ( CentOS 5 ) | + | Konfiguration neu laden: |
| - | <file> | + | udevadm control --reload-rules |
| - | SUBSYSTEM=="net", KERNEL=="dummy0", NAME="intern0" | + | |
| + | Modul neu laden: | ||
| + | modprobe -r dummy | ||
| + | modprobe dummy numdummies=1 | ||
| + | ip link | ||
| + | |||
| + | oder (ohne neu laden des Moduls): | ||
| + | udevadm trigger -v --action=add --attr-match=subsystem=net --attr-match=address=52:54:00:1d:c5:52 | ||
| + | |||
| + | |||
| + | ===== ... mit systemd.link ===== | ||
| + | <file txt /etc/systemd/network/10-dummy.link> | ||
| + | [Match] | ||
| + | OriginalName=dummy0 | ||
| + | |||
| + | [Link] | ||
| + | Name=intern0 | ||
| </file> | </file> | ||
| - | ==== testen ==== | + | ====== Kommando bei Aktivierung eines USB-Devices ausführen ====== |
| - | Vorsicht: meine Tests haben gezeigt, das auch schon beim Aufruf von ''udevtest'' das Device umbenannt wird ... | + | <file txt /etc/udev/rules.d/75-touch-file.rules> |
| - | udevtest /sys/class/net/dummy0 | + | ACTION=="add", SUBSYSTEM=="usb", RUN="/bin/touch /tmp/udev-test" |
| - | oder | + | </file> |
| - | udevadm test /sys/class/net/dummy0 | + | USB-Gerät einstecken |
| + | ls -l /tmp/udev-test | ||
| - | ==== aktivieren ==== | + | (kurzes(( |
| - | udevtrigger | + | Alternativen für länger laufende Befehle: |
| + | <file txt /etc/udev/rules.d/75-touch-file.rules> | ||
| + | ACTION=="add", SUBSYSTEM=="usb", ENV{ID_FS_LABEL}=="backup", RUN="/usr/bin/systemd-run --on-active=2 /usr/local/bin/backup.sh" | ||
| + | </file> | ||
| oder | oder | ||
| - | udevadm trigger | + | <file txt /etc/udev/rules.d/75-touch-file.rules> |
| + | ACTION=="add", SUBSYSTEM=="usb", ENV{ID_FS_LABEL}=="backup", ENV{SYSTEMD_WANTS}="backup.service" | ||
| - | ==== Netzwerkkarten Konfigurationsdatei umbenennen ( SuSE ) ==== | + | </file> |
| - | getcfg eth0 > /tmp/getcfg.txt | + | )) ) Kommando ausführen, wenn ein USB-Stick mit einem Dateisystem mit dem LABEL=backup eingesteckt wird: |
| - | . /tmp/getcfg.txt | + | <file txt /etc/udev/rules.d/75-touch-file.rules> |
| - | mv ifcfg-eth-id-$HWD_ID ifcfg-eth0 | + | ACTION=="add", SUBSYSTEM=="usb", ENV{ID_FS_LABEL}=="backup", RUN="/bin/touch /tmp/udev-test" |
| + | </file> | ||
| + | |||
| + | |||
| + | ====== Symlink bei Aktivierung anlegen ====== | ||
| + | <file txt /etc/udev/rules.d/75-show-last-usb.rules> | ||
| + | SUBSYSTEM=="usb", SYMLINK+="last-usb-device" | ||
| + | </file> | ||
| + | USB-Gerät einstecken | ||
| + | ls -l /dev/last-usb-device | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ====== udev events anzeigen ====== | ||
| + | |||
| + | udevadm monitor | ||
| + | udevadm test /block/sdc/sdc1 | ||
| + | udevadm control log_priority=debug | ||
| ====== Weitere udev Kommandos ====== | ====== Weitere udev Kommandos ====== | ||