NEWS
USB in Docker via neuer Container über Compose u.a. andere
-
@chrisham
Auf der Kommandozeile fehlt die Null (oder *) am Ende und zeig mal die aktuelle Compose Datei (den ioBroker Teil). -
@marc-berg Ok, danke.
Mit * am Ende sieht es ähnlich aus:
Chrisham@DS920-Plus:/$ ls -la /dev/ttyUSB* ls: cannot access '/dev/ttyUSB*': No such file or directory
Das hat vor dem Restart der Synology-NAS tatsächlich funktioniert und so ausgesehen:
Das ist der docker-compose Anteil für iobroker:
version: '3' services: iobroker: network_mode: "host" restart: always image: buanet/iobroker:latest container_name: iobroker-8 hostname: iobroker-8 ports: - "8081:8081" - "3671:3671" volumes: - /volume1/docker/iobroker-Chrisham:/opt/iobroker - /volume1/docker/userscripts:/opt/userscripts - /volume1/docker/Backup:/opt/backup/ environment: - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - DEBIAN_FRONTEND=teletype - LANG=de_DE.UTF-8 - LANGUAGE=de_DE:de - LC_ALL=de_DE.UTF-8 - SETGID=1000 - SETUID=1000 - TZ=Europe/Berlin - USBDEVICES=/dev/ttyUSB0 - PACKAGES=influxdb2-cli devices: - /dev/ttyUSB0:/dev/ttyUSB0
-
@chrisham wobei bei > lsusb wird der USB-Port bzw. Device angezeigt:
-
@chrisham
Wenn das Gerät nicht eingehängt ist kann docker nix besser machen.
Du kannst Mal mit dmesg schauen ob es da eine Meldung dazu gibt warum -
@oliverio @oliverio ja, mir ist klar, dass das Problem schon weiter vorne in der Kette besteht, also bereits auf Synology-Gerät oder DSM-Ebene. Und das wäre genau meine Frage, was da noch die Ursache sein kann. Es hat ja funktioniert bisher, bis ich die Synology einmal runtergefahren und wieder neu gestartet habe. Seit da wird auf Synology-Linux-Ebene das USB-Device nicht mehr richtig erkannt:
also so wird es noch irgendwie erkannt (1-2: das ändert sich nämlich, wenn ich USB aus- und einstecke):
Chrisham@DS920-Plus:/$ lsusb |__usb1 1d6b:0002:0404 09 2.00 480MBit/s 0mA 1IF (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub |__1-1 051d:0002:0106 00 2.00 12MBit/s 100mA 1IF (American Power Conversion Back-UPS BX750MI FW:295202G -302202G 9B2207A14072) |__1-2 0403:6015:1000 00 2.00 12MBit/s 90mA 1IF (FTDI FT230X Basic UART D200YUST) |__1-4 f400:f400:0100 00 2.00 480MBit/s 200mA 1IF (Synology DiskStation 7F0017CD8713F213) |__usb2 1d6b:0003:0404 09 3.00 5000MBit/s 0mA 1IF (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
Aber so wird nichts erkannt:
Chrisham@DS920-Plus:/$ ls -l /dev/ttyUSB* ls: cannot access '/dev/ttyUSB*': No such file or directory
dmesg (ich kopiere alles rein, ich hoffe, das spammt nicht den ganzen thread...) liefert:
Chrisham@DS920-Plus:/$ dmesg ... [11638.191709] audit: type=1104 audit(1701820541.981:809): pid=27218 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:setcred grantors=pam_permit acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/console res=success' [12652.665632] usb 1-2: USB disconnect, device number 2 [12659.649290] usb 1-2: new full-speed USB device number 5 using xhci_hcd [73588.912746] usb 1-2: USB disconnect, device number 5 [73672.996947] usb 1-2: new full-speed USB device number 6 using xhci_hcd [73787.623350] usb 1-2: USB disconnect, device number 6 [73807.082495] usb 1-2: new full-speed USB device number 7 using xhci_hcd Chrisham@DS920-Plus:/$
Am Endessteht das was mit "USB disconnect"....
-
@chrisham sagte in USB in Docker via neuer Container über Compose u.a. andere:
heute nach einem NAS-Neustart
Du hast ganz am anfang des Thread nur das hier geschrieben :
Da steht, man benötigt nur das:
sudo insmod /lib/modules/usbserial.ko
sudo insmod /lib/modules/ftdi_sio.kohast du auch an das Start-Script gedacht !?
Zitat :
"Leider gehen die Einstellungen mit dem Neustart der Synology DiskStation wieder verloren," -
Schau dir bei den Meldungen auch immer Mal noch davor und dahinter an ob es da Fehler oder Warnungen gibt.
Dann könnten es auch noch die Stromspar Funktionen sein, die den USB Anschluss dann abmelden. Da muss im Internet suchen wie man das einstellen kann
Und auch die Einstellung überlebt den Neustart nicht -
@Glasfaser bingo, gerade habe ich das bemerkt/gefunden, ja, das war es,zumindest auf host-Ebene ist USB-Device wieder da:
Chrisham@DS920-Plus:/$ ls -la /dev/ttyUSB* crw------- 1 root root 188, 0 Dec 6 18:43 /dev/ttyUSB0
Wie verpacke ich das am besten in ein Startscript für die NAS, also dass solche Einstellungen beim Neustart wiederhergestellt werden?
Noch anderes Phänomen: ich habe die Container (v.a. iobroker-Container) [selbst nachdem nun das USB-Problem gelöst war...] nicht mehr gestartet bekommen, er hat sich immer wieder versucht zu starten und wieder terminiert....
Erst nachdem ich nochmals das komplette docker-compose als stack in portainer neu deployed habe, lief es wieder.... -
@chrisham sagte in USB in Docker via neuer Container über Compose u.a. andere:
Wie verpacke ich das am besten in ein Startscript
Steht doch alles in deinem Link ( Threadanfang ) !
-
@chrisham sagte in USB in Docker via neuer Container über Compose u.a. andere:
host-Ebene ist USB-Device wieder da:
Moin,
ich will mich hier nicht weiter in eine laufende Diskussion, in der ich den Überblick verloren habe, verschlimmbessern, aber ich glaube diese Rechte, beim angelegten Device
Chrisham@DS920-Plus:/$ ls -la /dev/ttyUSB* crw------- 1 root root 188, 0 Dec 6 18:43 /dev/ttyUSB0
reichen nicht aus, damit das sauber in den Docker Container durchzureichen.
Das sollte aus meiner Sicht eher so aussehen
Chrisham@DS920-Plus:/$ ls -la /dev/ttyUSB*
crw-rw---- 1 root root 188, 0 Dec 6 18:43 /dev/ttyUSB0Je nachdem, wer dann aus dem Docker kommt, um auf das durchgereichte Device zuzugreifen, kann es sogar nötig sein, es dahingehend abzuändern Chrisham@DS920-Plus:/$ ls -la /dev/ttyUSB* crw-rw-rw- 1 root root 188, 0 Dec 6 18:43 /dev/ttyUSB0
VG
Bernd -
@chrisham
Ich habe auch ein wenig den Überblick verloren, was du nun auf Host-Ebene und was du nun auf Container-Ebene machen musstest, das nach einem Neustart von
a) dem Host erneut durchführen musst und
b) Neu generieren des Docker-Containers durchführen musst und
c) Neustart des Docker-Containers tun musst.Aber generell, bei a) ist die normale Funktionsweise von Linux das unter einem start-service von linux zu definieren. was bei dir da aktuell ist (war es synology oder so?) weiß ich nicht. bei debian ist es aktuell https://de.wikipedia.org/wiki/Systemd oder früher https://de.wikipedia.org/wiki/SysVinit
für b)+c) stellt buanet entsprechende einen mechanismus zur verfügung um entsprechende skripte dem container zuzuspielen
https://docs.buanet.de/de/iobroker-docker-image/docs/#startskripteauch würde ich dir bei komplexeren konfigurationen empfehlen zumindest docker-compose oder gar portainer mit der stacks-funktion (auch als docker-container startbar) zu nutzen