Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 28-06-2020 09:00:05

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

[RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Salut,

j'essaie de connecter une télécommande devant faire office de joystick, selon cette méthode : https://notsyncing.net/?p=blog&b=2018.linux-fsia6b

J'ai connecté le câble USB comme indiqué, mais lorsque je branche, j'obtiens ceci :

# dmesg -w
[ 6371.195870] usb 4-9: new low-speed USB device number 15 using xhci_hcd
[ 6371.559925] usb 4-9: device descriptor read/64, error -71
[ 6372.003980] usb 4-9: device descriptor read/64, error -71
[ 6373.011821] usb usb4-port9: Cannot enable. Maybe the USB cable is bad?
[ 6373.011902] usb usb4-port9: attempt power cycle
[ 6374.227834] usb usb4-port9: Cannot enable. Maybe the USB cable is bad?
[ 6374.567842] usb 4-9: new low-speed USB device number 18 using xhci_hcd
[ 6374.595587] usb 4-9: Device not responding to setup address.
[ 6374.831612] usb 4-9: Device not responding to setup address.
[ 6375.043856] usb 4-9: device not accepting address 18, error -71
[ 6375.043960] usb usb4-port9: unable to enumerate USB device
 



Le fil blanc du câble, après vérification, est bien connecté à la borne 2 (D-) du connecteur USB, et l'alimentation est correcte.

Qu'est-ce qui ne va pas ? Comment puis-je mieux localiser le problème ?

Ma version de noyau :

# uname -a
Linux poste12 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux
 

Dernière modification par jibe (22-08-2020 08:31:13)

Hors ligne

#2 28-06-2020 09:23:24

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

jibe a écrit :

Le fil blanc du câble, après vérification, est bien connecté à la borne 2 (D-) du connecteur USB


Comme indiqué il faut utiliser un adaptateur USB-UART (RS232 ou TTL ?) et non un simple câble USB. Ce qu'il faut relier au récepteur de la radiocommande est le fil RX (réception) de l'UART, et non le fil D- du bus USB (qui fonctionne obligatoirement en paire avec le fil D+).


Il vaut mieux montrer que raconter.

Hors ligne

#3 28-06-2020 09:36:45

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Ok, merci.

Je m'en doutais un peu, mais comme les fils indiqués sont de la couleur d'un câble normal et qu'il n'y avait pas de précision sur TTL/RS232, j'espérais un peu qu'il ne s'agisse en fait que d'un câble normal...

Bon, je n'ai plus qu'à me procurer un adaptateur...

Si quelqu'un a déjà fait ça, j'aimerais bien savoir ce qu'il a pris : TTL ou RS232 ?

Hors ligne

#4 28-06-2020 09:45:28

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Tu peux alimenter le récepteur sans activer la radiocommande et mesurer la tension entre la borne de signal et la masse (ground - fil noir). Si elle est comprise entre 0Vet 5V, ce n'est probablement pas du RS232. Si elle est négative ou supérieure à 5V, c'est forcément du RS232 (et tu as peut-être cramé le port USB).

PS:
Si tu veux avoir une meilleure chance que quelqu'un qui a déjà fait ça lise ce sujet, il vaudrait mieux changer le titre pour quelque chose de plus explicite.

Dernière modification par raleur (28-06-2020 10:00:13)


Il vaut mieux montrer que raconter.

Hors ligne

#5 28-06-2020 11:26:16

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Merci pour tes précieux conseils smile

Je mesure 3.3V sur la pin signal => effectivement, c'est probablement du TTL.

J'ai donc commandé un adaptateur USB=> UART TTL qui devrait faire l'affaire. On verra...

J'ai complété mon titre, si quelqu'un connaît je suis toujours preneur de conseils, mais je pense qu'avec la bonne interface, ça devrait aller beaucoup mieux !

Hors ligne

#6 28-06-2020 11:41:03

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Et même probablement du LVTTL (low voltage TTL alimenté en 3,3V au lieu de 5V) en technologie CMOS. Mais ce n'est pas très important, un niveau haut LVTTL à 3,3V suffit largement à piloter une entrée TTL (seuil à 2V).

Il vaut mieux montrer que raconter.

Hors ligne

#7 28-06-2020 12:49:18

MicP
Membre
Inscription : 29-02-2016

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Bonjour

jibe a écrit :

…Je mesure 3.3V sur la pin signal …

Si tu l'as mesuré avec un multimètre, ce n'est peut-être que la moyenne d'un signal dont la mesure résultante dépendra de la tension maxi et mini et du rapport cyclique du signal et des caractéristiques de ce multimètre.
il vaudrait mieux utiliser un oscilloscope.

Dernière modification par MicP (28-06-2020 13:41:00)

Hors ligne

#8 28-06-2020 13:22:27

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Certes on ne peut pas exclure cette éventualité, mais cette mesure colle tellement bien à la tension d'une sortie CMOS LVTTL à l'état 1 (repos pour un UART) que ce serait une sacrée coïncidence.

A défaut d'oscilloscope (ça ne se trouve pas dans toutes les chaumières), on peut utiliser un multimètre s'il est capable de mesurer en AC la composante alternative pure d'une tension (et pas la valeur efficace d'une tension quelconque), voire à travers un simple condensateur en série pour couper la composante continue.

