Habilitar módulo do kernel (sem o compilar completamente)

Publicado por Buckminster em 09/06/2014

[ Hits: 11.354 ]

 


Habilitar módulo do kernel (sem o compilar completamente)



Quero deixar aqui uma dica interessante, que faz muito tempo que eu planejava fazer e sempre esquecia.

Muitas vezes, precisamos adicionar um módulo ao kernel e nos vemos na situação de compilar ele todo novamente, perdendo tempo.

Mas, para habilitar módulos no kernel já instalado, não se faz necessário compilá-lo novamente.

Vamos tomar como exemplo o Kernel 3.14.5, onde não vem habilitado por padrão o suporte à placa Wireless Atheros AR9285. E esta "joça", vem em uma porção de notebooks Dell.

Ao executar mobprobe -v ath9k, temos a resposta (em inglês) que o módulo não foi encontrado. Por isso, só dá para instalar o driver da placa através de gambiarras.

Pois bem, para habilitar tal módulo sem ter que compilar todo o kernel, faça o seguinte:

1. Entre no diretório do kernel, por exemplo, no Debian:

# cd /usr/src
# cd linux-3.14.5
# ou entre no link simbólico, se tu usou link simbólico na compilação.

# make menuconfig

Habilite os módulos desejados marcando <M> ou <*>.

Lembrando que <M>, compila como módulo separadamente do bloco do kernel. E <*>, compila integrando o módulo ao kernel.

A diferença, é que os módulos <*> serão carregados junto com o kernel na inicialização e os módulos <M>, serão carregados quando o dispositivo for usado.

Tem uns que só podem ser marcados como <M> e outros como <*>. Marque a opção disponibilizada.

2. No menu, marcamos as opções desejadas, por exemplo, o suporte à Wireless Atheros:

Networking --->
Wireless --->
<M> Improved wireless configuration API
<M> Generic IEEE 802.11 Networking Stack (mac80211)


E:

Device Drivers --->
[*] Network device support --->
Wireless LAN --->
Atheros Wireless Cards ---->
<M> Atheros 802.11n wireless cards support


Marque todas as opções desejadas referentes à sua placa.

As opções acima estão genéricas, existem outras mais a serem marcadas, depende do modelo da placa Wireless.

Saia salvando as alterações do menuconfig.

3. Execute:

# make modules
# make modules_install


E pronto. Os módulos serão adicionados conforme a configuração. Simples, rápido e eficiente!.

Agora, ao executar modprobe -v ath9k, temos a resposta:

insmod /lib/modules/3.14.2/kernel/drivers/net/wireless/ath/ath.ko
insmod /lib/modules/3.14.2/kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
insmod /lib/modules/3.14.2/kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko
insmod /lib/modules/3.14.2/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko


E nem foi preciso instalar driver nenhum, a Wireless Atheros saiu funcionando com o driver nativo do módulo, aliás, o driver É o módulo.

Isto pode ser feito para qualquer módulo que queiramos habilitar no kernel, por exemplo, suporte ao IPtables ou suporte a uma nova placa de rede, etc.

Ou qualquer outro dispositivo que adicionarmos depois e não veio o suporte habilitado por padrão, ou porque esquecemos de habilitar durante a "porcaria" da compilação do kernel.

Outras dicas deste autor

Wireless no Debian Squeeze com WPA2

Firmware Realtek - Ativação na instalação do Debian Squeeze 64 bits

Configuração básica do IPtables

Debian Wheezy - Atalho para minimizar todas as janelas abertas

PostgreSQL 9.1 64 bits - Instalação no Debian Squeeze

Leitura recomendada

Atualizando o kernel do Linux corretamente (inclusive os headers)

Removendo kernels antigos do Ubuntu

Recomendação para quem pretende usar kernel 2.6.0 ou 2.6.1

Bibliotecas para o kernel

Instalando kernel 2.6.7 no Slackware 10

  

Comentários
[1] Comentário enviado por rodrigocontrib em 14/08/2014 - 20:00h

Interessante.
Eu gostaria de um método para descobrir quais os modulos foram urilizadoa pelo meu sistema.
assim ficaria fácil limpar o kernel.
estou testando vários kernels no meu virtualbox e o que mais sinto falta é de uma ferramenta assim.
Pensei até em algum tipo de monitoramento modulos mas sao apenas ideias.

[2] Comentário enviado por Buckminster em 16/08/2014 - 18:36h


[1] Comentário enviado por rodrigo.root.rj em 14/08/2014 - 20:00h:

Interessante.
Eu gostaria de um método para descobrir quais os modulos foram urilizadoa pelo meu sistema.
assim ficaria fácil limpar o kernel.
estou testando vários kernels no meu virtualbox e o que mais sinto falta é de uma ferramenta assim.
Pensei até em algum tipo de monitoramento modulos mas sao apenas ideias.


Para ver os módulos que iniciam com o boot dê um cat /etc/modules.
Para ver os módulos utilizados dê um cat /proc/modules.

Mas como assim limpar o kernel?
Geralmente os kerneis já vem preparado com o mínimo necessário para instalação.

[3] Comentário enviado por rockman0x em 14/09/2015 - 22:58h

Boa noite tenho uma duvida com essa dica da para desabilitar todos módulos não estão sendo utilizado ??? quanto tempo ira levar para fazer essa recompilaçao ???



Contribuir com comentário