À la base, je voulais juste me connecter au port console de deux switchs dont je n'ai pas les câbles RS232 d'origine : D-link DES-3526 et HP Procurve J4813A 2524.
Commençons par le plus facile : le D-link. Le port console est de type RS232 DB9 femelle. Que nous dit la doc' (
http://www.dlink.com/-/media/Business_Products/DES/DES%203550/Manual/DES%203550_CLI_Manual_EN_UK.pdf) ? 9600 baud - 8N1 - pas de flow control (ni logiciel (aussi nommé xon/xoff), ni matériel), compatible VT-100. La documentation ne précise pas s'il faut un câble droit ou croisé. J'ai un câble RS232 DB9 mâle droit <-> USB.
Ça, c'est par défaut mais la vitesse de transmission a pu être modifiée par un utilisateur précédent. Sur ce modèle, la seule solution est de revenir aux paramètres d'usine. Peu de doc' à ce sujet, heureusement que je n'ai pas eu à le faire.
On branche le câble à l'ordi, Linux le reconnaît et le bind sur /dev/ttyUSB0. On vérifie que l'on a les droits lecture+écriture sur ce dev. On lance minicom -D /dev/ttyUSB0. On fait la configuration : ctrl + A puis Z (pour accéder au menu de minicom). O (configurer minicom) puis Configuration du port série puis G pour désactiver le contrôle de flux logiciel puis E puis C pour passer en 9600 baud. Le reste est ok : 8N1 et VT102 est un jeu englobant VT100 donc compatible.
On connecte le série au port console du switch. On alimente le switch en électricité. On attend... Longtemps (au moins deux bonnes minutes) puiiiiiis :
Boot Procedure 3.00.008
-------------------------------------------------------------------------------
Power On Self Test ...................................... 100 %
MAC Address : 00-15-E9-86-99-64
H/W Version : 3A1
Please wait, loading V3.06-B20 Runtime image ............ 100 %............
Et enfin :
DES-3526 Fast Ethernet Switch Command Line Interface
Firmware: Build 3.06-B20
Copyright(C) 2000-2004 D-Link Corporation. All rights reserved.
UserName:
PassWord:
DES-3526:4#
DES-3526:4#help
Available commands:
.. ? clear config
create delete dir disable
download enable login logout
ping reboot reconfig reset
save show upload
Attaquons maintenant le plus difficile : le Procurve 2524. Le port console est de type RS232 DB9 mâle. Que nous dit la doc' (
http://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c01958654&sp4ts.oid=57546 et
http://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c02597327) ? Entre 1200 et 115200 baud (le switch s'adapte), 8N1, flow control logiciel, compatible VT100. La documentation précise qu'il faut un câble croisé.
Ça, c'est par défaut mais la vitesse de transmission et la présence de flow control ont pu être modifiées par un utilisateur précédent. On utilise DHCP+telnet (si disponible, toujours cette histoire de par défaut ou non) pour vérifier, soit on remet les paramètres d'usine (source : la doc sus-citée) :
« To execute the factory default reset, perform these steps:
1. Using pointed objects, simultaneously press both the Reset and Clear buttons on the front of the switch.
2. Continue to press the Clear button while releasing the Reset button.
3. When the Self Test LED begins to flash, release the Clear button. The switch will then complete its self test and begin operating with the configuration restored to the factory default settings. »
Pour brancher :
* Soit je reprends mon câble RS232 DB9 mâle droit <-> USB + une rallonge RS232 DB9 femelle <-> RS232 DB9 femelle croisée. Ça fonctionne out-of-box mais je n'avais pas la rallonge au début de cette aventure. L'inverse (câble croisé et donc rallonge droite) est également possible.
* Soit je reprends mon RS232 DB9 mâle droit <-> USB + 3 fil Arduino femelle<->femelle (ça :
http://ecx.images-amazon.com/images/I/51S1M3ALnDL._SY300_.jpg). Il faut alors câbler comme ceci :
switch <-> câble RS232 droit
2 <-> 3
3 <-> 2
5 <-> 5
Sachant que l'ordre des PIN des deux côtés (câble et switch) sera celui-là :
http://www.usconverters.com/images/rs232-pinout.jpg (1 2 3 4 5 sur la première ligne, 6 7 8 9 sur la deuxième, ligne contenant le plus de pin vers le haut). Les autres pin sont inutiles (9 = sonnerie modem, le reste = flow control). Si votre câble mâle est croisé, vous ne devez évidemment pas croiser 2 et 3.
* Soit j'achète un câble RS232 DB9 femelle croisé <-> USB. C'est la solution que j'avais choisi initialement. Sauf que ça ne fonctionne pas. Après investigation : mon câble n'est pas croisé (on retiendra donc que câble null modem n'est pas synonyme de câble croisé contrairement à ce que l'on entend beaucoup !). De plus, sur le câble, l'ordre des pins devrait être celui-ci :
http://www.datalinkcom.net/images/rs232f9.jpg afin qu'au moins le 5 du switch tombe bien sur 5 du câble. Or, mon câble est inversé donc le 5 du switch arrive sur le 1 du câble... On peut corriger ça avec 3 fil Arduino mâle<->femelle (
http://ecx.images-amazon.com/images/I/413iVQHUlQL.jpg). Il suffit de reprendre le schéma de câblage donné au point précédent.
Quelle que soit la méthode retenue, on branche le câble série à l'ordi, Linux le reconnaît et le bind sur /dev/ttyUSB0. On vérifie que l'on a les droits lecture+écriture sur ce dev. On lance minicom -D /dev/ttyUSB0. On fait la configuration : ctrl + A puis Z (pour accéder au menu de minicom). O (configurer minicom) puis Configuration du port série puis G pour désactiver le contrôle de flux logiciel (sisi, on en n'a pas besoin, surtout avec nos câblage avec 3 fil) puis E puis C pour passer en 9600 baud. Le reste est ok : 8N1 et VT102 est un jeu englobant VT100 donc compatible.
On connecte le série au port console du switch. On alimente le switch en électricité. On laisse le switch booter (environ 30 secondes) et on obtient :
Hit Enter to Continue.
---------- (on s'exécute)
Connected at 9600 baud.
----------
HP J4813A ProCurve Switch 2524
Firmware revision F.05.17
Copyright (C) 1991-2003 Hewlett-Packard Co. All Rights Reserved.
RESTRICTED RIGHTS LEGEND
Use, duplication, or disclosure by the Government is subject to restrictions
as set forth in subdivision (b) (3) (ii) of the Rights in Technical Data and
Computer Software clause at 52.227-7013.
HEWLETT-PACKARD COMPANY, 3000 Hanover St., Palo Alto, CA 94303
Press any key to continue
---------- (on s'exécute)
HP ProCurve Switch 2524# help
boot Reboot the device.
clear Clear table/statistics or authorized client public keys.
configure Enter the Configuration context.
copy Copy datafiles to/from the switch.
end Return to the Manager Exec context.
[...]
Conclusion : ce que je retiens de RS232 : RS232 = kamoulox = port de communication créé par des sados pour des masos = conçu par des ingénieurs de chez IBM/Microsoft/ITU, pas possible autrement = complot de la NSA et des reptiliens de la zone 51.
Merci aux gentils dinos suivants qui savent encore comment fonctionne RS232 et qui m'ont grandement aidés : DelTree, Valérie, Christian, Karim. :)