desabilita uma porta usb no linux

6

Eu pesquisei muito por uma resposta a isso, mas o mais perto que eu posso encontrar uma solução é isso , mas não funciona para mim.

Aqui está o meu sistema:

# uname -a
Linux vin 4.4.0-1-amd64 #1 SMP Debian 4.4.6-1 (2016-03-17) x86_64 GNU/Linux

O problema é este : uma das minhas portas USB parece estar morta. Qualquer programa que tente ler "/ sys / bus / usb / devices / usb1 / descriptors" fará com que o programa fique travado em um estado impossível de matar.

Infelizmente, muitos softwares parecem querer acessar o USB1, incluindo o chrome e o blender, e é por isso que isso está me incomodando muito. Quando invoco esses programas com strace, eles sempre param no momento em que tentam abrir "/ sys / bus / usb / devices / usb1 / descriptors".

Eu tentei coisas como "echo suspender > / sys / bus / usb / dispositivos / usb1 / power / level" mas não é bom - o comando simplesmente trava como os outros.

Eu tentei usar o código de hubpower mencionado no post vinculado acima, mas da mesma forma parece apenas pendurar como os outros.

Eu tentei desligar todo o sistema e abrir o próprio computador para desconectar a porta USB diretamente, mas toda a coleção de portas USB (há muitas delas) parece muito integrada com a placa-mãe, e eu não consegui. t ver uma maneira de desconectar qualquer coisa. Concedido, eu não tenho toneladas de experiência conectando fios dentro e fora de placas-mãe. Se a única esperança é fazê-lo dessa maneira, eu poderia gerenciá-lo.

Eu tentei entrar no BIOS e desativar todas as portas USB, exceto uma; e desabilitando todos, exceto o próximo; e o próximo; e assim por diante, para ver qual deles era o problema. Mas isso não parece ter qualquer efeito - o Linux ainda era capaz de reconhecer as portas bem o suficiente para usar meu mouse e teclado USB. O Linux não parecia se importar com a configuração do BIOS.

O que me ocorre é que pode haver alguma maneira de dizer ao kernel do Linux para ignorar o USB1, mas fazê-lo sem realmente tentar interagir com o USB1 (já que isso parece causar o travamento não-matemático). Mas eu não sei como fazer isso.

    
por Zackrobat 14.04.2016 / 05:13

1 resposta

1

Resposta parcial: Não tenho certeza se você pode desativar apenas uma porta USB, mas pode desativar o controlador e todas as suas portas.

Você pode listar os controladores com lspci: lspci -k| grep -i usb -A2 Por exemplo, eu recebo:

03:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller
        Subsystem: Micro-Star International Co., Ltd. [MSI] ASM1142 USB 3.1 Host Controller
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_pci

Significando que o controlador USB na porta PCI 03: 00.0 é tratado pelo módulo xhcp_pci do kernel.

Agora, posso pedir ao motorista para não gerenciar este controlador com o seguinte comando:

echo "0000:03:00.0" | sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind

Se você não se importar de perder as outras portas USB deste controlador, isso pode ser uma solução.

    
por 09.09.2017 / 22:27

Tags