[Résolu] CH340G tout pourri sous Debian Stretch !

Bonjour à tous,

le convertisseur USB vers série TTL CH340G de mon arduino nano "low cost" me pose problème sous ma Debian stable (stretch).

Ce qui marche :

dans le terminal 1 je lance :

head -n 1 /dev/ttyUSB0

dans le terminal 2 je lance :

echo "L 1" > /dev/ttyUSB0

dans le terminal 1 s'affiche "0" et la commande head se termine

C'est le comportement normal car à la réception de la chaîne "L 1" le programme embarqué sur la nano allume la led et renvoie via le port USB la chaine "0" pour dire que tout s'est bien passé.

Super :wink:

Ce qui ne marche pas :

Les 2 commandes précédentes sont placées dans un script shell :

#!/bin/bash

( sleep 1; echo "L 1" > /dev/ttyUSB0 ) &

head -n 1 /dev/ttyUSB0

Et là head ne reçoit plus rien !

Ce que je sais :

  • Ce script fonctionne bien avec une nano "officielle" (convertisseur USB vers série FTDI)
  • Ce script fonctionne bien avec une nano "low cost" (convertisseur USB vers série CH340G) sous Debian plus ancienne avec module ch34x fourni par le fabriquant (le problème c'est que ce module ne fonctionne pas sur noyau de la Debian stable 4.9.0).

Et donc je suis coincé !

D'où les 2 questions (mais une seule bonne réponse me suffirai ;-)).

  • 1 : pourquoi ce script ne fonctionne pas alors que ses 2 commandes fonctionnent individuellement dans 2 terminaux différents (sachant qu'il fonctionne avec le convertisseur FTDI) ?

  • 2 : Où récupérer les sources d'un module ch341 (ou équivalent) fonctionnel pour un noyau récent (4.9.0) ?

Voila, en espérant que vous pourrez me débloquer !

J'ai la réponse à la question 2 (où trouver les sources d'un module ch341 fonctionnelle pour ma debian stretch) :

réponse : dans les sources de la version du noyau 4.17-rc4 (dernière version distribuée à ce jour sur kernel.org)

Des corrections ont été faites sur le module ch341 entre la version du noyau (4.9) fournie avec la debian stable et la version actuelle.

Il faut donc recompiler le module ch341 si l'on est sous debian stretch et que l'on veux faire à la fois une écriture et une lecture dans un même processus.

La bonne nouvelle c'est que cela marchera de base dans la future version de Debian :wink:

Au sujet de la question 1 je n'ai pas le courage de chercher quel changement précis dans les sources fait que cela fonctionne maintenant. Tant pis :wink:

Bons bricolages !