universales para instalar hay dispositivos disponibles descargar controladores como adicionales linux linux-kernel usb kernel-module udev

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.