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 cherchant sur le Web.

Le pilote

Il existe un pilote générique et OpenSource adapté aux Mac1.

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 :

1
$ 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 :

1
$ 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 :

1
$ 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.

1
$ 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 Zterm2.

Installation de minicom via MacPort

J’ai choisi minicom et je vais l’installer en passant par le gestionnaire de paquet MacPort3. 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.

1
2
$ 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 :

1
$ 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 :

1
$ sudo ln -s /dev/tty.PL2303-00002006 /dev/ttyusb

Lancement de minicom

Avec l’option -s, minicom vous permet de le configurer.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 
+------------[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 :
Connexion à une baie VTrack

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) :

Mise à jour

Depuis quelque temps maintenant, nous somme passé à Mac OS X 10.7 (Lion). Bien que je n’aime pas beaucoup ce version de OSX je sius obligé de l’utiliser, c’est celle qui est installé par défaut sur mon MacBookAir 11″ (une machine fantastique).

Il a donc fallu que j’utilise une extension de kernel spécifique à cette version. Heureusement martijn à fait le travail de portage sous Lion. Vous pouvez récupérer les sources ou bien une version compilée, prête à être installée.

Une fois l’extension compilée le reste de l’installation reste la même.

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 ;

1
$ screen /dev/ttyusb

powered by FreeBSD