Raspberry Pi

Login mittels serieller Schnittstelle

Freitag, 24. Juni 2016

Raspberry Pi 2 Modell B

Der Raspberry Pi ist ein beliebter Einplatinencomputer, für den die Raspberry Pi Foundation auf ihrer Homepage verschiedene Linux-Distributionen zum Download anbietet.

Wer Embedded Linux lernen oder einfach nur ARM-Assembler programmieren möchte, der findet mit diesem Gerät ein gutes Einsteigermodell.

Serielle Schnittstelle

Wird zum ersten Mal in den Raspberry Pi gebootet, kann dieser entweder angeschlossen an einen Monitor und eine Tastatur oder mittels ssh pi@<ip-adresse> konfiguriert werden. Ein anderer Weg ist, die bei der Raspbian Distribution standardmäßig unterstützte serielle Schnittstelle zum Login zu verwenden.

Voraussetzungen

Da PCs zumeist keine serielle Schnittstelle mehr bieten, ist ein USB-zu-seriell-Wandler erforderlich. Beim Kauf eines Wandlers muss darauf geachtet werden, dass der Raspberry Pi keine USB typischen 5V auf seinen I/O Leitungen unterstützt, sondern nur 3.3V. Der Wandler sollte also zusätzlich die Pegel auf 3.3 Volt anpassen.

Ein geeigneter Wandler ist der PL2303HX USB to TTL UART RS232 COM, der sehr günstig bei Amazon für unter 3€ erworben werden kann.

Der Wandler hat einerseits einen an den Computer anzuschließenden USB-Typ-A Stecker und andererseits 4 für die GPIO-Leiste des Raspberry bestimmte Kabel. Das rote Kabel ist nur dann mit der 5V Stromversorgung des Raspberry zu verbinden, wenn dieser nicht anderweitig mit Strom versorgt wird. Die folgende Abbildung zeigt die Belegung.

      ╭─SD───╮  GPIO-
      │ Karte│  Leiste
╭─────┴──────┴──────╮
│          3.3V ① ② │5V Vcc     <--- (rotes Kabel, falls
│         GPIO2 ③ ④ │5V     keine andere Stromversorgung)
│         GPIO3 ⑤ ⑥ │0V Gnd     <--- schwarzes Kabel
│         GPIO4 ⑦ ⑧ │TXD UART0  <--- weißes Kabel (RXD)
│           Gnd ⑨ ⑩ │RXD UART0  <--- grünes Kabel (TXD)
│               ... │
│               ... │
│               ... │
│                   │
│╭────╮╭────╮╭────╮ │
││Eth ││USB ││USB │ │
╰┴────┴┴────┴┴────┴─╯
Abbildung 1: Anschluss der Kabel an die GPIO-Leiste des Raspberry-Pi

Terminalprogramm

Zur Ein- und Ausgabe aufseiten des PCs wird ein Terminalprogramm benötigt. Entweder wird ein Testterminal aus dem Quellcode übersetzt mit
$ gcc -std=gnu99 -otestterm testterm.c
oder ein Standardterminalprogramm wie GNU Screen verwendet.

Die serielle Schnittstelle wird normalerweise mit 115200 Baud, 8 Daten, keinem Parity und einem Stopbit betrieben (115200 8N1).

Um sich per Screen-Programm einzuloggen, muss es gestartet werden mit
$ screen /dev/ttyUSB0 115200
wobei eine Hilfestellung mit den Tastencodes <Strg+a> und <?> aufgelistet wird.

Falls Testerm verwendet wird, ist dieses zu starten mit
$ ./testterm /dev/ttyUSB0 115200 8N1

Viel Spaß beim Experimentieren!