para - instalar drivers en linux ubuntu
Linux: cómo asignar un controlador USB al dispositivo (1)
Esta pregunta es doble:
1- ¿Cómo separa manualmente un controlador de un dispositivo USB y conecta uno diferente? Por ejemplo, tengo un dispositivo que cuando se conecta automáticamente usa el controlador de almacenamiento usb.
// salida usbview
Vendor Id: xxxx
Product Id: xxxx
...
Number of Interfaces: 2
Interface Number: 0
Name: usb-storage
Number of Endpoints: 2
...
Interface Number: 1
Name: (none)
Number of Endpoints: 2
...
No quiero usar el controlador usb-storage, así que tengo una aplicación ejecutándose en el host en el que utilizo la biblioteca libusb para desconectar el controlador usb-storage y luego reclamo la interfaz. Luego puedo enviar datos hacia y desde las aplicaciones que se ejecutan en mi dispositivo USB y en mi sistema host de Linux.
¿Cómo se separa un controlador manualmente fuera de una aplicación?
2- ¿Cómo se asigna automáticamente el controlador para adjuntar en el complemento del dispositivo. Actualmente tengo una configuración de regla udev para configurar los permisos del dispositivo de forma automática.
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
¿Puedo usar las reglas de udev para asignar controladores a interfaces específicas en el dispositivo USB? Por ejemplo, si quisiera que el módulo usbnet se utilizara automáticamente en la interfaz 0 en lugar de usb-storage, ¿es posible en udev?
Gracias,
(Estoy un poco confundido acerca de cómo funciona StackExchange con sus diferentes sitios o si son todos iguales. Esta es una pregunta de Linux, así que también fue publicada en Unix y Linux. Perdóname si no debería publicarse aquí también, pero StackOverflow también maneja Linux, entonces ...)
Esta pregunta se parece mucho a un dispositivo USB que contiene un pequeño disco flash que contiene el controlador de Windows, pero en realidad es una especie de dispositivo de acceso a la red (me viene a la mente el módem UMTS). Si este es el caso, intente utilizar USB_ModeSwitch , que contiene una base de datos de dispositivos USB y los comandos y datos que se deben usar para mover el dispositivo de "modo de almacenamiento" a "modo de acceso a la red". Si el dispositivo no está configurado en la base de datos, Usb Sniffer para Windows se puede usar en Windows para rastrear el tráfico USB y extraer el combo de comando / datos necesario.
La automatización de usb_modeswitch, para que realice su magia cuando conectas tu dispositivo, puede hacerse usando las reglas de udev. Si usa una distribución basada en Fedora o Ubuntu, esto se maneja cuando instala los paquetes que proporcionan usb_modeswitch (lo siento, no tengo información sobre SUSE, pero creo que es similar). En Fedora, es el paquete use_modeswitch_data, que proporciona un contenedor para el cmd usb_modeswitch y los archivos de reglas necesarios.
Si realmente desea vincular / desvincular dispositivos USB a los controladores, consulte este artículo de LWN . Como root, echo $usbid > /sys/bus/usb/drivers/usb-storage/unbind
desvinculará el dispositivo USB con $usbid
del $usbid
"usb-storage". Usando el mismo comando, pero usando bind
lugar de unbind
, intentará vincular el dispositivo al controlador. Pero tenga en cuenta que no tiene sentido (y no funciona) vincular un dispositivo que actúa como un dispositivo de almacenamiento a un controlador usbnet.