Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-wiki:proxmox:usb_passthrough

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
it-wiki:proxmox:usb_passthrough [2020/03/05 07:35] – angelegt markoit-wiki:proxmox:usb_passthrough [2020/03/05 08:19] (aktuell) – [Dank udev Rule neues Device mit korrekter Gruppenzuordnung] marko
Zeile 1: Zeile 1:
 ====== USB Device an einen Container durchreichen ====== ====== USB Device an einen Container durchreichen ======
-udevadm info --/dev/ttyUSB0 | grep '{serial}' | head -n1+==== Informationen sammeln ==== 
 +<code bash> 
 +(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 
 +</code> 
 +Mich interessiert 
 +<code> 
 +Future Technology Devices International, Ltd FT232 Serial (UART) IC 
 +</code> 
 +Daher nehme ich als Major Nummer 003 und als Minor Nummer die 002
  
-vim /etc/udev/rules.d/98-RFXtrx-CUL.rules+Nun schauen wir uns den dazugehörigen Verzeichnisbaum an 
 +<code bash> 
 +(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 
 +</code> 
 +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)
 +<code bash>
 +(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
 +</code>
 +
 +Das passende Konfigfile editiere ich nun
 +<code bash>
 +vim /etc/pve/lxc/201.conf
 +</code>
 +
 +Und passen die entsprechenden 2 Zahlen an
 +<code>
 +lxc.cgroup.devices.allow: c 189:257 rwm
 +lxc.mount.entry: /dev/SIGNALduino dev/SIGNALduino none bind,optional,create=file
 +</code>
 +
 +==== 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.
 +
 +
 +<code bash>
 +(root@n1-pve-cluster marko) > udevadm info -a -n /dev/ttyUSB0 | grep '{idProduct}' | head -n1
 +</code>
 +<code bash>
 +(root@n1-pve-cluster marko) > udevadm info -a -n /dev/ttyUSB0 | grep '{idVendor}' | head -n1
 +</code>
 +
 +Mit diesen Infos erstellen wir unsere Rule
 +<code bash>
 +(root@n1-pve-cluster marko) > vim /etc/udev/rules.d/98-RFXtrx-CUL.rules
 +</code>
 +<code>
 SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="RFXCOM_RFXtrx433_A1XEABQO", MODE="0666", GROUP="dialout" SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="RFXCOM_RFXtrx433_A1XEABQO", MODE="0666", GROUP="dialout"
 +</code>
 +
 +Zum Abschluss müssen die udev Rules neu eingelesen werden
 +<code bash>
 +(root@n1-pve-cluster marko) > udevadm control --reload-rules && udevadm trigger
 +</code>
 +
 +Und zu guter letzt den Container neu starten
 +<code bash>
 +(root@n1-pve-cluster marko) > pct stop <cid>
 +(root@n1-pve-cluster marko) > pct start <cid>
 +</code>
it-wiki/proxmox/usb_passthrough.1583393749.txt.gz · Zuletzt geändert: von marko