Dernière modification par raleur (21-07-2020 16:46:22)


Il vaut mieux montrer que raconter.

Hors ligne

#9 28-06-2020 13:43:52

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Effectivement, la question mérite d'être posée. Toutefois, je vois mal pourquoi j'aurais une composante alternative en l'absence de toute réception. De plus, avec une alimentation 5V, il y a quand même bien peu de chances qu'on élève les signaux au niveau RS232 (12V)... Et puis, comme dit râleur, 3.3V, ce serait une sacré coïncidence !

En tous cas, je ne mesure aucune composante alternative (moins de 2mv).

Hors ligne

#10 28-06-2020 13:56:24

MicP
Membre
Inscription : 29-02-2016

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

… cette mesure colle tellement bien à la tension d'une sortie CMOS LVTTL à l'état 1 (repos pour un UART) que ce serait une sacrée coïncidence. …

Oui, finalement, je pense aussi que c'est ça : mise en état haut ou/et entrée/sortie déconnectée <=> haute impédance
Et de toutes façons, en se basant sur le 3,3V on ne risque pas de détruire quoi que ce soit …

Enfin, si : Un airbus A380 en plein vol, mais bon… virtuel quoi !!! lol

C'est dommage que la page web citée ne donne pas cette information.

Dernière modification par MicP (28-06-2020 13:59:36)

Hors ligne

#11 28-06-2020 18:09:30

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

jibe a écrit :

Toutefois, je vois mal pourquoi j'aurais une composante alternative en l'absence de toute réception.


Ça dépend du protocole utilisé sur cette liaison série. C'est peut-être une simple retransmission des données reçues par radio, ou bien ça émet peut-être périodiquement les positions des commandes, avec des valeurs au neutre en l'absence de signal radio.

jibe a écrit :

De plus, avec une alimentation 5V, il y a quand même bien peu de chances qu'on élève les signaux au niveau RS232 (12V)


Comment crois-tu que font les circuits d'interface RS232 de type MAX232, utilisés notamments dans les adaptateurs USB-RS232 alimentés en 5V ? Avec un multiplicateur et un inverseur de tension à base de diodes et condensateurs.


Il vaut mieux montrer que raconter.

Hors ligne

#12 28-06-2020 21:50:19

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

MicP a écrit :

C'est dommage que la page web citée ne donne pas cette information.


Oui, c'est quand même une info importante !

raleur a écrit :

Ça dépend du protocole utilisé sur cette liaison série. C'est peut-être une simple retransmission des données reçues par radio, ou bien ça émet peut-être périodiquement les positions des commandes, avec des valeurs au neutre en l'absence de signal radio.


Oui, mais je ne pense pas que ce soit le cas (pas mentionné dans la notice et matériel plutôt cheap).

raleur a écrit :

jibe a écrit :

De plus, avec une alimentation 5V, il y a quand même bien peu de chances qu'on élève les signaux au niveau RS232 (12V)


Comment crois-tu que font les circuits d'interface RS232 de type MAX232, utilisés notamments dans les adaptateurs USB-RS232 alimentés en 5V ? Avec un multiplicateur et un inverseur de tension à base de diodes et condensateurs.


... Ou une petite alim à découpage, ou résonateur LC par CI LT1301 ou similaire... J'ai simplement dit "peu de chances" wink En effet, je n'en vois d'une part pas trop l'intérêt, et il s'agit de matériel cheap. On fait surtout ça quand on a absolument besoin de niveaux élevés, ce qui n'est pas le cas ici...

Hors ligne

#13 29-06-2020 07:25:35

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

