Wie bestimme ich die Baudrate einer seriellen Schnittstelle?

18

Ich richte einen Konsolenserver ein und muss die korrekte Baudrate meines Ports ermitteln. Ich würde das gerne von der Kommandozeile aus machen, wenn möglich. Weiß jemand wie?

thepocketwade
quelle

Antworten:

25

setserialist Linux-spezifisch, aber Sie können auch den sttyBefehl (auf jedem Unix verfügbar) verwenden, um die Geschwindigkeit und andere Eigenschaften von jedem tty zu überprüfen.

sttyFunktioniert mit seiner Standardeingabe, stty < /dev/ttyXXgibt Ihnen also die Informationen zu dieser bestimmten Zeit. Alternativ können sttySie die -F /dev/ttyXXOption verwenden , wenn Sie sich in einer Situation befinden, in der Sie die Standardeingabe von nicht festlegen können .

Curt J. Sampson
quelle
5
Möglicherweise müssen Sie verwenden stty -F /dev/ttyXX
Mark Lakata
2

Da Sie einen Konsolenserver erwähnen und diese Frage mit linux markiert ist, gehe ich davon aus, dass Sie eine Verbindung zu einem Linux-Server herstellen. Der Server muss für die Verwendung einer seriellen Konsole konfiguriert sein, damit mehrere Stellen überprüft werden können.

Das Kernel-Setup beinhaltet das Hinzufügen des "console" -Parameters zur Befehlszeile Ihres Kernels. Wenn Sie beispielsweise "console = ttyS0,9600" hinzufügen, wird der Kernel angewiesen, Nachrichten mit 9600 Baud an den ersten seriellen Port (/ dev / ttyS0, COM1 in DOS / Windows-Ausdrücken) zu senden. Sie können dies über Ihre Bootloader-Konfiguration zur Befehlszeile hinzufügen. Bei Verwendung von grub ist dies normalerweise eine Datei mit dem Namen /boot/grub/grub.conf. Beachten Sie, dass Sie für herkömmliche Tastatur- / Videokonsolen (tty0) sowie für serielle (/ dev / ttyS0) mehrere Konsolenparameter festlegen können. Zum Beispiel: "console = tty0 console = ttyS0,9600"

Um eine Anmeldeaufforderung über die Seriennummer bereitzustellen, müssen Sie / etc / inittab bearbeiten und eine Zeile wie die folgende hinzufügen / bearbeiten. s0: 12345: respawn: / sbin / agetty 9600 ttyS0 vt100 Diese Zeile weist das agetty-Programm an, eine Anmeldeaufforderung auf / dev / ttyS0 mit 9600 Baud zu erzeugen.

Beachten Sie, dass Sie normalerweise die serielle Schnittstelle und die Baudrate zwischen Kernel und agetty-Setup anpassen möchten. Wenn Sie die obigen Konfigurationen überprüfen, sollten Sie in der Lage sein, die Baudrate des Servers zu bestimmen.


quelle
Es sei denn, Ihr Linux verwendet nicht inittab. Meine Fedora- und Ubuntu-Systeme verwenden /etc/event.d/tty* und /etc/event.d/serial, die Teil von Upstart sind ( en.wikipedia.org/wiki/Upstart ).
Bis auf weiteres angehalten.