Für Flightradar24 betreibe ich hier einen ADSB-Feeder in einem LXC-Container unter Proxmox.
Dazu habe ich ein USB-Passthrough für den verwendeten SDR-Stick eingerichtet
dev0: /dev/bus/usb/001/010,mode=0666
So weit, so gut. Nun kommt es aber vor, dass sich durch Neustart oder Änderungen an den USB Geräten am Host die Bus-Zuordnung ändert und der SDR-Stick dann einfach nicht mehr verfügbar ist. Das ist nicht ohne weiteres erkennbar. Nachdem man die Zuordnung dann korrigiert und den Container dann neu gestartet hat, funktioniert alles wieder - bis zur nächsten Änderung.
Dazu habe ich mir jetzt ein Skript zur Überwachung und automatischen Korrektur gebaut:
#!/bin/bash
USB=`lsusb |grep RTL2832U|awk '{print "dev0: /dev/bus/usb/" $2 "/" $4 ",mode=0666"}'|sed s/:,/,/`
DEV=`cat /etc/pve/lxc/110.conf |grep dev0`
if [ "$DEV" != "$USB" ];
then
sed -i /dev0/d /etc/pve/lxc/110.conf
echo $USB >> /etc/pve/lxc/110.conf
/usr/sbin/pct reboot 110
fi
#
Wird per cronjob regelmäßig aufgerufen und prüft, ob sich Container-config und USB-Bus-Liste unterscheiden. Wenn ja, wird die config angepasst und der Container neu gestartet.
Hat sich bisher gut bewährt, vielleicht kann es ja jemand gebrauchen. Das Prinzip läßt sich natürlich auch für andere USB Geräte verwenden :)