====== USB Device an einen Container durchreichen ====== ==== Informationen sammeln ==== (root@n1-pve-cluster marko) > lsusb Bus 002 Device 002: ID 8087:8000 Intel Corp. Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:8008 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Mich interessiert Future Technology Devices International, Ltd FT232 Serial (UART) IC Daher nehme ich als Major Nummer 003 und als Minor Nummer die 002 Nun schauen wir uns den dazugehörigen Verzeichnisbaum an (root@n1-pve-cluster marko) > ls -l /dev/bus/usb/003/002 crw-rw-r-- 1 root root 189, 257 Feb 24 09:14 /dev/bus/usb/003/002 Für mich relevant sind die zwei Zahlen 189 und 257. Diese benötigen wir für unsere Container Konfiguration. ==== Konfiguration des Containers anpassen ==== Nun bearbeiten wir das Container Configfile. Dafür liste ich mir alle Container von der Node auf und schaue mir dir Container ID meines Containers an welcher das USB Device bekommen soll. (p-fhem02) (root@n1-pve-cluster marko) > pct list VMID Status Lock Name 201 running p-fhem02 202 stopped p-printserver 203 running p-psql01 208 running p-gitserver 213 running p-nextcloud Das passende Konfigfile editiere ich nun vim /etc/pve/lxc/201.conf Und passen die entsprechenden 2 Zahlen an lxc.cgroup.devices.allow: c 189:257 rwm lxc.mount.entry: /dev/SIGNALduino dev/SIGNALduino none bind,optional,create=file ==== Dank udev Rule neues Device mit korrekter Gruppenzuordnung ==== Und nun zum wesentlichen. Wie man sehen kann habe ich in meiner Konfig /dev/SIGNALduino durchgereicht. Dies musste ich machen damit die tatsächliche benötige Gruppe im Container auch die Rechte bekommt. Damit mir ein solches Device auch erstellt wird **/dev/SIGNALduino** muss eine entsprechende udev Rule auf dem Host angelegt werden. Dafür benötigen wir etwas Vorarbeit. Wir müssen unser Device besser Identifizieren. (root@n1-pve-cluster marko) > udevadm info -a -n /dev/ttyUSB0 | grep '{idProduct}' | head -n1 (root@n1-pve-cluster marko) > udevadm info -a -n /dev/ttyUSB0 | grep '{idVendor}' | head -n1 Mit diesen Infos erstellen wir unsere Rule (root@n1-pve-cluster marko) > vim /etc/udev/rules.d/98-RFXtrx-CUL.rules SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="RFXCOM_RFXtrx433_A1XEABQO", MODE="0666", GROUP="dialout" Zum Abschluss müssen die udev Rules neu eingelesen werden (root@n1-pve-cluster marko) > udevadm control --reload-rules && udevadm trigger Und zu guter letzt den Container neu starten (root@n1-pve-cluster marko) > pct stop (root@n1-pve-cluster marko) > pct start