jibe a écrit :

Ou une petite alim à découpage, ou résonateur LC par CI LT1301 ou similaire


Plus cher, plus encombrant, surdimensionné pour les quelques mA nécessaires à une sortie RS232.


Il vaut mieux montrer que raconter.

Hors ligne

#14 15-07-2020 08:42:38

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Salut,

J'ai reçu mon adaptateur USB=> UART TTL et je n'ai plus d'erreur dmesg. Par contre, il me reste le problème du driver.

Si j'ai tout bien compris, ce driver est inclus dans le noyau Linux, mais seulement pour la version 5.4. Or, j'ai bien sûr une version 4.19 :

# uname -a
Linux poste12 4.19.0-9-amd64 #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) x86_64 GNU/Linux



Il faut donc que je compile mon driver, chargé depuis le dépôt git. Ok, sauf que si je lis le README censé m'indiquer comment compiler, je vois :

# cat README.MD
# FS-iA6B iBus RC receiver
Kernel driver and support software to use a FlySky FS-iA6B 14-channel RC receiver as a general purpose game controller in Linux.

## Now Part of the Mainline Kernel
As of Linux kernel 5.4 and linux-console (inputattach) 1.4.9, this driver has been mainlined.

This driver can now be found in the Linux kernel source tree in `drivers/input/joystick/fsia6b.c`.

This repository will no longer be maintained and will only serve as an archive. All future updates will be made in the Linux kernel tree exclusively.

