Manjaro - /dev/ttyUSB existiert nicht

  • Ich habe mir die Arduino-IDE unter Manjaro installiert und wollte einen ESP8266 installieren.

    So weit läuft die IDE.

    Nur kann ich die /dev/ttyUSBx nicht auswählen, sie ist einfach nicht da.

    Mit ls /dev/ wird sie nicht angezeigt.

    Das Notebook hat die Schnittstellen, unter Debian 11 oder MX-Linux auf dem gleichen Rechner funktioniert das alles, wie es soll.

    Ein ls /dev/ zeigt mir /dev/ttyUSB0 an.

    Hat jemand eine Idee?

    And still, we will be here, standing like statues.

    Schinder und Knarren, statt Kinder und Narren...

    Alles ist so unsagbar schnell geworden.
    (EROC, Let's Gläntz)

    Vertrauen muss verdient werden. Man verschenkt es nicht.

    Ich stelle keine dummen Fragen. Du musst Dich mit Deinen Antworten schon ein bisschen anstrengen.

  • Hallo Currock,

    ich selber habe kein Arduino, aber hast Du in der Arduino-IDE unter Tools mal geschaut ob der Schnittstellen-Port ausgewählt ist?

    Ansonsten kannst du mit

    Code
    sudo chmod 666 /dev/ttyUSB0

    auch die Rechte so setzen, das jeder darauf lesen und schreiben kann.

    Mehr weiss ich dazu leider nicht.

  • auch die Rechte so setzen, das jeder darauf lesen und schreiben kann.

    Mehr weiss ich dazu leider nicht.

    Das ist nicht das Problem. /dev/ttyUSBx ist gar nicht vorhanden.

    And still, we will be here, standing like statues.

    Schinder und Knarren, statt Kinder und Narren...

    Alles ist so unsagbar schnell geworden.
    (EROC, Let's Gläntz)

    Vertrauen muss verdient werden. Man verschenkt es nicht.

    Ich stelle keine dummen Fragen. Du musst Dich mit Deinen Antworten schon ein bisschen anstrengen.

  • Das Journal aufrufen

    sudo journalctl --no-pager -f

    und dann an den USB-Port anschließen und schauen, ob etwas Interessantes zu sehen ist.

    Werde ich mal testen. Ich bisher bemerkt, dass ttyUSB0 kurzzeitig erscheint, dann aber wieder verschwindet.

    Unter Debian (MX...) ist z.B. /dev/ttyUSB0 vorhanden, so lange die Buchse und der Chip vorhanden sind, es hängt nicht vom angeschlossenen Gerät ab. Manjaro (evtl. ArchLinux) macht da irgend etwas anders.

    And still, we will be here, standing like statues.

    Schinder und Knarren, statt Kinder und Narren...

    Alles ist so unsagbar schnell geworden.
    (EROC, Let's Gläntz)

    Vertrauen muss verdient werden. Man verschenkt es nicht.

    Ich stelle keine dummen Fragen. Du musst Dich mit Deinen Antworten schon ein bisschen anstrengen.

  • Werde ich mal testen. Ich bisher bemerkt, dass ttyUSB0 kurzzeitig erscheint, dann aber wieder verschwindet.

    Unter Debian (MX...) ist z.B. /dev/ttyUSB0 vorhanden, so lange die Buchse und der Chip vorhanden sind, es hängt nicht vom angeschlossenen Gerät ab. Manjaro (evtl. ArchLinux) macht da irgend etwas anders.

    Ganz ehrlich gesagt habe ich kaum Ahnung warum es hier genau geht, aber in Arch und Manjaro sind USB Medien unter /run/media zu finden.

    Wenn ich komplett daneben liege vergesst es einfach :/

    -----------------------------------------------------------------------------

    Lehre jemandem, wie man Angeln geht, anstatt ihm jeden

    Tag einen Fisch zu geben.

    -----------------------------------------------------------------------------

  • Currock möchte einen Mikrocontroller anschließen, vermutlich um ihn zu flashen.

    Genau darum geht es. Ich brauche die Schnittstelle, über die ich das Modul (in meinem Falle ein D1 mini mit ESP8266) ansprechen kann.

    Merkwürdigerweise wird mir nur eine /dev/ttyS4 angezeigt. Das wäre im Normalfall eine serielle Schnittstelle. So etwas ist nicht eingebaut oder angeschlossen.

    Kann es sein, daß da in den UDEV-Rules etwas schief läuft?

    Vielleicht sichere ich mal die Regeln von Manjaro und kopiere alles von Debian rein, könnte ja hinhauen oder sich zumindest verändern.

    Oder kann man herausfinden, welche dieser UDEV-Rules mir die ttyS4 andrehen will?

    And still, we will be here, standing like statues.

    Schinder und Knarren, statt Kinder und Narren...

    Alles ist so unsagbar schnell geworden.
    (EROC, Let's Gläntz)

    Vertrauen muss verdient werden. Man verschenkt es nicht.

    Ich stelle keine dummen Fragen. Du musst Dich mit Deinen Antworten schon ein bisschen anstrengen.

  • Als erste Idee:

    Das Journal aufrufen

    sudo journalctl --no-pager -f

    und dann an den USB-Port anschließen und schauen, ob etwas Interessantes zu sehen ist.

    Deine erste Idee hat mich zur Lösung gebracht. journalctl muss ich dringend als Werkzeug zur Problemfindung heranziehen.

    In den Ausgaben von Journalctl fanden sich folgende Zeilen beim Anstecken des Moduls:

    Code
    Jun 05 19:25:20 Poseidon kernel: ch341 2-1.2:1.0: ch341-uart converter detected
    Jun 05 19:25:20 Poseidon kernel: usb 2-1.2: ch341-uart converter now attached to ttyUSB0
    Jun 05 19:25:20 Poseidon mtp-probe[10702]: checking bus 2, device 9: "/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2"
    Jun 05 19:25:20 Poseidon mtp-probe[10702]: bus: 2, device: 9 was not an MTP device
    Jun 05 19:25:20 Poseidon systemd[1]: Starting BRLTTY Instance: /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2...
    Jun 05 19:25:20 Poseidon systemd[1]: Starting Braille Device: sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2...
    Jun 05 19:25:20 Poseidon systemd[1]: Finished Braille Device: sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2.

    Die Zeilen mit "...Starting BRLTTY Instance:..." sagen ja aus, dass da wohl ein Braille-Gerät gefunden und aktiviert wurde. Einige Zeilen später wurde die Initialisierung mit einer Fehlermeldung abgebrochen. Klar, ist ja auch kein Braille-Gerät, sondern nur der USB-Seriell-Wandler, der erkannt wurde.

    Verantwortlich dafür war die /usr/lib/udev/rules.d/90-brltty-device.rules oder die 90-brltty-uinput.rules, an deren Dateinamen ich einfach ein ".aus" angehängt habe, und die somit nicht mehr als gültige Regel erkannt werden.

    ...und schon ist der Spuk vorbei, es funktioniert!

    Ich schaue mir jetzt noch mal diese beiden Regeln an, aufgrund von was genau die darauf kommen, ein Braille-Gerät zu erkennen.

    Vielen Dank an alle Beteiligten, vor allem Sojan!

    And still, we will be here, standing like statues.

    Schinder und Knarren, statt Kinder und Narren...

    Alles ist so unsagbar schnell geworden.
    (EROC, Let's Gläntz)

    Vertrauen muss verdient werden. Man verschenkt es nicht.

    Ich stelle keine dummen Fragen. Du musst Dich mit Deinen Antworten schon ein bisschen anstrengen.

  • Es kann dir beim nächsten Update von Manjaro aber passieren, dass die deaktivierten Regeln wieder neu reinfliegen.

    Ich würde mit lsusb die Vendor- und Product-ID ermitteln und nachschauen, ob du für dieses IDs eine Regel in 90-brltty-device.rules findest.

    Könnte so aussehen (kenne deine IDs nicht)

    Code
    # /usr/lib/udev/rules.d/90-brltty-device.rules
    
    # Device: C251:112D
    # EuroBraille [reserved]
    ENV{PRODUCT}=="c251/112d/*", ENV{BRLTTY_BRAILLE_DRIVER}="eu", GOTO="brltty_usb_run"

    Solltest du fündig geworden sein, dann die ganze Datei nach /etc kopieren (/etc hat Vorrang).

    cp /usr/lib/udev/rules.d/90-brltty-device.rules /etc/udev/rules.d/90-brltty-device.rules

    ...und bei GOTO statt usb_run entsprechend device_end eintragen.

    Code
    # /etc/udev/rules.d/90-brltty-device.rules
    
    # Device: C251:112D
    # EuroBraille [reserved]
    ENV{PRODUCT}=="c251/112d/*", ENV{BRLTTY_BRAILLE_DRIVER}="eu", GOTO="brltty_device_end"

    Vorsichtshalber noch die Udev-Regeln neu einlesen (oder Neustart)

    sudo reload udev

  • Ja, hört sich gut an. Und die gleiche Regel in /usr/lib/udev/rules.d wird dann nicht mehr ausgeführt, wenn eine gleichen Namens in /etc/udev/rules.d existiert? Oder merkt sich das System die id des Geräts als "schon bearbeitet"?

    And still, we will be here, standing like statues.

    Schinder und Knarren, statt Kinder und Narren...

    Alles ist so unsagbar schnell geworden.
    (EROC, Let's Gläntz)

    Vertrauen muss verdient werden. Man verschenkt es nicht.

    Ich stelle keine dummen Fragen. Du musst Dich mit Deinen Antworten schon ein bisschen anstrengen.

  • Und die gleiche Regel in /usr/lib/udev/rules.d wird dann nicht mehr ausgeführt, wenn eine gleichen Namens in /etc/udev/rules.d existiert?

    Noch mal schnell das Wiki herangezogen:

    udev rules written by the administrator go in /etc/udev/rules.d/, their file name has to end with .rules. The udev rules shipped with various packages are found in /usr/lib/udev/rules.d/. If there are two files by the same name under /usr/lib and /etc, the ones in /etc take precedence.

    Gemerkt wird sich nach meinem Verständnis nichts. Bei Systemstart oder dem Einstöpseln des USB-Geräts werden die Regeln (neu) ausgeführt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!