Faire fonctionner un adaptateur USB vers série Keyspan sous Linux

Si comme moi vous avez déjà essayé de faire fonctionner un adaptateur USB vers série Keyspan sous Linux (Raspberry Pi, etc.), vous avez peut-être eu une surprise : ça ne fonctionne pas. Heureusement, il y a une solution simple.

Pour connecter un périphérique qui utilise une prise série « Apple » (Mini DIN 8), soit vous pouvez utiliser un adptateur USB vers série en DE-9 et un câble DE-9 vers Mini DIN 8… soit un adaptateur Keyspan (il en existe différents modèles). J’en ai récupéré un récemment, mais quand j’ai voulu tester avec un Raspberry Pi, ça ne fonctionnait pas.

USB vers série en Mini DIN

USB vers série en Mini DIN

La raison n’est pas technique : la puce utilisée dans l’adaptateur est supportée (et est standard). Le problème vient du fait (si j’ai bien compris) que le firmware utilisé contient du code sous copyright, ce qui empêche son intégration dans une distribution Linux classique. La solution trouvée sur beaucoup de sites nécessite de recompiler le noyau, ce qui est tout sauf pratique : ça peut prendre énormément de temps et ce n’est pas toujours possible. Heureusement, il y a une solution plus simple.

En quelques commandes, il est en effet possible de récupérer les fichiers et de les intégrer.

git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
sudo mkdir /lib/firmware/keyspan
sudo cp linux-firmware/keyspan/* /lib/firmware/keyspan/

Une fois que c’est fait, l’adaptateur devrait fonctionner sous Linux (avec toutes les variantes).