desenlazar dispositivo de usbhid y enlazar a su propio controlador

1

SO: Debian 8

Problema: estoy escribiendo un módulo de controlador usb para mi microcontrolador, HID usb personalizado, pero cuando lo conecto a la computadora portátil se une al controlador usbhid, si lo hago rmmod usbhidtambién desconecta un mouse y no es muy agradable).

sudo sh -c 'echo -n "1-3:1.0" > /sys/bus/usb/drivers/usbhid/unbind'

, sin embargo, no es interesante hacerlo cada vez que conecto mi dispositivo. Incluso después de escribir un script, me parece que no es divertido ejecutarlo una y otra vez. ¿Es posible desvincular mi dispositivo del controlador usbhid automáticamente?

Anton Rak
fuente
1
agregue su script a una regla udev personalizada, luego udev ejecutará su script en cada enchufe.
Ipor Sircer

Respuestas:

0

No fue fácil encontrar la solución realmente genial, pero lo hice. La solución no trata con udev. Necesitamos decirle a Hid Core que no debe tocar nuestro dispositivo. Es posible hacerlo de 2 maneras dependiendo de usbhid compilado como módulo o no. Mira esto:

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 contiene argumentos de línea de comando para el kernel de Linux. Puede colocar tantos como desee allí siempre que estén separados por un espacio ".

Con suerte, le ahorrará tiempo a alguien, ya que pasé una gran cantidad de tiempo para encontrar esta, creo, una excelente solución.

Saludos cordiales, anon

Anton Rak
fuente
0

Puede poner en la lista negra el controlador para que no se cargue y se vincule con el dispositivo durante el arranque. Si otros módulos que dependen de él, no se cargarán.

https://askubuntu.com/questions/110341/how-to-blacklist-kernel-modules

Kyle H
fuente
Sí, pero es un controlador oculto predeterminado que controla mis ratones, y no es una buena idea suprimir un controlador oculto
Anton Rak
Estoy de acuerdo. udev es el camino a seguir. solo para probar y escribir un módulo de controlador usb, podría ir de esta manera para evitar una curva de aprendizaje si no conocía udev.
Kyle H
Gracias por la respuesta) ya tengo un conocimiento básico de udev) y en general solía hacer estas curvas desde que instalé Linux: D
Anton Rak
Ya lo resolví. En el caso de que esté interesado, verifique la solución a continuación.
Anton Rak