Hi Flugis,
so ruhig hier?
Ich quäle mich gerade ein bißchen mit einem Raspberry Pi 3B+ herum, (Debian bookworm), der soll über ein USB-Seriell Interface (läuft!) eine Login-Console nach außen anbieten.
Mit systemd wird das wohl schwierig, ChatGPT hat ein bißchen geholfen aber nur ein bicßhen.
Manchmal bekomme ich (über ein gekreutes Seriell-DB9-Kabel ein Login hin, dann aber mneist nur über 9600 Baud. Am Ende soll es bei 38400 Baud 8N1 bleiben.
Hier ein paar facts:
# ps ax | grep agetty 867 tty1 Ss+ 0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud 38400,38400 - linux 868 ttyS0 Ss+ 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,57600,38400,9600 - vt220 869 ttyUSB0 Ss+ 0:00 /sbin/agetty -o -p -- \u --keep-baud 38400,38400 - vt220
Weder /dev/ttyS0 noch /dev/tty1 hab ich "bestellt" aber just for info.
Eigentlich brauche ich nur Empfang auf /dev/ttyUSB0, das soll dauerhaft auf 38400 Baud gesetzt werden, ich sehe aber
# stty -F /dev/ttyUSB0 speed 9600 baud; line = 0; min = 1; time = 0; -brkint -icrnl -imaxbel iutf8 -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
Dann gibt es wohl noch:
# stty -F /dev/ttyS0 speed 115200 baud; line = 0; min = 1; time = 0; -brkint -icrnl -imaxbel iutf8 -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
Ist das Kunst oder wie kann das weg?
systemctl status listet mir alle drei:
│ ├─system-getty.slice │ │ └─getty@tty1.service │ │ └─867 /sbin/agetty -o "-p -- \u" --noclear --keep-baud 38400,38400 - linux │ ├─system-serial\x2dgetty.slice │ │ ├─serial-getty@ttyS0.service │ │ │ └─868 /sbin/agetty -o "-p -- \u" --keep-baud 115200,57600,38400,9600 - vt220 │ │ └─serial-getty@ttyUSB0.service │ │ └─869 /sbin/agetty -o "-p -- \u" --keep-baud 38400,38400 - vt220
Ich hab nix dagegen wenn z.B. auf der Hardware-UART des Raspi auch eine Console rangehen würde, muß aber auch nicht sein. Hauptsache ich sperre mich nie über ssh aus.
Der Kernel hat auch irgendwelche Parameter beim Booten:
# cat /boot/cmdline.txt console=serial0,38400 console=tty1 root=PARTUUID=54a66289-02 rootfstype=ext4 fsck.repair=yes rootwait cfg80211.ieee80211_regdom=DEroot@rp23:~#
Ich hab das dort auf 38400 geändert ohne wirklich zu wissen was ich tu.
Wie bekomm ich die Baudrate dauerhaft auf 38400?
Hier eine Datei die ich nach einer Anleitugn angelegt habe:
# cat /etc/systemd/system/serial-getty@ttyUSB0.service
[...]
[Service] # The '-o' option value tells agetty to replace 'login' arguments with an # option to preserve environment (-p), followed by '--' for safety, and then # the entered username. ExecStart=-/sbin/agetty -o '-p -- \u' --keep-baud 38400,38400 - $TERM
Seufz.
Any ideas?