Betriebssystem: Debian 8
Problem: Ich schreibe ein USB-Treibermodul für meinen Mikrocontroller, ein benutzerdefiniertes USB-HID, aber wenn ich es an den Laptop anschließe, wird es an den USB-HID-Treiber gebunden. Wenn ich rmmod usbhid
das tue, wird auch die Maus getrennt, was nicht sehr schön ist. Ich kann die Bindung über
sudo sh -c 'echo -n "1-3:1.0" > /sys/bus/usb/drivers/usbhid/unbind'
, allerdings ist es nicht interessant, dies jedes Mal zu tun, wenn ich mein Gerät anschließe. Selbst nachdem ich ein Skript geschrieben habe, macht es keinen Spaß, es immer wieder auszuführen. Ist es möglich, die Bindung meines Geräts an den USB-HID-Treiber automatisch aufzuheben?
Antwort1
Es war nicht einfach, die wirklich coole Lösung zu finden, aber ich habe es geschafft. Die Lösung beschäftigt sich nicht mit udev. Wir müssen dem HID-Kern sagen, dass er unser Gerät nicht berühren soll. Dies ist auf zwei Arten möglich, je nachdem, ob usbhid als Modul kompiliert ist oder nicht. Sehen Sie sich das an:
https://unix.stackexchange.com/questions/55495/prevent-usbhid-from-claiming-usb-device
PS "GRUB_CMDLINE_LINUX_DEFAULT enthält Kommandozeilenargumente für den Linux-Kernel. Sie können dort so viele wie Sie wollen eintragen, vorausgesetzt sie sinddurch ein Leerzeichen getrennt."
Hoffentlich spart es jemandem Zeit, da ich sehr viel Zeit darauf verwendet habe, diese, wie ich finde, hervorragende Lösung zu finden.
Viele Grüße, anon
Antwort2
Sie können den Treiber auf eine schwarze Liste setzen, damit er beim Booten nicht geladen und an das Gerät gebunden wird. Wenn andere Module davon abhängig sind, können sie nicht geladen werden.
https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules