O comando make localmodconfig
ainda é a ferramenta certa para o trabalho. De fato, make localmodconfig
runs scripts/kconfig/streamline_config.pl
.
Entrada de arquivo
Ao ler o código-fonte streamline_config.pl
(perl), há um recurso não documentado my $lsmod_file = $ENV{'LSMOD'};
que permite a entrada de arquivos para a detecção do módulo carregado em vez da saída do comando lsmod
.
CD ao vivo
Porque o localmodconfig usa a saída lsmod
para detectar os módulos carregados. Nós rodamos um Ubuntu Live CD em cada uma das diferentes configurações de hardware, abrimos um terminal ( Ctrl + Alt + T ), rodando lsmod
e salve sua saída.
Concatenar saída
Ao concatenar os arquivos de saída lsmod
ao remover linhas de cabeçalhos consecutivos, você pode criar rapidamente um arquivo de entrada que cubra todos os módulos do kernel necessários. Gostamos de revisar a lista de módulos manualmente e usar uma receita mais manual:
-
$ cd linux-3.11.0/
ou vá no diretório onde você irá executar o comando make -
$ lsmod > lsmod.txt
cria um arquivo de texto com seus módulos carregados -
$ nano lsmod.txt
vai abrir o editor de texto nano, é claro que você pode usar o seu aplicativo de editor favorito -
Anexe seus módulos desejados que ainda não estão lá, na parte inferior deste arquivo (veja um exemplo no final deste anwer), e salve-o quando estiver pronto.
Nota: use espaços não guias para corresponder às posições do tabulador da coluna. -
$ make LSMOD="lsmod.txt" localmodconfig
isto irá dizer ao localmodconfig para usar seu arquivo lsmod.txt como entrada para detecção de módulos carregados
Com relação a Steven Rostedt - autor de steamline_config.pl - por sugerir uma notação mais curta na etapa 5.
Exemplo do que acrescentar e não anexar ao lsmod.txt (etapa 4):
Como a placa principal Intel D33217CK possui sensores térmicos da Intel que gostaríamos de ler, anexamos estas linhas:
x86_pkg_temp_thermal 13810 0
intel_powerclamp 14239 0
Mas não queremos rodar máquinas virtuais neste hardware, é por isso que pulamos estas linhas:
kvm_intel 128218 0
kvm 364766 1 kvm_intel
Ele tem um adaptador ethernet Gibabit da Apple (Broadcom) conectado à sua porta Thunderbolt, então nós acrescentamos:
tg3 152066 0
ptp 18156 1 tg3
pps_core 18546 1 ptp
Achamos que não precisamos de espelhamento de volume e, portanto, não adicione:
dm_mirror 21715 0
dm_region_hash 15984 1 dm_mirror
dm_log 18072 2 dm_region_hash,dm_mirror
E também não precisamos de saída gráfica (o texto será feito em um servidor sem cabeçalho), por isso não incluímos:
i915 589697 3
i2c_algo_bit 13197 1 i915
drm_kms_helper 46867 1 i915
drm 242354 4 i915,drm_kms_helper
Para outra máquina, precisamos deste driver ethernet Realtek adicionalmente:
r8169 61434 0
mii 13654 1 r8169