Utilisation du port série du Rasbperry Pi

L'utilisation du port série sur le Rapberry Pi est plutôt aisée car accessible sur le port GPIO, pas besoin de souder comme pour le NSLU2 8-).

Mais pourquoi se connecter sur le port série ? Et bien cela évite de connecter un écran en HDMI au fond du jardin lorsque le wifi n'arrive pas à se connecter par exemple… Ici, un cable USB avec un adaptateur kivabien© connecter à un ordinateur portable permettra de faire du debug sur la machine incriminée via un accès shell, comme avec un ssh. Sauf qu'avec ce type d'accès si la configuration réseau est cassée, l'accès est toujours opérationnel, il faut juste se déplacer IRL

Par contre, il faut activer cette fonctionnalité avant d'en avoir besoin, c'est à dire lorsque le réseau fonctionne ou qu'un écran + clavier sont encore branchés. Par défaut, le port série n'est pas activé.

Raspberry Pi avec cable série

J'utilise un adaptateur USB ↔ Série à base de puce CP2102 qui gère nativement l'interface USB vers RS232 et est compatible 3.3V.

adaptateur USB <-> Série à base de puce CP2102

Connecter les broches suivantes du Raspberry Pi vers l'adaptateur USB :
Adaptateur
Serie <> USB
Raspberry Pi Note
Tx GPIO 15 Il faut bien croiser Tx du Raspberry vers Rx de l'adaptateur
Rx GPIO 14
GND GND
VCC NC Ne pas connecter, sinon le Raspberry Pi dernier va s'alimenter via l'adaptateur relié au port série de l'ordinateur portable et finir par le griller car ce dernier n'est pas dimensionner pour fournir 1A de courant minimum.
Brochage pour utiliser le port série

Pour brancher cette clé USB sur un mac, il faut commencer par installer les drivers puis bidouiller avec High Sierra.

Brancher l'adaptateur et déterminer le nom du périphérique créé :

ls /dev/cu*
/dev/cu.Bluetooth-Incoming-Port /dev/cu.SLAB_USBtoUART

L'entrée qui nous intéresse est /dev/cu.SLAB_USBtoUART.

Puis lancer screen :

screen /dev/cu.SLAB_USBtoUART 115200

Si rien n'apparait à l'écran, taper une touche ou entrée, un prompt devrait s'afficher.

Pour sortir de Screen

Taper la combinaison de touches : CTRL + a suivi de SHIFT + k puis accepter avec y

Brancher l'adaptateur sur le port USB, puis consulter les logs du noyau pour déterminer le nom du périphérique créé :

sudo dmesg -T | tail 
[sam. nov. 10 15:04:54 2018] usb 3-1.2: new full-speed USB device number 17 using xhci_hcd
[sam. nov. 10 15:04:55 2018] usb 3-1.2: New USB device found, idVendor=10c4, idProduct=ea60
[sam. nov. 10 15:04:55 2018] usb 3-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[sam. nov. 10 15:04:55 2018] usb 3-1.2: Product: CP2102 USB to UART Bridge Controller
[sam. nov. 10 15:04:55 2018] usb 3-1.2: Manufacturer: Silicon Labs
[sam. nov. 10 15:04:55 2018] usb 3-1.2: SerialNumber: 0001
[sam. nov. 10 15:04:55 2018] cp210x 3-1.2:1.0: cp210x converter detected
[sam. nov. 10 15:04:55 2018] usb 3-1.2: cp210x converter now attached to ttyUSB0

L'adaptateur est correctement reconnu et le /dev/ttyUSB0 lui est assigné. Lancer picocom par exemple :

picocom /dev/ttyUSB0 -b 115200

Pour sortir de Picocom

Taper la combinaison de touches : CTRL + a suivi de CTRL + x

Pour activer le port série du Raspberry Pi, lancer l'outil raspi-config :

Accueil de raspi-config

puis dans la section 8 Advanced options :

Options avancées

puis en A8 Serial :

Options avancées

et enfin valider :

Options avancées

La prise en compte sera effective au prochain reboot.

Cette TUI ajoute les paramètres suivants :

  1. console=serial0,115200 ajouté au fichier /boot/cmdline.txt;
  2. enable_uart=1 dans /boot/config.txt

Lancer screen ou picocom comme décrit ci dessus, puis re-démarrer le Raspberry Pi.

Les traces de démarrage du noyau devraient apparaitre dans la console de l'ordinateur portable : Loggue de démarrage

Lorsque le boot est terminé, il est possible de se loguer :

Raspbian GNU/Linux 9 raspberrypi ttyAMA0
 
raspberrypi login: