Como eu construo o módulo do kernel iptables para um kernel carregado?

3

Eu construí um kernel com suporte de módulo carregável por várias razões, uma delas a possibilidade de compilar módulos e carregá-los sem reiniciar. Isso deve ser útil quando eu precisar de um módulo que não tenha sido habilitado na configuração do kernel.

Agora, com drivers como o nouveau, é tão fácil quanto ir ao diretório de origem e executar make M=drivers/gpu/drm/nouveau . Como posso construir um módulo iptables atualizado sem compilar um kernel inteiro e reinicializar? É mesmo possível?

    
por Lekensteyn 13.05.2012 / 00:31

2 respostas

6

Basta acessar o diretório de origem do kernel, fazer as alterações desejadas e make , em seguida, make modules_install .

Isso é tudo o que é preciso.

Se você quiser criar apenas um módulo específico, use:

make M=path/to/module/directory

Por exemplo (do diretório de nível superior do kernel):

make M=fs/ext4
make M=fs/ext4 modules_install

Para ativar os módulos alterados, você deve descarregar e reinseri-los. Se o módulo não foi carregado anteriormente, nada de especial precisa ser feito.

Note que você não pode alterar algo do built-in para o módulo desta forma (que requer uma reinicialização), e alguns módulos podem ter dependências que exigem mudanças na configuração interna - você precisará reinicializar para isso também. / p>     

por 13.05.2012 / 07:55
0

A resposta de Mat resume tudo, mas eu gostaria de acrescentar mais uma coisa.

É melhor certificar-se de que você está compilando seus módulos externos com a mesma versão do GCC que foi usada para construir sua imagem do kernel. Você pode determinar isso lendo o arquivo '/ proc / version'.

Muitos módulos de drivers externos e proprietários se recusam a ser compilados com versões incompatíveis do compilador.

    
por 13.05.2012 / 10:33