# Auf Proxmox USB durchschleifen für FHEM

> <span class="prefix">Proxmox: USB Passthrough an LXC Container </span>

<p class="callout info">Für diesen Vorgang ist ein Skript erstellt das im Normalfall 2 Minuten nach einem Neustart des Servers aktiviert werden sollte. Nach Möglichkeit demnächst mal überprüfen</p>

Zusätzlich zum Proxmox und Proxmox: LXC Tutorial möchte ich heute gerne zeigen, wie man einen USB Stick zu einem Container durchreicht. Ich habe so meinen UZB1 Z-Wave USB Stick zu einer LXC mit Ubuntu und FHEM durchgereicht. Analog dazu kannst du jeden CUL oder andere USB-Geräte durchreichen.

**Inhalt**

<div class="x-section" id="bkmrk-vorbereitungen-in-pr"><div class="x-container max width"><div class="x-column x-sm x-2-3" data-fade="true" data-x-element="column" data-x-params="{"fade":true}"><div class="x-text">- [Vorbereitungen in Proxmox](#bkmrk-vorbereitungen-in-pr-1)
- [Überprüfung im Container](#bkmrk-%C3%9Cberpr%C3%BCfung-im-conta)
- [Fazit](#bkmrk-fazit)

</div></div></div></div>### Vorbereitungen in Proxmox

Als erster wählen wir uns über SSH in unseren Proxmox Server ein.

```
ssh root@192.168.178.XX
```

Nun stoppen wir den LXC Container, an den das USB-Gerät durchgereicht werden soll

```
pct stop 109
```

Die Nummer enspricht deiner VM / LXC – ID in Proxmox. Diese findest du im Proxmox Webinterface heraus

Mit folgendem Befehl kannst du nun die verbundenen USB-Geräte auflisten. Es empfiehlt sich zuerst eine Auflistung ohne eingesteckten USB-Stick anzufertigen und dann nochmal, nachdem der Stick eingsteckt wurde

```
lsusb
```

Wie du auf dem folgendem Screenshot erkennen kannst, heißt mein UZB1 Stick „Sigma Designs, Inc. und hat die BUS Nummer 1 und Device Nummer 18. Du hast vermutlich eine andere Nummer -&gt; notiere dir diese.

<div class="x-section" id="bkmrk--1"><div class="x-container max width"><div class="x-column x-sm x-2-3" data-fade="true" data-x-element="column" data-x-params="{"fade":true}"><div class="x-text"><div class="wp-caption aligncenter">![](https://coldcorner.de/wp-content/uploads/2018/07/lsusb.png)</div></div></div></div></div><p class="callout info">Suche nach einem Device mit Future im Namen für Eltako </p>

<div class="x-section" id="bkmrk--2"><div class="x-container max width"><div class="x-column x-sm x-2-3" data-fade="true" data-x-element="column" data-x-params="{"fade":true}"><div class="x-text"><div class="wp-caption aligncenter" id="bkmrk--3"></div></div></div></div></div>Mittels folgendem Befehl kannst du nun den DeviceTree anzeigen. Wichtig: Trage hier deine BUS und DEVICE Nummer ein

```
ls -l /dev/bus/usb/001/018
```

Es werden erneut zwei Zahlen ausgegeben, wobei nur die erste für uns relevant ist

`crw-rw-r– 1 root root 189, 17 Jul 12 18:35 /dev/bus/usb/001/018`

Die Nummer 189 notierst du dir ebenfalls. Als nächstes müssen wir die Konfigurationsdatei für den LXC Container finden und editieren. Höchstwahrscheinlich findest du deine Konfigurationsdatei unter /etc/pve/nodes/pve/lxc – Schaue dazu am besten noch im Proxmox Webinterface welche ID dein Container hat.

Mit folgendem Befehl wechselst du in den Ordner mit den Konfigurationsdateien

```
cd /etc/pve/nodes/pve/lxc
```

mit „ls“ kannst du dir dann den Ordnerinhalt anzeigen lassen

<div class="x-section" id="bkmrk--4"><div class="x-container max width"><div class="x-column x-sm x-2-3" data-fade="true" data-x-element="column" data-x-params="{"fade":true}"><div class="x-text"><div class="wp-caption aligncenter">![](https://coldcorner.de/wp-content/uploads/2018/07/lxc-conf.png)</div></div></div></div></div><div class="x-section" id="bkmrk--5"><div class="x-container max width"><div class="x-column x-sm x-2-3" data-fade="true" data-x-element="column" data-x-params="{"fade":true}"><div class="x-text"><div class="wp-caption aligncenter" id="bkmrk--6"></div></div></div></div></div>```
nano 113.conf
```

Hier fügen wir folgende Zeilen am Ende der Datei ein

```
lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb/001/018 dev/bus/usb/001/018 none bind,optional,create=file
```

Trage hier entsprechend die BUS und Devicenummer, sowie die Nummer bei der Ausgabe von ls -l /dev/bus ….. ein

In meinem Fall mit dem UZB1 hat das aber noch nicht ausgereicht. Es wird ein Gerät mit dem Namen ttyACM0 angelegt. Dieses müssen wir ebenfalls durchreichen

Führe folgenden Befehl aus und notiere dir wieder die erste Nummer

```
ls -l /dev/ttyUSB0
```

Dann bearbeiten wir nochmal die LXC Konfig-Datei:

```
sudo nano 109.conf
```

Und fügen am Ende nochmal zwei Zeilen hinzu

```
lxc.cgroup.devices.allow: c 166:* rwm
lxc.mount.entry: /dev/ttyACM0 dev/ttyACM0 none bind,optional,create=file
```

Am Ende sieht die Konfig-Datei in etwas so aus:

![](https://coldcorner.de/wp-content/uploads/2018/07/nano.png)

Dann statten wir das Gerät ttyACM0 noch mit den nötigen Rechten aus

```
chmod o+rw /dev/ttyUSB0
```

Zuletzt starten wir den LXC Container erneut und können im nächsten Punkt überprüfen, ob alles soweit geklappt hat

```
pct start 113
```

### Überprüfung im Container

Verbinde dich mittels SSH mit deinem LXC

```
ssh NUTZERNAME@IP-ADRESSE
```

mit „lsusb“ kannst du dir auch hier die USB-Geräte anzeigen lassen. Ob das Gerät ttyACM0 angelegt wurde erfährst du unter den Devices:

<div class="x-section" id="bkmrk--8"><div class="x-container max width"><div class="x-column x-sm x-2-3" data-fade="true" data-x-element="column" data-x-params="{"fade":true}"><div class="x-text"><div class="wp-caption aligncenter">![](https://coldcorner.de/wp-content/uploads/2018/07/ls-dev.png)</div></div></div></div></div>Shell Screenshot

<div class="x-section" id="bkmrk--9"><div class="x-container max width"><div class="x-column x-sm x-2-3" data-fade="true" data-x-element="column" data-x-params="{"fade":true}"><div class="x-text"><div class="wp-caption aligncenter" id="bkmrk--10"></div></div></div></div></div>```
cd /dev
```

```
ls
```

### Fazit

Zugegeben, ein wenig kompliziert ist es leider schon, allerdings funktioniert es wirklich einwandfrei. Wenn du dieses Tutorial auch bei anderen Geräte erfolgreich getestet hast würde ich mich über einen kurzen Kommentar freuen und könnte dies diesem Artikel hinzufügen.