juin 29 2010
Dialoguer avec une interface série
Il arrive que l’administrateur d’un parc de Mac se trouve confronté à un problème qui peut paraître insoluble. Dialoguer avec un matériel via une interface série. Par exemple une baie de stockage de type Promise VTrack, celles qui remplacent les Xserve Raid dans le catalogue Apple.
Le câble
Le problème est à diviser en deux parties. Tout d’abord, il faut vous procurer un câble adaptateur USB <-> Série. Vous en trouverez pléthore en chercher sur le Web.
Le pilote
Il existe un pilote générique, OpenSource adapté aux Mac.
Il s’agit en fait d’une extension du kernel qu’il est préférable de compiler vous même pour une meilleure intégration. Il faut bien sûr que les outils de développement soient installés sur votre machine.
Récupération des sources
Vous pouvez récupérer les sources que propose SourceForge :
svn co https://osx-pl2303.svn.sourceforge.net/svnroot/osx-pl2303 osx-pl2303
Si vous utilisez SnowLeopard, vous ne pourrez pas les compiler. Choisissez de préférence, et dans tous les cas les sources
depuis un autre dépôt, gérez lui avec git :
# git clone http://github.com/failberg/osx-pl2303.git
Dans les deux cas, vous vous retrouvez avec un répertoire osx-pl2303
Lancement de XCode
Dans ce répertoire se trouve un fichier osx-pl2303.xcodeproj. Ouvrez Xcode avec ce fichier en paramètre : open osx-pl2303.xcodeproj dans le Terminal par exemple.
Choix de la cible
Une fois Xcode ouvert, choisissez la cible pour laquelle vous voulez compiler, dans le menu en haut à gauche de la fenêtre.
Compilation
Pour lancer la compilation, cliquez sur l’icône Build (le marteau). Si la compilation se passe bien, vous avez maintenant une extension du kernel prête à être installée.
Installation de l’extension du kernel
Dans le répertoire osx-pl2303 vous trouverez un répertoire build dans lequel réside un autre répertoire au nom de votre cible (Release-10.6-universal dans le cas d’un 10.6). Enfin dans ce répertoire, l’extension elle-même osx-pl2303.kext.
Il faut la copier dans le répertoire des extensions de kernel /System/Library/Extensions :
# sudo cp -pr osx-pl2302.kext /System/Library/Extensions/.
Charger l’extension dans le kernel
Vous pouvez charger l’extension avec la commande kextload ou en rebootant votre machine.
# sudo kextload osx-pl2303.kext
Un logiciel de communication
Il est nécessaire d’avoir un logiciel de communication qui va être capable d’exploiter ce pilote. Personnellement, j’aime bien minicom qui travaille dans le Terminal. Vous pouvez opter pour le bon vieux Zterm.
Installation de minicom via MacPort
J’ai choisi minicom et je vais l’installer en passant par le gestionnaire de paquet MacPort. Il faut bien sûr que MacPort soit installé avant sur votre système.
Mettre à jour MacPort et les paquets déjà installés
Pour éviter les surprises, il est nécessaire de mettre à jour MacPort lui-même et les paquets déjà installés.
# sudo port selfupdate
# sudo port upgrade outdated
Installation de minicom
Une fois les mises à jour effectuées, il faut installer minicom et ses dépendances :
# sudo port install minicom
Utilisation de minicom
Après le redémarrage de votre machine ou le chargement de l’extension, une nouvelle entrée dans /dev est apparue. Il s’agit de tty.PL2303-00002006. Pour être utilisable plus facilement, il faut faire un lien avec un nom plus évocateur :
# sudo ln -s /dev/tty.PL2303-00002006 /dev/ttyusb
Lancement de minicom
Avec l’option -s, minicom vous permet de le configurer.
+------------[configuration]------------+
| Noms de fichers et chemins |
| Protocoles de transfert |
| Configuration du port série |
| Modem et appel |
| Ecran et clavier |
| Enregistrer config. sous dfl |
| Enregistrer la configuration sous... |
| Sortir |
| Sortir de Minicom |
+---------------------------------- ----+
En lançant avec l’option -c on obtient de la couleur… Et en donnant le chemin vers le pilote, on obtient la connexion vers celui-ci.
Connexion avec une baie promise
Pour se connecter à une baie de disque Promise, il faut connecter d’un côté le câble fourni avec la baie, muni d’un côté d’une prise RJ11 et de l’autre côté d’une prise DB9. À cette prise DB9 il faut ajouter l’adapteur Série <-> USB. Si vous avez correctement configuré minicom, vous devriez obtenir ceci :

Il est possible d’envoyer une commande BREAK au démarrage de la baie (CTRL-C) pour obtenir le prompt de PBL_RAM pour la configuration minimale (adresse IP par exemple) :

ou suivre le déroulement de démarrage :

pour obtenir l’invite de login

Conclusion
Vous êtes maintenant capable de vous connecter à des périphériques via une liaison série comme avec un PC ayant ce type de connecteur.
Il est possible de ce passer de minicom, avec Zterm comme nous l’avons vu, mais également avec screen en l’invoquant avec comme paramètre le nom du périphérique série ;
# screen /dev/ttyusb
[...] Pour information, Jacques viens de sortir un petit article sur comment utiliser un port de communication série avec un Mac. [...]