Quanta strip (1) -ing está bem para os módulos do kernel?

7

Eu regularmente crio pacotes para o Slackware Linux e parte do processo é remover binários para que eles ocupem menos espaço. Eu acho que se eu strip --strip-all (ou strip sem opções) módulos do kernel, eles muitas vezes não conseguem inserir:

FATAL: Error inserting cloop (/lib/modules/2.6.38.7-smp/kernel/fs/cloop/cloop.ko): Invalid module format

Qual nível de remoção é recomendado para módulos do kernel? Se eu usar --strip-debug , removerei os símbolos de depuração que afetarão negativamente o desempenho do sistema e / ou o registro de erros?

    
por amphetamachine 26.11.2011 / 22:16

2 respostas

11

A remoção de todos os símbolos remove os nomes dos símbolos que o módulo chama. Não vai funcionar.

A remoção de símbolos de depuração com strip --strip-debug *.ko (= strip -g *.ko ) é segura. O makefile do kernel faz isso por você, se você executar make INSTALL_MOD_STRIP=1 modules_install .

Você pode impedir que os símbolos de depuração sejam inseridos em primeiro lugar configurando seu kernel com CONFIG_DEBUG_INFO não definido.

Veja também Como faço para retirar os símbolos locais do módulo do kernel do Linux sem quebrá-lo?

    
por 27.11.2011 / 00:46
2

Eu acredito que a abordagem mais segura é strip --strip-unneeded .

    
por 27.11.2011 / 02:56