Como configurar um kernel do Linux com base nos módulos atualmente em uso?

15

Estou disposto a construir um kernel mínimo com apenas as coisas necessárias para minha máquina; então comecei compilando o kernel desde o início, usando a configuração padrão e adicionando coisas que tenho certeza de que tenho (por exemplo: placa Ethernet, placa WiFi, ...).

Mas existem várias outras coisas não tão fáceis de saber (ou seja, o cronômetro do watchdog), então me deparei com o AutoKernConf que supostamente detecta o hardware da máquina e gera um arquivo de configuração do kernel com as configurações dos dispositivos encontrados.

O problema é que ele contém várias configurações repetidas e até algumas que eu não tenho (estou usando um laptop Dell e uma das coisas que "encontrei" era algo como o da Toshiba).

Então, acabei construindo um kernel com a configuração que saiu do make allmodconfigcomando, que é um kernel com a maioria das coisas compiladas como módulos.

Inicializando e executando o kernel, lsmodposso ver todos os módulos do kernel em uso (os realmente necessários) e gostaria de saber se existe uma ferramenta ou alguma maneira de analisar essa lista e convertê-la na configuração correspondente do kernel Arquivo.

Ou como mapear cada um com as opções apropriadas no kernel para que eu possa defini-las manualmente.

Muito obrigado pelo seu tempo.

Carla
fonte

Respostas:

19

Se você estiver usando o Linux 2.6.32 e superior, consulte o alvo de criação "localmodconfig". Ele faz praticamente o que você pergunta - determina quais módulos você está executando e gera um .config, garantindo que esses módulos sejam criados. O destino "localyesconfig" compilará esses módulos estaticamente no kernel, em vez de criar módulos.

Mais informações disponíveis aqui: Fácil configuração do kernel local .

Samat Jain
fonte
Muito obrigado, eu estava usando uma variante 2.6.33 para poder usar esse destino.
Carla