2017-09-06 8 views
2

J'ai créé un nouveau module de noyau Linux qui est supposé être chargé lorsqu'un clavier usb a été détecté par mon outil hotplug d'espace utilisateur udev. Le problème est que même si mon module est chargé avec succès (manuellement en utilisant insmod) et que mon pilote est prêt à répondre aux événements, le pilote par défaut usbhid a déjà été chargé, ce qui, bien sûr, est agréable car cela me permet utiliser le système car mon driver est encore en développement. Donc, quand je rmmod usbhid, je suppose que mon système passe à mon pilote expérimental (difficile à dire parce que l'interface utilisateur USB n'est pas détectée).Comment faire pour échanger temporairement des pilotes sous linux?

Par conséquent, est-il possible de passer temporairement les pilotes ou (encore mieux) tester le pilote expérimental même si le usbhid fonctionne?

Répondre

0

Une solution de contournement peut être d'exécuter ces commandes via SSH ou dans une machine virtuelle avec une transmission USB.

Quand je veux essayer rapidement des modules, je vous écris dans une coquille quelque chose comme:

rmmod usbhid; insmod my_module; sleep 15; rmmod my_module; modprobe usb_hid

Une autre solution rapide pour les problèmes d'entrée dans cette situation est d'utiliser une autre méthode d'entrée que périphériques USB HID: PS/2, ou virtuel comme le clavier à distance de kdeconnect ou synergie. La machine virtuelle est à mon avis la meilleure configuration si vous faites un développement sérieux du noyau, car cela évitera de vous écraser si un problème survient. En plus de ces solutions de contournement, vous pouvez être intéressé par this answer pour une installation plus permanente.