Warum sendet die serielle Schnittstelle meines Raspi wirre Zeichen?
Einleitung:
In diesem FAQ wird aufgezeigt, wie und welche Änderungen notwendig sind um die rs232 des Raspi zur seriellen Kommunikation zu nutzen.
Vorgehensweise:
um die rs232 des Raspi zur seriellen Kommunikation zu nutzen, muss dieses erst für andere Dienste des Systems deaktiviert und Ausgaben beim Bootvorgang unterbunden werden.
Achtung! Beim Raspberry Pi Modell 3 gibt es eine Inkompatibilität mit dem UART.
Die Schnittstelle heisst auf dieser Plattform /dev/ttyS0 und nicht /dev/ttyAMA0 ( siehe auch die Infos -> über diesen Link <- )
Das ist der derzeitige Stand. Ob und wann sich da was ändert ist im Moment nicht bekannt.
Wie Michael ( -> maus3333 <- ) -> in diesem Thread <- schreibt, ist das - oft beschriebene - Prozedere mit dem Deaktivieren von Bluetooth nicht notwendig.
Es genügt also zu gewährleisten, dass die serielle Konsole nicht auf /dev/ttyS0 aktiviert ist.
(Stand: 30.06.2016).
Unter Raspbian Jessie wird die serielle Konsole folgendermassen deaktiviert:
Da unter Jessie keine inittabe mehr exisitert und zudem die Dienste über systemd statt über die sysVinit gestartet werden, reicht es aus, mit
den Dienst der seriellen Konsole auf der rs232 zu stoppen.
Soll auch nach einem Neustart dieser Dienst deaktiviert bleiben, muss stattdessen
ausgeführt werden.
Die aktuelle Einstellung könnt ihr mit
überprüfen.
Folgende Beschreibung gilt für Raspbian wheezy:
Zunächst die Datei /etc/inittab ändern. I.d.R. findet man ganz unten eine Zeile, in der ttyAMA0 drin steht.
Die muss auskommentiert werden:
ändern nach:
Dann die Datei /boot/cmdline.txt editieren. Da steht einiges drin, das ebenfalls zu ttyAMA0 gehört. Das muss entfernt werden:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
ändern nach:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
Die Änderungen müssen als root vorgenommen werden (sudo vor das Kommando oder gleich sudo bash für eine root-shell).
Nach einem reboot (shutdown -r now) sollte über die rs232 nichts mehr ausgegeben werden.
cheers,
-ds-