26May 2007
Adaptateur USB - Série
00:05 - By Fabien Poulard
Si vous aimez bidouillez un tant soit peu d’électronique pilotée par informatique, vous êtes certainement frustrés de ne plus voir de ports séries sur les nouveau PCs et notamment les PCs portables.
La solution existe cependant : les convertisseurs USB - Série
Etant donné que je voulais pouvoir faire des choses amusantes avec les routeurs de type Linksys WRT avec Nantes-Wireless (de ce style notamment), il me fallait un moyen de me procurer un port série. J’avais certes des ports séries sur mes machines de bureau, mais j’effectue la plupart de mon travail de développement avec mon portable.
Achat d’un convertisseur USB - Série
Si les ports séries ont disparus des listes des interfaces en standard sur les PCs portables, les ports USB eux ont litérallement trouvés leur place. Il est en effet impossible de ne pas passer à côté d’une paire de ports USB lors de l’achat d’une nouvelle machine.
L’USB, comme son nom l’indique (Universal Serial Bus : Ports Série Universel) est également un port série. Il sont certes beaucoup plus évolués que les ports séries d’origine, mais le principe reste le même. Il est donc ainsi possible de transformer un port USB en un port série classique.
J’ai porté mon dévolu sur le convertisseur série 1 port en vente sur matériel.net. Il est basé sur le chipset Prolific Technology Inc. très bien reconnu par Linux sous le nom PL2303.
Compilation du module pour Linux
Ce genre de périphérique est assez rarement supporté par défaut dans les distributions, il va donc être nécessaire de compiler le module à partir des sources du noyau. Je considère que vous êtes capable de récupérer les sources du noyau pour votre distribution et de les placer dans le répertoire : /usr/src/linux.
Placez-vous dans ce répertoire et ajoutez les lignes :
CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_PL2303=m
au fichier .config afin d’activer le support du convertisseur.
Lancez alors la compilation des modules, suivi de leur installation :
shell# make modules CHK include/linux/version.h HOSTLD scripts/kconfig/conf SPLIT include/linux/autoconf.h -> include/config/* Building modules, stage 2. MODPOST CC [M] drivers/usb/serial/usbserial.o CC [M] drivers/usb/serial/pl2303.o LD [M] drivers/usb/serial/usbserial.ko shell# make modules_install INSTALL drivers/usb/serial/pl2303.ko INSTALL drivers/usb/serial/safe_serial.ko INSTALL drivers/usb/serial/usbserial.ko
Chargement du module
Maintenant que le module est compilé et installé, vous pouvez le charger à l’aide de la commande :
shell# modprobe pl2303
Vérifiez qu’il est bien reconnu comme chargé :
shell# lsmod Module Size Used by pl2303 16068 0 usbserial 25064 1 pl2303
Branchez maintenant votre convertisseur, puis faites :
shell# dmesg hub 3-0:1.0: debounce: port 1: total 100ms stable 100ms status 0x101 usb 3-1: new full speed USB device using uhci_hcd and address 3 usb 3-1: default language 0x0409 usb 3-1: new device strings: Mfr=1, Product=2, SerialNumber=0 usb 3-1: Product: USB-Serial Controller usb 3-1: Manufacturer: Prolific Technology Inc. usb 3-1: uevent usb 3-1: device is bus-powered usb 3-1: configuration #1 chosen from 1 choice usb 3-1: adding 3-1:1.0 (config #1, interface 0) usb 3-1:1.0: uevent usbserial_generic 3-1:1.0: usb_probe_interface usbserial_generic 3-1:1.0: usb_probe_interface - got id pl2303 3-1:1.0: usb_probe_interface pl2303 3-1:1.0: usb_probe_interface - got id pl2303 3-1:1.0: pl2303 converter detected usb 3-1: pl2303 converter now attached to ttyUSB0 drivers/usb/core/inode.c: creating file '003' hub 3-0:1.0: state 7 ports 2 chg 0000 evt 0002
Si tout s’est bien passé, le périphérique est reconnu par les drivers et il est accessible par le biais d’un fichier {dev} ; ici : {/dev/ttyUSB0}.
Connexion à /dev/ttyUSB0
L’avantage d’un port série c’est qu’il est maintenant possible de se connecter à un terminal (par exemple à celui du WRT ;) ). Pour ce faire, il faut utiliser la commande {stty} (pour Serial TTY) :
shell# stty -F /dev/ttyUSB0
Il se peut que vous n’ayez pas les droits d’accéder au fichier spécial /dev/ttyUSB0. Placez alors les permissions sur ce fichier comme ça vous arrange. Il se peut également que vous pouissiez vous ajouter au groupe tty présent sur plusieurs distributions.
About the ICS format