## Usage instructions
* Connect the hardware as described [here](https://notsyncing.net/?p=blog&b=2018.linux-fsia6b)
* Modprobe `serio` and `fsia6b`
* Run `inputattach --fsia6b /dev/ttyUSBx`
 



Où sont donc les instructions pour la compilation ???

En plus, je ne trouve pas de makefile dans ce que j'ai obtenu par git clone, pas plus que de module fsia6b...

Pourtant, il semble bien que je doive compiler ce driver/module :

# modprobe fsia6b
modprobe: FATAL: Module fsia6b not found in directory /lib/modules/4.19.0-9-amd64
 



J'avoue être assez sceptique devant tout ça et ne pas savoir par quel bout prendre les choses ?

Hors ligne

#15 15-07-2020 09:44:02

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Il n'y a pas un fichier fsia6b.c dans le dépôt ?
Edit : normalement tu as tout l'historique dans le dépôt git. Tu peux rechercher la dernière version avant l'inclusion dans le noyau officiel avec git log.

Dernière modification par raleur (15-07-2020 09:49:53)


Il vaut mieux montrer que raconter.

Hors ligne

#16 15-07-2020 10:46:12

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Aucun .c ni .h dans ce que j'ai récupéré par git clone !

Par contre, effectivement, en allant sur le dépôt git, je lis (contrairement à ce qui est dit dans la doc !) :

This driver can now be found in the Linux kernel source tree in drivers/input/joystick/fsia6b.c.

This repository will no longer be maintained and will only serve as an archive. All future updates will be made in the Linux kernel tree exclusively.



Et effectivement, j'ai bien un fsia6b.c à l'endroit indiqué du Linux kernel tree. Apparemment, il n'appelle que des .h du kernel, pas de fsia6b.h.

Bon, donc, ça devrait faire l'affaire. Mais comment je compile ça si je n'ai pas un makefile pour les options de compil et de link ? Ou alors, où puis-je trouver le makefile nécessaire (je n'ai jamais rien compilé en provenance du Linux kernel tree...) ?

Hors ligne

#17 15-07-2020 11:19:26

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

jibe a écrit :

Par contre, effectivement, en allant sur le dépôt git, je lis (contrairement à ce qui est dit dans la doc !)


Quelle doc ? C'est exactement ce que contient le README que tu as cite plus haut.

jibe a écrit :

Et effectivement, j'ai bien un fsia6b.c à l'endroit indiqué du Linux kernel tree.


Quel Linux kernel tree ? Sur kernel.org ?

jibe a écrit :

Mais comment je compile ça si je n'ai pas un makefile pour les options de compil et de link ?


Pour pouvoir compiler un module externe il faut installer les headers du noyau installé. J'avais une commande make pour compiler un module externe, mais je ne m'en souviens plus, il faudrait que je la retrouve.

Tu ne voudrais pas installer le noyau de buster-backports qui est au moins un 5.5, il me semble ?


Il vaut mieux montrer que raconter.

Hors ligne

#18 15-07-2020 11:54:34

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

raleur a écrit :


Quelle doc ?


La doc concernant le flysky FS-I6 citée au début et sur le git, disant de faire un git-clone et de compiler selon le readme... qui ne contient aucune instruction de compil !

raleur a écrit :


Quel Linux kernel tree ? Sur kernel.org ?


Ici, donc sur github.com/torvalds/linux/tree/... Mais bon, je pense qu'on doit retrouver la même chose sur kernel.org. Ça vaut le coup d'y aller et faire un diff ?

raleur a écrit :


Pour pouvoir compiler un module externe il faut installer les headers du noyau installé. J'avais une commande make pour compiler un module externe, mais je ne m'en souviens plus, il faudrait que je la retrouve.


Les headers, je les ai. Pour la commande, si tu la retrouves, je suis bien sûr preneur ! Mais je vais essayer de fouiller un peu le web...

raleur a écrit :


Tu ne voudrais pas installer le noyau de buster-backports qui est au moins un 5.5, il me semble ?


Je préférerais garder le noyau de la version stable de Debian... Normalement, si je recompile le module fsia6b, ça devrait fonctionner avec le noyau actuel, non ?

Hors ligne

#19 15-07-2020 12:16:05

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

jibe a écrit :

Normalement, si je recompile le module fsia6b, ça devrait fonctionner avec le noyau actuel, non ?


Si les sources du module sont compatibles avec le noyau actuel, oui.


Il vaut mieux montrer que raconter.

Hors ligne

#20 15-07-2020 21:15:13

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

raleur a écrit :

Pour la commande, si tu la retrouves, je suis bien sûr preneur


make -C /usr/src/linux-headers-$(uname -r) M=$(pwd)


à exécuter dans le répertoire contenant les sources du module.

Dernière modification par raleur (15-07-2020 21:15:58)


Il vaut mieux montrer que raconter.

Hors ligne

#21 18-07-2020 07:56:20

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Salut,

Désolé, une semaine très chargée m'a empêché de revenir sur ce sujet... Je vais essayer de trouver un moment ce WE pour m'y remettre, et je tiens au courant.

Merci pour la commande : de mon côté, je n'ai su trouver des infos que sur la compilation totale du système, ou la compil via module assistant, qui ne semble pas adaptée...

Donc, j'essaie ASAP et reviens dire ce qu'il en est.

Hors ligne

#22 18-07-2020 08:47:15

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Détail qui peut être important : les modules externes ne sont pas compatibles avec le secure boot UEFI puisqu'ils ne sont pas signés par Debian. A moins peut-être de les signer avec sa propre clé et d'ajouter celle-ci dans l'infrastructure de vérification du système (firmware UEFI, mokutil, que sais-je...)

Il vaut mieux montrer que raconter.

Hors ligne

#23 19-07-2020 14:37:00

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Salut,

Bon, ce truc me fatigue... Tout ce que j'ai pour ce module, c'est un source C, sans makefile, donc qui n'est probablement prévu pour ne se compiler qu'avec tout le reste du kernel. En plus, effectivement je risque de me retrouver encore avec des problèmes de signature Debian...

Et quand j'aurai fait ça, je n'aurai même pas un simulateur libre sad

Un peu découragé, là... Bon, un grand merci quand même à ceux qui ont tenté de m'aider à avancer.

Hors ligne

#24 19-07-2020 22:30:10

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

S'il manque seulement le Makefile, il devrait suffire d'en créer un du genre

obj-m += fsia6b.o


Il vaut mieux montrer que raconter.

Hors ligne

#25 21-07-2020 07:28:26

jibe
Membre
Distrib. : DF-Linux 10
Noyau : Linux 4.19.0-10-amd64
(G)UI : mate
Inscription : 19-06-2018

Re : [RESOLU]USB non reconnu (récepteur de télécommande Flysky IA6B)

Salut,

Merci : compil OK smile

Petit problème au premier essai (undefined SERIO_FSIA6B), mais en fouillant un peu j'ai trouvé comment le définir et j'ai juste ajouté dans le fsia6b.c :

#define SERIO_FSIA6B  0x42
 



Bon, maintenant, je fais quoi avec tout ça ? Je suppose qu'il faut le mettre dans /lib/modules/($uname -r)/kernel/drivers/, puis faire le modprobe ? Mais bon, avant de faire des bêtises...

Hors ligne

Pied de page des forums