Bonjour à tous.

J'ai écris un pti firmware sur un µC dans l'optique de faire du transfert de données Bulk IN/OUT vers un PC (sous linux pour l'instant).

Voici ce que donne un lsusb -v sur la machine connectée au µC :
Code lsusb -v : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Bus 001 Device 007: ID 0123:4567  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        16
  idVendor           0x0123 
  idProduct          0x4567 
  bcdDevice            1.00
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        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     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0

Cela me semble correct, n'est-ce pas ?

Mais, mais ! le driver que j'ai écris ne se charge pas, aucun node ne se crée non plus dans /dev.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
$dmesg|tail
[ 2561.216204] usb 1-2: new full-speed USB device number 7 using ohci_hcd
Pourtant mon module (simplement dérivé d'usb-skeleton avec les VID et PID qui vont bien -- 0x0123 0x4567) est bien en mémoire (il printk à l'exec d'__init et à l'exec de probe()), mais n'est pas appelé.


Quelques suggestions ? Merci pour votre aide.


Edit, quelques infos supplémentaires :
À la connexion USB de mon device :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$udevadm monitor
KERNEL[5226.607086] add      /devices/pci0000:00/0000:00:06.0/usb1/1-2 (usb)
KERNEL[5226.616284] add      /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0 (usb)
UDEV  [5226.621658] add      /devices/pci0000:00/0000:00:06.0/usb1/1-2 (usb)
UDEV  [5226.630613] add      /devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0 (usb)