#1 Le 27/01/2011, à 18:18
- vavincavent
pilote cdc-acm pour cable USB <-> RS232 non reconnu
bonjour,
J'ai un câble USB <-> RS232 que je n'arrive pas à utiliser.
lsusb me donne :
Bus 002 Device 002: ID 0f14:0005
lsusb -vv me donne :
Bus 002 Device 002: ID 0f14:0005
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0f14
idProduct 0x0005
bcdDevice 1.00
iManufacturer 1 XIRING
iProduct 2 Ximax CDC
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 48
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 30mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 0
can't get device qualifier: Value too large for defined data type
can't get debug descriptor: Value too large for defined data type
Device Status: 0x0000
(Bus Powered)
et dmesg :
[10925.608112] usb 2-1: new full speed USB device using uhci_hcd and address 2
[10925.769377] usb 2-1: configuration #1 chosen from 1 choice
[10925.772246] cdc_acm 2-1:1.0: Zero length descriptor references
[10925.772265] cdc_acm: probe of 2-1:1.0 failed with error -22
[10985.037245] usb 2-1: usbfs: USBDEVFS_CONTROL failed cmd lsusb rqt 128 rq 6 len 10 ret -75
[10985.038139] usb 2-1: usbfs: USBDEVFS_CONTROL failed cmd lsusb rqt 128 rq 6 len 4 ret -75
Que puis-je faire pour l'activer avec ttyUSB0?
Dernière modification par vavincavent (Le 30/01/2011, à 09:56)
vavincavent
SME 7.4
Ubuntu 13.10 sur SAMSUNG NP350V5C-S06FR
http://vavincavent.dyndns.org
Hors ligne
#2 Le 28/01/2011, à 15:26
- vavincavent
Re : pilote cdc-acm pour cable USB <-> RS232 non reconnu
Bon, d'après ce que j'ai pu lire sur internet, il faut que je modifie cdc-acm.c et que je recompile, ... je n'ai jamais fait ça!!!
vavincavent
SME 7.4
Ubuntu 13.10 sur SAMSUNG NP350V5C-S06FR
http://vavincavent.dyndns.org
Hors ligne
#3 Le 29/01/2011, à 09:52
- gl38
Re : pilote cdc-acm pour cable USB <-> RS232 non reconnu
Il faut récupérer les sources du noyau que tu utilises, il y a un paquet linux-source, qui est assez gros.
tu peux lire la doc.
Il faut décompacter les sources :
cd /usr/linux
tar jxvf linux-source-2.6.VERSION.tar.bz2
où VERSION est à remplacer par ce que tu as obtenu.
Tu modifies ton module, puis
sudo make menuconfig
sudo make
C'est brutal : ça compile tout et c'est un peu longuet, pour un seul module, c'est un peu stupide
Sinon tu peux lire cette page, mais ce n'est pas sûr que ça aille plus vite, s'il faut ajouter plein de choses pour satisfaire les dépendances.
Moi, j'ai un câble USB-RS232 de marque LYNDY (No 42811) qui marche tout seul.
Cordialement,
Guy
Hors ligne
#4 Le 29/01/2011, à 10:50
- vavincavent
Re : pilote cdc-acm pour cable USB <-> RS232 non reconnu
Bonjour,
Pour le câble, c'est un câble "spécifique" pour un lecteur de carte vitale. Je ne peux pas prendre autre chose...
J'ai téléchargé les sources, fait tout le truc make, mais j'ai obtenu un fichier cdc-acm.o au lieu de cdc-acm.ko. Quelle différence?
De plus, je préfèrerai passer par une recompilation unitaire de module, je vais donc regarder ton deuxième lien.
vavincavent
SME 7.4
Ubuntu 13.10 sur SAMSUNG NP350V5C-S06FR
http://vavincavent.dyndns.org
Hors ligne
#5 Le 29/01/2011, à 12:55
- gl38
Re : pilote cdc-acm pour cable USB <-> RS232 non reconnu
Cette page devrait t'intéresser.
Cordialement,
Guy
Hors ligne
#6 Le 30/01/2011, à 09:55
- vavincavent
Re : pilote cdc-acm pour cable USB <-> RS232 non reconnu
Voici la piste à suivre je pense :
Le cable n'est pas reconnu par le pilote cdc-acm, il faut donc modifier ce pilote pour qu'il l'accepte.
Il faut ajouter les lignes suivantes, vers la ligne 1540 du fichier cdc-acm.c :
{ USB_DEVICE(0x0f14, 0x0005), /*Xiring VITAL'ACT*/
.driver_info = NO_UNION_NORMAL,
},
Puis compiler ce module en cdc-acm.ko et remplacer celui existant dans /lib/module/2.6.32.....-generic/drivers/usb/class/
Et c'est là que je bloque, je n'arrive pas à compiler le module, pouvez-vous m'aider?
vincent@vincent-laptop:~/linux-source-2.6.32/drivers/usb/class$ sudo make
[sudo] password for vincent:
make -C /lib/modules/2.6.32-28-generic/build M= modules
make[1]: entrant dans le répertoire « /usr/src/linux-headers-2.6.32-28-generic »
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
make[2]: *** Pas de règle pour fabriquer la cible « kernel/bounds.c », nécessaire pour « kernel/bounds.s ». Arrêt.
make[1]: *** [prepare0] Erreur 2
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.32-28-generic »
make: *** [all] Erreur 2
Dernière modification par vavincavent (Le 30/01/2011, à 09:55)
vavincavent
SME 7.4
Ubuntu 13.10 sur SAMSUNG NP350V5C-S06FR
http://vavincavent.dyndns.org
Hors ligne
#7 Le 30/01/2011, à 10:29
- gl38
Re : pilote cdc-acm pour cable USB <-> RS232 non reconnu
Quand tu as fait le make sur toutes les sources, tu as obtenu un module cdc-acm.o, as-tu essayé d'enlever le module initial avec
sudo rmmod cdc-acm
de charger le nouveau avec
sudo modprobe ./cdc-acm.o
ou des trucs de ce genre ?
Compiler un seul module, ça l'air assez galère quand on le sort de son arborescence bien que la page donne des exemples qui marchent tout seuls.
Dans ce que tu montres, il n'y aurait pas une erreur ? je vois M= , il ne faudrait pas donner un nom de directory, du genre $(PWD)
Cordialement,
Guy
Hors ligne
#8 Le 30/01/2011, à 11:38
- vavincavent
Re : pilote cdc-acm pour cable USB <-> RS232 non reconnu
Voici mon Makefile :
obj-m += cdc-acm.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
vavincavent
SME 7.4
Ubuntu 13.10 sur SAMSUNG NP350V5C-S06FR
http://vavincavent.dyndns.org
Hors ligne