Wheezy: como realmente lista negra ehci_hcd?

3

Estou instalando wheezy em um Thinkpad T41. Esses são conhecidos por terem problemas relacionados ao USB2, que podem ser evitados ao não carregar o ehci_hcd.

Mas não consigo descobrir como impedir que o ehci_hcd seja carregado. Aqui está o que eu tentei:

echo blacklist ehci_hcd > /etc/modprobe.d/ehci_hcd.conf
depmod -a
update-initramfs -u
reboot

... mas o ehci_hcd ainda está carregado. Como posso evitar isso?

    
por Pierre-Yves 26.12.2013 / 22:10

2 respostas

1

Dado o problema das dependências de módulo que tornam a lista negra um módulo assim difícil, eu sugeriria a rota de recompilar seu kernel com esse subsistema explicitamente não construído.

Como você mencionou, você está usando o Debian Wheezy, este guia é um bom primer na construção de um kernel o "caminho de debian". Eu geralmente defendo o uso do kernel estável mais recente 3.12.6 no momento em que escrevo , mas usar as fontes do kernel empacotadas com o debian também é perfeito (por exemplo, o pacote linux-source ou linux-source-3.2 buscará fontes com qualquer correção debian aplicada).

A parte importante dessa resposta que se desvia do guia vinculado está na instrução "Faça isso ajustar" (sic) no guia.

As linhas dadas no guia são

$ cat /boot/config-'uname -r'>.config
$ make oldconfig

A primeira linha irá funcionar se você estiver usando um kernel, construa o "modo debian". Se você estiver executando um kernel não-debian, o comando zcat /proc/config.gz > .config provavelmente funcionará. O objetivo disso é começar com a configuração do kernel atualmente em execução. A segunda linha dos comandos acima é útil se você estiver criando um kernel que não seja da mesma versão que o que está sendo executado. Ele solicitará quaisquer opções de configuração que não estejam presentes no kernel em execução, e você estará seguro em aceitar os padrões quando solicitado.

Agora chegamos à etapa que não está no guia, modificando a configuração. Você pode iniciar a configuração com

make menuconfig

para uma configuração baseada em terminal ou

make xconfig

para uma configuração gráfica. Para desativar o ehci, você navegará para Drivers de dispositivo - > Suporte USB - > EHCI HCD

Você provavelmente verá:

<M>     EHCI ECD (USB 2.0 Support)

Quando esta opção estiver destacada, pressione n , o que irá transformar a linha em:

< >     EHCI ECD (USB 2.0 Support)

Agora saia de cada menu até que você seja solicitado a salvar sua configuração e selecione para salvá-la. A partir daqui você pode seguir o resto do guia, que irá construir o seu kernel e empacotá-lo em um .deb, que você pode instalar. Quando você inicializa este kernel, não haverá suporte a ehci embutido no kernel e nenhum módulo ehci para carregar.

Embora seja um ponto de preferência, defendo adaptar seu kernel à sua máquina. Uma vez configurado inicialmente, o make oldconfig fará sua configuração facilmente portável para novas versões do kernel.

    
por 26.12.2013 / 23:38
0

De acordo com o link , a inclusão de um módulo em /etc/modprobe.d na lista negra só ajudará se nenhum outro módulo não listado na lista negra depender sobre isso:

The blacklist command will blacklist a module so that it will not be loaded automatically, but the module may be loaded if another non-blacklisted module depends on it or if it is loaded manually.

However, there is a workaround for this behaviour; the install command instructs modprobe to run a custom command instead of inserting the module in the kernel as normal, so you can force the module to always fail loading with a file /etc/modprobe.d/blacklist.conf containing

install ehci_hcd /bin/false

Isso deve colocar esse módulo na lista negra e qualquer outro que dependa dele.

BEWARE : Isso pode quebrar seu sistema se você realmente precisar de um módulo do qual a sua lista negra depende! Certifique-se de ter um disco vital em mãos!

    
por 26.12.2013 / 23:00