2010-03-29 16 views
1

Si j'utilise un pilote squelette usb modifié sous Linux et que j'insère le module avec le périphérique USB déjà branché, la fonction de sonde ne sera pas appelée. Je dois débrancher et rebrancher l'appareil pour que le conducteur soit activé. Ce n'est pas le cas par exemple. les pilotes série, j'ai fait quelques tests. Y a-t-il une raison à cela? Comment puis-je appeler la fonction de sonde?Linux Sonde pilote USB non appelée si le périphérique est déjà branché

Répondre

1

Certains logiciels de notre part ouvraient le périphérique à partir de/proc/bus/usb et le périphérique était revendiqué par le pilote usbfs, de sorte que le nouveau pilote ne pouvait pas revendiquer le périphérique.

3

Presque tous les périphériques USB HID sont automatiquement gérés par le pilote usbhid. Effectuez les actions suivantes:

sudo rmmod usbhid 
sudo insmod your_driver 
sudo insmod usbhid 
2

Vous avez probablement besoin de délier votre appareil de usbhid et le lier à votre pilote:

  • essayer de trouver le pilote voleur: /sys/bus/usb/drivers/usbhid/
  • délier il: echo -n "1-1:1.0" > /sys/bus/usb/drivers/usbhid/unbind
  • lier votre appareil:
    • echo <vendor> <product> > /sys/bus/usb/drivers/my_driver/new_id ou si vous avez déjà un ID de bus:
    • echo -n "1-1:1.0" > /sys/bus/usb/drivers/my_driver/bind

voir http://www.ha19.no/usb/ voir http://lwn.net/Articles/143397/