dimanche 30 janvier 2011

Console série pour Linux

Lorsque l'on dispose d'un serveur sous Linux sans écran/clavier, il est parfois difficile de savoir ce qu'il se passe. Si la connexion réseau est morte par exemple. Dans ce cas, il est utile d'avoir un moyen d'accéder au serveur sans avoir à  déplacer un écran depuis un autre PC. Nous allons voir comment mettre en place une console sur le port série de notre serveur. Tout d'abord les différentes options matérielles simples et peu couteuses, suivie de la configuration logicielle de votre serveur.

Materiel

console sur un autre PC

Le plus simple est de mettre en place un terminal série sur un autre PC et de le relier à  votre serveur via un cà¢ble série. Par contre, cela nécessite que votre PC client dispose d'un port série (ou USB avec l'adaptateur qui va bien) et surtout qu'il ne soit pas trop loin du serveur. C'est généralement une bonne solution de dépannage mais rarement une solution à  long terme.

Dans un tel cas, j'utilise principalement screen ou cutecom comme logiciel terminal. Bien entendu il en existe plein d'autres selon vos préférences. Citons le vénérable minicom ou

minitel

Ici, nous avons sans doute la solution la plus fun. On trouve des minitels partout et pour quelques euros. Regardez aussi dans les placards de grand-mère ! Il vous faudra un minitel 1B. Pour le reconnaitre, c'est simple, il doit disposer de la touche Fcnt.

Ensuite un simple petit montage à  base de 2 transistors, une combinaison de touches magique, et vous voici avec un superbe terminal série vintage au possible ! Pour la petite histoire, j'ai fait mon montage à  partir d'un article du GLMF #1 :)

minitel

Vous trouverez le schéma du montage dans les liens ci-dessous. Pour basculer votre minitel dans le bon mode[1] :

  • Fcnt+P 4 pour le passer en 4800bps
  • Fcnt+T A pour basculer en clavier américain
  • Fcnt+T E pour enlever l'echo local

Par contre il ne monte pas à  plus de 4800bps et la touche | manque sur le clavier.

vtXXX

Maintenant on arrive à  une solution plus rare. Ce genre d'équipement a eu son heure de gloire lorsque les ordinateurs se résumaient à  des mainframes. On peut en trouver dans des ventes au enchères ou dans des poubelles de grandes sociétés[2]. L'avantage est que ce sont de vrais terminaux série disposant de plein d'options. C'est aussi une vrai satisfaction de marier ainsi l'histoire de l'informatique avec votre NAS dernier cri :)

IOLAN

Pour finir, voici la solution la plus professionnelle. Un équipement qui vous permet d'exporter une[3] console série sur le réseau. Vous pouvez alors y accéder via telnet/ssh de n'importe ou. cela reste tout de même assez difficile à  trouver ou à  des prix relativement prohibitifs. iolan On peut aussi facilement en construire un à  partir d'un microcontroleur et d'un chip réseau. J'imagine cela très facilement avec un arduino et un shield ethernet.

Logiciel

Voyons maintenant la partie logicielle. Nous allons faire en sorte que notre OS favori utilise le port série pour ses messages.

grub

Dans le fichier /boot/grub/menu.lst avant les options automagic

serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console

messages de boot

Dans le fichier /boot/grub/menu.lst

# kopt=root=/dev/mapper/vg00-root ro console=ttyS0,38400n8

Puis pour appliquer les 2 précédents changements, on utilise la commande suivante en tant que root :

FortCigogne-NG:~# update-grub

Au prochain reboot, grub et le noyau nous parleront via le port série.

console après boot

Pour finir, on configure le démarrage d'un login sur le port ttyS0, afin de pouvoir se logger une fois le boot terminé. Cela se passe dans le fichier /etc/inittab ou l'on ajoute la ligne suivante :

T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100

On peut tester directement le fonctionnement en redémarrant la lecture de l'inittab :

init q

Bibliographie

http://www.vanemery.com/Linux/Serial/serial-console.html http://znark.com/tech/serialconsole.html http://www.howtoforge.com/setting_up_a_serial_console http://www.totofweb.net/robots-projet-52.html http://yip.free.fr/bidouilles/minitel/terminal.html

Notes

[1] à  faire à  chaque utilisation

[2] c'est de la que vient le mien

[3] ou plusieurs


Commentaires du post original