Port /dev/ttyACM0 does not exist

Hast Du Probleme mit Hardware, die durch die anderen Foren nicht abgedeckt werden? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
zzzZZZzzz
Beiträge: 2
Registriert: 21.08.2019 13:54:33

Port /dev/ttyACM0 does not exist

Beitrag von zzzZZZzzz » 21.08.2019 14:58:58

Hallo allerseits,

bei mir lief über Monate problemlos openHABian 1.4.1 (basierend auf Raspbian Stretch) auf einem Raspberry Pi 3 Modell B. Über einen CC2531 Stick (an Port ttyACM0) waren Zigbee-Geräte angebunden.
Vor ein paar Wochen hat es dann leider die microSD-Karte zerlegt. Ein wenig ärgerlich, da ich kein Backup hatte, aber gut.

Nach der Neu-Installation von openHABian 1.5 (basierend auf Raspbian Buster) habe ich Probleme bei der Einbindung des CC2531.
Beim Einstecken des Sticks gibt mir dmesg aus:

Code: Alles auswählen

[ 1337.682823] usb 1-1.4: new full-speed USB device number 4 using dwc_otg
[ 1337.827300] usb 1-1.4: New USB device found, idVendor=0451, idProduct=16ae, bcdDevice=57.62
[ 1337.827318] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1337.827328] usb 1-1.4: Product: CC2531 USB Dongle
[ 1337.827337] usb 1-1.4: Manufacturer: Texas Instruments
Normalerweise folgte sonst noch eine Zeile, in der der Stick dem Port /dev/ttyACM0 zugewiesen wird. Das geschieht offenbar nicht mehr, weswegen ich den Stick nun in Openhab nicht nutzen kann.

Ich habe inzwischen alles versucht, was üblicherweise bei diesem Problem empfohlen wird (scheint wohl öfter an Zugriffsrechten des Nutzers "openhabian" zu liegen):
  • user openhabian zu "dialout" hinzugefügt
  • user openhab zu "tty" hinzugefügt
  • Zugriffsrechte für /dev/ttyAMA0 geändert auf 777
  • Stick von einem Freund ausprobiert, der bei ihm funktioniert
  • Meinen Stick bei einem RPi 3B von einem Freund ausprobiert, wo er auch funktioniert
  • Direkte Einbindung per Symlink wie hier beschrieben
  • Cleane Installation von Raspbian, ohne Openhab
Leider gehen mit nun die Ideen aus, wie ich das Ganze wieder ans Laufen kriegen könnte.
Jeder Hinweise wird sehr gerne genommen

Benutzeravatar
MSfree
Beiträge: 10776
Registriert: 25.09.2007 19:59:30

Re: Port /dev/ttyACM0 does not exist

Beitrag von MSfree » 21.08.2019 15:44:57

Fehlt dir noch eine Overlaykonfiguration in /boot/config.txt?

zzzZZZzzz
Beiträge: 2
Registriert: 21.08.2019 13:54:33

Re: Port /dev/ttyACM0 does not exist

Beitrag von zzzZZZzzz » 21.08.2019 23:06:09

Danke dir. Mein Skill-Level ist leider eher so "Googlen und Troubeshooting". Wäre also super, wenn du das kurz erläutern könntest :lol:

MatSciGuy
Beiträge: 2
Registriert: 07.02.2022 15:07:13

Re: Port /dev/ttyACM0 does not exist

Beitrag von MatSciGuy » 07.02.2022 15:42:56

Hallo,
ich bin neu im Forum und in Linux und habe ein ähnliches Problem wie der Threadersteller damals:

Ich habe ein Intel Celeron mini-ITX Board, auf dem Raspberry Pi Desktop läuft (letzter aktueller 32 bit Buster Release zum jetzigen Zeitpunkt, apt upgrade auf aktuellem Stand).
Über die USB Header Anschlüsse auf dem Motherboard (frontpanel) habe ich über einen Kabeladapter verschiedene Mikrocontroller angeschlossen gehabt, mit unterschiedlichen USB-Serial Chips. Diese wären: FTDI ft232RL, CH340G und Holtek ht42b534. Wollte die über Arduino IDE programmieren und später dauerhaft verbunden lassen.
Jetzt das Problem:
Nach jedem Reboot funktionieren die Anschlüsse (egal welcher Chip) erst einmal hundertprozentig.

Code: Alles auswählen

lsusb
zeigt den jeweiligen Vendor Namen an,

Code: Alles auswählen

sudo dmesg | grep tty
zeigt, dass auf ttyACM0 (oder ACM1) ein Gerät existiert. Ich kann senden

Code: Alles auswählen

echo blabla > /dev/ttyACM0
und empfangen

Code: Alles auswählen

cat /dev/ttyACM0
, und die IDE benutzen, alles kein Problem. Dann, nach einer zufälligen, aber recht kurzen Zeitspanne (paar Minuten) - ist das Gerät plötzlich verschwunden, wird bei

Code: Alles auswählen

lsusb
nicht mehr gelistet. Wenn ich etwas senden will, kommt "keine Berechtigung".

Code: Alles auswählen

sudo dmesg | grep tty
zeigt keine Veränderung an, kein disconnect, gar nichts. Sieht aus wie vorher. Physisch trennen und neu verbinden hilft nicht. Nur Reboot löst das Problem dann, aber wie gesagt wieder nur für Minuten.
Ich habe wie der Threadersteller geguckt, was mit dialout ist, mein user ist aber drin. Ich habe die Berechtigungen gecheckt, ich habe Vollzugriff auf die Ports. Ich habe eine udev rule hinzugefügt. Ich bin wie gesagt neu in Linux (kam über raspberry Pis) und mein google research hat das Ende seiner Nützlichkeit erreicht, ich weiss nicht weiter. Es wurde noch etwas mit setserial vorgeschlagen, aber da muss man wohl die Port Adresse kennen und ich weiss nicht wo ich die herbekomme, ausserdem habe ich den Sinn und Zweck von setserial noch nicht durchschaut.
Eine Sache ist mir noch aufgefallen: Ganz am Anfang, bei den ersten Malen, wo ich die Arduinos angesteckt habe, wurden sie unter ttyUSBx erkannt. Kurz darauf und seitdem immer nur noch unter ttyACMx. Keine Ahnung wieso, habe zwischendrin nichts geändert. Aus vielen anderen Foren entnahm ich aber, dass ttyACMx sowieso die "normalen" Ports für Arduinos sind.
Ich hoffe, den alten Thread noch mal aufzumachen war ok. Wusste nicht so Recht, wo das einzuordnen ist.
Für Hilfe wäre ich dankbar!

MatSciGuy
Beiträge: 2
Registriert: 07.02.2022 15:07:13

Re: Port /dev/ttyACM0 does not exist

Beitrag von MatSciGuy » 08.02.2022 18:28:51

Sorry für's double posten, aber ich habe eine (halbe) Lösung für mein Problem gefunden und schreibs kurz auf, für alle mit dem selben Problem:

https://unix.stackexchange.com/question ... 0-or-above

Dieser Post hat mir geholfen.
Kurzgesagt, unter /etc/default/grub

Code: Alles auswählen

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"
einfügen.

-ttyACMx funktioniert seitdem stabil
-ttyUSBx ist NICHT stabil, dafür wird jetzt wenigstens das Einstecken eines Gerätes jedes mal erkannt. Allerdings folgen dann trotzdem nach ein paar Sekunden wieder Disconnects. Stabil ist es nur wenn das Gerät beim boot eingesteckt war und bleibt. Trotzdem schon eine riesen Verbesserung gegenüber früher.

Wie warum welches Gerät nun ACM oder USB zugeordnet wird, keine Ahnung. Aber so kann ich wenigstens mit den Geräten arbeiten.

Antworten