Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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