web-dev-qa-db-fra.com

Reboot désactiver et activer les ports usb

Ubuntu Server 15.10

Avoir des problèmes avec 2 récepteurs USB avec le même numéro de série. Mon service les mélange. Mais si je supprime les prises USB lors du redémarrage, puis les attache dans un ordre spécifique, cela fonctionne bien.

Puis-je au démarrage désactiver tous les ports USB (ports 1 à 8). Puis sur un délai, n'activez que les ports 2 et 4.

1
roady

Je ne peux pas garantir que cela fonctionnera, mais essayez-le.

Tout d’abord, montrez tous les périphériques USB:

Sudo lsusb -t
 /: Bus 04.Port 1: Dev 1, Classe = root_hub, Pilote = xhci_hcd/6p, 5000M 
 /: Bus 03.Port 1: Dev 1, Classe = root_hub, Pilote = xhci_hcd/14p, 480M 
 | __ Port 1: Dev 2, Si 0, Classe = Périphérique d'interface humaine, Pilote = usbhid, 1,5 M 
 | __ Port 2: Dev 3, Si 0, Class = Périphérique d'interface humaine, pilote = usbhid, 1,5 M 
 | __ Port 2: Dev 3, Si 1, Classe = Périphérique d'interface humaine, pilote = usbhid, 1,5 M 
 | __ Port 7: Dev 4 , Si 0, Classe = Sans fil, Pilote = btusb, 12M 
 | __ Port 7: Dev 4, Si 1, Classe = Sans fil, Pilote = btusb, 12M 
 | __ Port 8: Dev 5. , Si 0, Classe = Vidéo, Pilote = uvcvideo, 480M 
 | __ Port 8: Dev 5, Si 1, Classe = Vidéo, Pilote = uvcvideo, 480M 
 /: Bus 02.Port 1 : Dev 1, Classe = root_hub, Pilote = ehci-pci/2p, 480M 
 | __ Port 1: Dev 2, Si 0, Classe = Hub, Pilote = 8/80, 480M 
/: Bus 01.Port 1: Dev 1, Classe = root_hub, Pilote = ehci-pci/2p, 480M 
 | __ Port 1: Dev 2, Si 0, Class = Hub, Pilote = hub/6p, 480M 

Vous pouvez ensuite désactiver le port USB souhaité sur le concentrateur racine.

Désactiver un port sur le hub racine signifie que je peux désactiver ma webcam (uvcvideo) comme ceci (bus 3, port 8):

echo '3-8' |Sudo tee /sys/bus/usb/drivers/usb/unbind

Je peux aussi le réactiver:

 echo '3-8' |Sudo tee /sys/bus/usb/drivers/usb/bind

Faites ceci avec attention, car la saisie de mauvais numéros peut désactiver votre clavier. Idéalement, assurez-vous que vous pouvez toujours taper si le port USB est désactivé (par exemple, sur un ordinateur portable, vous disposez d'un clavier intégré)

Comme vous dites que vous utilisez un serveur, vous pouvez configurer SSH sur la machine pour pouvoir taper si le clavier est désactivé pendant que vous essayez ceci.

Un redémarrage peut probablement résoudre un clavier désactivé.

Pour ce qui est de le désactiver à la volée juste après le démarrage, mettez ces commandes dans un script (adaptez-le à votre situation):

sleep 20 #try if this is needed, needs an increase etc
echo '3-8' |Sudo tee /sys/bus/usb/drivers/usb/unbind # detach device 1
echo '2-1' |Sudo tee /sys/bus/usb/drivers/usb/unbind # detach device 2
sleep 5
echo '3-8' |Sudo tee /sys/bus/usb/drivers/usb/bind # attach device 1
sleep 5
echo '2-1' |Sudo tee /sys/bus/usb/drivers/usb/bind # attach device 2
2
Smile4ever