Hinweis: In der Antwort werden nur wenige Lösungen von verschiedenen Standorten gesammelt. Im Moment habe ich keine Möglichkeit, sie zu testen.
SysVinit
Pre- systemd
Linux kann verwenden sysvinit ist /etc/inittab
zum Laichen getty
auf verschiedenen Endgeräten. Die Beispielzeile kann folgendermaßen aussehen (aus diesem alten Leitfaden entnommen ):
s0:2345:respawn:/sbin/getty -L 115200 ttyS0 vt102
Emporkömmling
Wenn Ihr Betriebssystem verwendet wird upstart
, ist das Verfahren anders. ZB gibt es diese Anleitung :
Erstellen Sie eine Datei
/etc/init/ttyS0.conf
mit dem folgenden Inhalt :# ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[12345] stop on runlevel [!12345] respawn exec /sbin/getty -L 115200 ttyS0 vt102
Fragen Sie
upstart
nach demgetty
sudo start ttyS0
Systemd
Laut dieser Site kann eine systemd
Lösung so einfach sein wie
Um von einer seriellen Konsole Gebrauch zu machen, verwenden Sie einfach
console=ttyS0
die Kernel-Befehlszeile undsystemd
starten automatisch eine Konsole daraufgetty
.
Sie würden wahrscheinlich Ihren GRUB2 dafür konfigurieren. Analysieren Sie, was Arch Wiki sagt, und passen Sie sich gegebenenfalls an Ihre Distribution an:
Um die serielle Konsole von Grub zu aktivieren, öffnen Sie sie
/etc/default/grub
in einem Editor. Ändern Sie dieGRUB_CMDLINE_DEFAULT
Zeile, um die Konsole zu starten/dev/ttyS0
. Beachten Sie im Beispiel unten, dass wir zwei Konsolen einrichten. eine antty0
und eine an der seriellen Schnittstelle.GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,38400n8"
Nun müssen wir grub mitteilen, wo sich die Konsole befindet und welcher Befehl gestartet werden muss, um die serielle Konsole zu aktivieren (Hinweis: Wie oben für Linux-Kernel können mehrere Eingabe- / Ausgabe-Terminals in grub angehängt werden, z. B.
GRUB_TERMINAL="console serial"
würden sowohl Anzeige als auch seriell aktiviert werden):## Serial console GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=38400 --unit=0 --word=8 --parity=no --stop=1"
Erstellen Sie die
grub.cfg
Datei mit folgendem Befehl neu:grub-mkconfig -o /boot/grub/grub.cfg
Nach einem Neustart
getty
wird aufgehört/dev/ttyS0
und erwartet38400
Baud,8
Datenbits, keine Parität und ein Stoppbit. Wenn Arch bootet,systemd
startet automatisch einegetty
Sitzung, um auf demselben Gerät mit denselben Einstellungen zu hören.
Beide Seiten sind sich einig, dass GRUB2 nicht auf dem seriellen Gerät hören soll, sondern nur getty
nach dem Booten, dann benötigen Sie etwas Ähnliches
systemctl enable serial-getty@ttyS0.service systemctl start serial-getty@ttyS0.service
Auf Nachfrage
Wenn Sie ein Problem haben, denken Sie daran, dass getty
es sich nur um ein Programm handelt. Es kann auf Anforderung oder von aus ausgeführt werden rc.local
. Siehe man getty
für weitere Einzelheiten. Ich denke, dein erster Versuch mag sein
sudo getty -L 115200 ttyS0 vt102
(Bearbeiten) Dies ist das Feedback des OPs, das Benutzern mit ähnlichen Problemen helfen kann:
Ich musste es tun,
sudo su -c "…"
damit es richtig funktioniert.