status:onlinesite:nandecoreghost:user:kiki
       _   _____    _   ______  ________________  ____  ______
      / | / /   |  / | / / __ \/ ____/ ____/ __ \/ __ \/ ____/
  /  |/ / /| | /  |/ / / / / __/ / /   / / / / /_/ / __/
 / /|  / ___ |/ /|  / /_/ / /___/ /___/ /_/ / _, _/ /___
/_/ |_/_/  |_/_/ |_/_____/_____/\____/\____/_/ |_/_____/
                
個人用端末
✦ NANDECORE-TERMINAL // BLOG ✦
kiki@nandecore:~$
リアルタイム
00:00:00
---
23%
signal
ghost sync
87%
stable - no anomalies
blog / Cardputer ADV unter Linux: der Serial-Port, der sich nicht öffnen ließ

Der M5Stack Cardputer ADV ist ein kleines Kartenformat-Computer mit ESP32-S3, Tastatur und Display. Firmware flashen geht bequem über den Browser mit WebSerial. Nur: mein Linux wollte den Serial-Port einfach nicht rausgeben. Der Browser hat das Gerät in der Liste angezeigt, und beim Verbinden kam trotzdem: “Failed to open serial port”.

Das Problem

Der Cardputer hängt am USB und erscheint als ttyACM0, ein serielles Gerät von Espressif (lsusb zeigt 303a:1001). Der Port gehört root:uucp mit Rechten rw-rw----. Das heißt: Nur root und Mitglieder der Gruppe uucp dürfen den Port anfassen.

Mein User-Account war nicht in der Gruppe. Also habe ich mich hinzugefügt:

sudo usermod -aG uucp <benutzername>

Und dann kam die Überraschung: id <benutzername> zeigte die Gruppe, aber meine Shell nicht. Die Gruppe stand in /etc/group, aber kein laufender Prozess hatte sie. Selbst nach Ab- und Anmelden nicht.

Warum Logout nicht reicht

Der Grund ist systemd. Dein Desktop-Login hängt an einer session, aber der Rest des Systems, inklusive Terminals und Dienste, hängt am systemd --user Manager. Der wird beim Boot gestartet und friert seine Gruppenliste dabei ein. Ein Desktop-Logout startet den Desktop neu, aber nicht den systemd-User-Manager. Der kennt deine neue Gruppe erst nach einem Reboot.

Der Test, der das zeigt: id <benutzername> liest /etc/group und zeigt die Gruppe. id -nG zeigt die Gruppen des eigenen Prozesses, und da fehlt sie. Datei ok, Prozess alt.

Der schnelle Fix ohne Reboot

Für die laufende Session gibt es newgrp:

newgrp uucp

Das startet eine Shell mit der Gruppe uucp. Den Browser startest du aus dieser Shell, dann öffnet WebSerial den Port. Danach exit, zurück in der normalen Shell.

Für alle weiteren Male: nach dem nächsten Reboot ist der systemd-User-Manager neu, und alles hat die Gruppe. Dauerhaft war die Lösung also nur usermod -aG uucp, der Reboot macht sie überall wirksam.

Und die SD-Karte

Der Cardputer braucht eine FAT32-Karte, exFAT kann seine Bibliothek nicht zuverlässig. Also: alte Partitionstabelle löschen, MBR anlegen, eine Partition, FAT32 formatieren. Das Label kann ruhig CARDPUTER heißen. Danach die Karte mit den Kontakten entgegengesetzt zum Display einstecken, das ist bei dem Gerät schnell verkehrt herum.

Die M5Launcher-Firmware drauf, ein paar Apps auf die Karte, und der kleine Kasten ist ein brauchbarer Alltagsbegleiter. Für ein Gerät in Kreditkartengröße ziemlich genial.

[ ← back to blog ]
connect
s9@nandecore.net
signal: online