Trennen Sie das Gerät vom USB-HID und binden Sie es an Ihren eigenen Treiber.

Trennen Sie das Gerät vom USB-HID und binden Sie es an Ihren eigenen Treiber.

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 usbhiddas 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

https://askubuntu.com/questions/605251/dkms-installed-kernel-module-but-not-working-after-reboot/606359#606359

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

verwandte Informationen