[Lâchement abandonné] USB Serial

Comment utiliser ces ports USB du Raspberry Pi, gérer les problèmes qu'ils génèrent

Modérateur : Francois

Avatar du membre
Laurent
Messages : 10
Enregistré le : sam. 14 févr. 2015 16:05
Localisation : Seine et Marne

[Lâchement abandonné] USB Serial

Message par Laurent » sam. 14 févr. 2015 17:07

Bonjour à tous, après de nombreuses recherche je n'ai pas réussi à solutionner mon problème, je viens donc vers vous plein d'espoir ;)
ça va être long... désolé :P
Mon problème est d'utiliser un adaptateur USB/Série sur mon Raspberry pi b+
Présentation du matériel :
Pour le RPiB+ :

Code : Tout sélectionner

$ uname -a
Linux domo-1 3.18.7+ #755 PREEMPT Thu Feb 12 17:14:31 GMT 2015 armv6l GNU/Linux

$ /opt/vc/bin/vcgencmd version
Feb 12 2015 17:23:49
Copyright (c) 2012 Broadcom
version 571f5d2143489e4300d7e2ed5b1a73f33f3b13e5 (clean) (release)

$ cat /etc/*-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
L'adaptateur USB/Série, c'est le montage USB en bas de la page http://www.domotibox.com/solarbox/?section=Boutique :
et oui je veux relever ma téléinfo et comme j'ai un module razberry, le port GPIO est déjà occupé... DOMMAGE !

Code : Tout sélectionner

$ dmesg
usb 1-1.3: new full-speed USB device number 4 using dwc_otg
usb 1-1.3: New USB device found, idVendor=0403, idProduct=6001
usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1.3: Product: FT232R USB UART
usb 1-1.3: Manufacturer: FTDI
usb 1-1.3: SerialNumber: AD02DY77
usbcore: registered new interface driver usbserial
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
usb 1-1.3: Detected FT232RL
usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0
Je regarde la config de mon port :

Code : Tout sélectionner

$ stty -F /dev/ttyUSB0 -a
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
Je configure mon port (la ligne vient d'une config qui marche sur un disque dur réseau sur lequel j'ai soudé à l'arrache des fils sur un port série 3.3V directement sur la carte mère et ça marche !)

Code : Tout sélectionner

stty -F /dev/ttyUSB0 ispeed 1200 ospeed 1200 cs7 -cstopb clocal cread parenb -parodd inpck istrip -crtscts -icanon -echo -echoe -isig -ixon -ixoff -ixany -icrnl -opost
A ce stade, aucune insulte ! MAIS :

Code : Tout sélectionner

$ cat /dev/ttyUSB0
RIEN !!!

Fouillons un peu :

Code : Tout sélectionner

$ sudo rmmod ftdi_sio
$ sudo rmmod usbserial
$ sudo modprobe usbserial vendor=0x0403 product=0x6001
$ sudo modprobe ftdi_sio

$ dmesg
usbcore: registered new interface driver usbserial
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbserial_generic 1-1.3:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
usbserial_generic 1-1.3:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
usbserial_generic 1-1.3:1.0: generic converter detected
usb 1-1.3: generic converter now attached to ttyUSB0
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
Donc, déjà je vais envoyer un mail pour demander l'ajout de mon matériel, mais ça m'étonnerais que demain matin ça soit réglé... je sais j'en demande beaucoup :twisted:

Continuons :

Code : Tout sélectionner

$ stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
-brkint -imaxbel

$ stty -F /dev/ttyUSB0 ispeed 1200 ospeed 1200 cs7 -cstopb clocal cread parenb -parodd inpck istrip -crtscts -icanon -echo -echoe -isig -ixon -ixoff -ixany -icrnl -opost
stty: /dev/ttyUSB0 : impossible d'effectuer toutes les opérations demandées
Ah bon ???? Pour info si je demande que la vitesse (stty -F /dev/ttyUSB0 1200, c'est la même chose !)
Je vérifie quand même la config :

Code : Tout sélectionner

$ stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon -echo -echoe
(en ajoutant -a on constate cs8 et pas cs7 comme demandé)
Mais ça cause sur la ligne :

Code : Tout sélectionner

$ cat /dev/ttyUSB0
```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````` et ça continu
Pour aller un peu plus loin, essayons de charger correctement usbserial au boot :

Code : Tout sélectionner

$sudo nano /etc/modprobe.d/raspi-blacklist.conf
blacklist ftdi_sio
blacklist usbserial

$ sudo nano /etc/modules
usbserial vendor=0x0403 product=0x6001
ftdi_sio

$ sudo reboot
Le dmesg donne la même chose, voyons la config du port :

Code : Tout sélectionner

$ stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
-brkint -imaxbel

$ stty -F /dev/ttyUSB0 ispeed 1200 ospeed 1200 cs7 -cstopb clocal cread parenb -parodd inpck istrip -crtscts -icanon -echo -echoe -isig -ixon -ixoff -ixany -icrnl -opost
stty: /dev/ttyUSB0 : impossible d'effectuer toutes les opérations demandées

$ stty -F /dev/ttyUSB0
speed 9600 baud; line = 0;
min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost
-isig -icanon -echo -echoe
(en ajoutant -a on constate cs8 et pas cs7 comme demandé)
Mais on progresse car :

Code : Tout sélectionner

$ cat /dev/ttyUSB0
bbb@bp``pp```ppp```````````````@pp`p```pp```p````@`ppp`p``p`p`p````ppppp``pp````pp`````p```p``p```pp`````p`pp```````p`p```ppp``@p``x`p`````p`@p``p`p``pp``p`p`````pp`p`p``pp`p`pp```````p```pp``pp````p```p`p`@````p`p``pp`````p```p```````pp```pp````````ppp````````p```@`````p`````p`p`pp`p``````p````````p``p`p``p````p```p`````````p``p``pp``````p``p``````````````````@`p```p`````pp``p``p`````pp```p````p`p````````p`ppp``p````````````p`p````p```````pppp``p`````````````````````p``````p``````p````p``p``p``pp```````````pp`p``p```pp```pp`p```p``pp````p``p````p`p```pp``p``` et ça continu
Donc il y a bien des infos qui arrive et le problème est bien la configuration du port série (ttyUSB0), sur mon montage précédent (disque dur réseau), si je mets une config 9600 cs8, j'obtiens le même résultat.

Mon secret espoir serait que l'un de vous ai déjà réussi à faire fonctionner ce matériel ou trouvé une solution pour le driver ftdi, a votre bon cœur !
Ce que je n'ai pas essayé, c'est le downgrade vers un noyau plus ancien, ou l'upgrade vers raspbian jessie

Le résultat que je dois obtenir est le suivant (c'est la téléinfo du compteur EDF, j'ai anonymisé mon n° de compteur, la balise START est ajouté par mon script, plus tard il y aura T_Ext et T_Garage aussi... quand je serais grand !)

Code : Tout sélectionner

START 14/02/2015 00:10
ADCO XXXXXXXXXXXX 0
OPTARIF BBR( S
ISOUSC 45 ?
BBRHCJB 027051559 ?
BBRHPJB 025390835 M
BBRHCJW 004523492 O
BBRHPJW 002822952 ]
BBRHCJR 002448534 K
BBRHPJR 000902186 T
PTEC HCJW X
DEMAIN BLEU V
IINST 007 ^
IMAX 037 I
PAPP 01590 0
HHPHC Y D
MOTDETAT 000000 B
Modifié en dernier par Laurent le mer. 8 avr. 2015 10:07, modifié 3 fois.
Je veux être libre, libre de m'exprimer, libre de coder, libre de modifier...

Avatar du membre
Laurent
Messages : 10
Enregistré le : sam. 14 févr. 2015 16:05
Localisation : Seine et Marne

Re: USB Serial

Message par Laurent » dim. 15 févr. 2015 11:24

Je viens de découvrir que je suis mauvaise langue, donc je me flagelle...

linux-usb@vger.kernel.org m'a répondu (mail en TEXT/PLAIN obligatoire sinon leur anti-spam rejette).

Voici la réponse :
This device is already supported by the ftdi_sio driver, there is no need to provide module options to the generic usb serial driver for this id.

Have you tried just using the ftdi_sio driver directly? Why are you adding this device id "by hand"?

thanks,
Donc je continue la discussion avec eux afin d'essayer de trouver LA solution.
Et bien entendu je reviendrai ici pour poster le résultat...
Je veux être libre, libre de m'exprimer, libre de coder, libre de modifier...

domi
Administrateur
Messages : 3230
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: USB Serial

Message par domi » dim. 15 févr. 2015 13:37

Je n'ai pas la solution, mais merci de nous faire un retour lorsque tu l'auras.

Cdt,
Domi
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

Avatar du membre
Laurent
Messages : 10
Enregistré le : sam. 14 févr. 2015 16:05
Localisation : Seine et Marne

Re: USB Serial

Message par Laurent » lun. 16 févr. 2015 15:00

Bon, pas de progrès pour le moment.

J'ai identifié les options qui sont refusées dans ma ligne complète (en utilisant le driver chargé à la main via modprobe ou /etc/modprobe.d/... en précsiant vendor et product) :

Code : Tout sélectionner

stty -F /dev/ttyUSB0 1200		stty: /dev/ttyUSB0 : impossible d'effectuer toutes les opérations demandées
stty -F /dev/ttyUSB0 cs7		stty: /dev/ttyUSB0: Argument invalide
stty -F /dev/ttyUSB0 -cstopb	OK
stty -F /dev/ttyUSB0 clocal		OK
stty -F /dev/ttyUSB0 cread		OK
stty -F /dev/ttyUSB0 parenb		stty: /dev/ttyUSB0: Argument invalide >>>>>>>>>>>>>>>>> mais -parenb passe bien 
stty -F /dev/ttyUSB0 -parodd	OK
stty -F /dev/ttyUSB0 inpck		OK
stty -F /dev/ttyUSB0 istrip		OK
stty -F /dev/ttyUSB0 -crtscts	OK
stty -F /dev/ttyUSB0 -icanon	OK
stty -F /dev/ttyUSB0 -echo		OK
stty -F /dev/ttyUSB0 -echoe		OK
stty -F /dev/ttyUSB0 -isig		OK
stty -F /dev/ttyUSB0 -ixon		OK
stty -F /dev/ttyUSB0 -ixoff		OK
stty -F /dev/ttyUSB0 -ixany		OK
stty -F /dev/ttyUSB0 -icrnl		OK
stty -F /dev/ttyUSB0 -opost		OK
Bref 1200 cs7 et parenb sont refusés... juste le principal de la config, pas de bol !

Je vais maintenant essayer en gardant le driver "d'origine", sans blacklist, modprobe.d ni rmmod et modprobe puisque linux-usb@vger.kernel.org me dit que ça devrait marcher...

A+ pour la suite et si l'un d'entre vous connait la solution, j'accepterai même un "GROS NAZE, suffit de mettre l’interrupteur sur ON !!!" ;)
Je veux être libre, libre de m'exprimer, libre de coder, libre de modifier...

Avatar du membre
Laurent
Messages : 10
Enregistré le : sam. 14 févr. 2015 16:05
Localisation : Seine et Marne

Re: USB Serial

Message par Laurent » lun. 16 févr. 2015 19:49

Une remarque qui vaut soit rien du tout soit son pesant de cacahuètes, dans le résultat de mon dmesg je ne vois pas de ligne du genre de celles-ci :

Code : Tout sélectionner

usb 1-1.3: Endpoint 1 MaxPacketSize 64
usb 1-1.3: Endpoint 2 MaxPacketSize 64
usb 1-1.3: Setting MaxPacketSize 64
L'impression que j'ai est franchement que si j'utilise le driver "normalement", sans le "$ sudo modprobe usbserial vendor=0x0403 product=0x6001", je ne peux pas lire de données du tout comme si le port n'existait pas... (une puce contrefaite, bloquée par le driver ??? )

En utilisant le modprobe cité, j'ai des données, mais pas le droit de modifier les paramètres...

je sèche lamentablement, si ces quelques remarques font jaillir la lumière chez quelques uns ...
Je veux être libre, libre de m'exprimer, libre de coder, libre de modifier...

Avatar du membre
Laurent
Messages : 10
Enregistré le : sam. 14 févr. 2015 16:05
Localisation : Seine et Marne

Re: USB Serial

Message par Laurent » mer. 18 févr. 2015 11:47

L'impression d'avancer à reculons... OU comment devenir fou :x

Suite à divers échanges avec kernel.org, je n'utilise plus la ruse du rmmod et modprobe, j'utilise le driver présent directement. Le matériel étant bien reconnu, ça DOIT marcher !

kernel.org me soutenant que ce doit être un problème de configuration de ma part, contrôle de flux actif, etc, etc, je fouille :
Avec minicom (car d'après kernel.org stty et cat c'est mal...), je règle ma liaison 7E1 et 1200 bauds, pas de contrôle de flux, etc, etc.
RIEN !
Allez savoir pourquoi, je décide d'augmenter la vitesse et Ô surprise à 115200 bauds je reçois des choses !!! Et toutes les vitesses au-dessus aussi !!! Même à 4 000 000 bauds ! OUI 4 millions de bauds !
Bon c'est inutilisable bien entendu, mais je constate bien que en dessous de 115200 bauds, rien n'arrive...
et bien sûr stty et cat donne le même résultat.

Bref, c'est pas gagné, j'ai contacté le vendeur (fabricant ???) du module dès fois qu'il ait eu des retours du même genre, voire qu'il avoue honteusement avoir foiré une série de carte...

Et oui j'en suis là !
Je me souviens de Windows XP ou il fallait désactiver le FIFO buffer... mais il n'y a rien de tel sur la framboise... ou je me trompe ?
Je veux être libre, libre de m'exprimer, libre de coder, libre de modifier...

Avatar du membre
Laurent
Messages : 10
Enregistré le : sam. 14 févr. 2015 16:05
Localisation : Seine et Marne

Re: USB Serial

Message par Laurent » mer. 18 févr. 2015 19:17

AH AH
ARGHHHHHHH
et BOUHHHHHHHHHHHHH

Je viens de tester et constater que ce fichu module téléinfo USB doit être l'origine du problème. Que ce soit depuis ma framboise adorée ou depuis un Windaub exécré (de l'eau bénite vite), même combat !
Je ne reçois des données qu'a partir d'une vitesse de 115200 bauds, en dessous point de vie !!!
Soit c'est le matériel, soit c'est les drivers Linux et Windows qui sont foireux.... et je conclu comme vous : "c'est le matos". Je mets donc la pression au fabricant (ou peut-être juste revendeur va savoir !) et je vous tiens au courant !

Avis au modos, je ne mets pas le sujet en résolu puisque pas de solution, mais comme le soucis ne semble pas se situer côté framboise, je comprendrai une prise de position consistant à considérer le problème résolu !

A+ pour la suite des aventures des cochons dans l'espace....
Je veux être libre, libre de m'exprimer, libre de coder, libre de modifier...

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: USB Serial

Message par vague nerd » jeu. 19 févr. 2015 08:08

Bonjour.
Avis au modos, je ne mets pas le sujet en résolu puisque pas de solution, mais comme le soucis ne semble pas se situer côté framboise, je comprendrai une prise de position consistant à considérer le problème résolu !
Et bien disons que le problème semble compris, mais n'est pas résolu :D !
Merci du partage ! Vivement la suite dans "cochons dans l'espace chronicles" (mais si, pitch black, riddick... bon dsl).

Cordialement.
Cordialement,

Vague Nerd

Avatar du membre
Laurent
Messages : 10
Enregistré le : sam. 14 févr. 2015 16:05
Localisation : Seine et Marne

Re: USB Serial

Message par Laurent » jeu. 19 févr. 2015 19:48

Et hop, un mail au revendeur (voire fabricant ???), j'explique le problème de ne pas pouvoir lire de données en dessous de 115200 bauds alors que la téléinfo EDF (c'est le but du montage quand même) est à 1200 bauds, ce dernier me répond directement et sans délais de lui retourner le montage !
vague nerd a écrit : (mais si, pitch black, riddick... bon dsl).
Je pensais plutôt à Kermit, Peggy, ... https://www.youtube.com/watch?v=feNZ3A6hWxQ :D tapez pas je suis déjà sorti !!!

Je marque en RESOLU, mais je reviendrai d'ici quelques jours si je reçois un montage qui fonctionne ! (j'espère avec une explication...) I'LL BE BACK
Je veux être libre, libre de m'exprimer, libre de coder, libre de modifier...

Avatar du membre
vague nerd
Modérateur
Messages : 1473
Enregistré le : mar. 14 oct. 2014 11:42
Localisation : France !

Re: [RESOLU] USB Serial

Message par vague nerd » jeu. 19 févr. 2015 21:19

:D
I'LL BE BACK
Merci du partage.
Cdt.
Cordialement,

Vague Nerd

Répondre

Retourner vers « Les ports USB »