Compilando o kernel com configurações padrão

7

Suposições:

  • A plataforma: anisha@linux-dopx:~/> uname -a e Linux linux-dopx 2.6.34-12-desktop #1 SMP PREEMPT 2010-06-29 02:39:08 +0200 x86_64 x86_64 x86_64 GNU/Linux

  • O kernel baixado é o último mais estável do kernel.org.

  • Deixamos os padrões permanecer (não fazer alterações) nas opções de make menuconfig .
  • Basta digitar make , make install , grub-update e reinicializar.

Agora, seguindo essas suposições, ainda precisamos fazer algumas alterações adicionais nos arquivos ou compilar alguns drivers extras para garantir uma reinicialização sem erros?

Se sim, então em que coisas essas mudanças dependem?

EDIT 1:

anisha@linux-dopx:/> sudo /sbin/lspci -n
00:00.0 0600: 8086:29c0 (rev 10)
00:02.0 0300: 8086:29c2 (rev 10)
00:1b.0 0403: 8086:27d8 (rev 01)
00:1c.0 0604: 8086:27d0 (rev 01)
00:1c.1 0604: 8086:27d2 (rev 01)
00:1d.0 0c03: 8086:27c8 (rev 01)
00:1d.1 0c03: 8086:27c9 (rev 01)
00:1d.2 0c03: 8086:27ca (rev 01)
00:1d.3 0c03: 8086:27cb (rev 01)
00:1d.7 0c03: 8086:27cc (rev 01)
00:1e.0 0604: 8086:244e (rev e1)
00:1f.0 0601: 8086:27b8 (rev 01)
00:1f.1 0101: 8086:27df (rev 01)
00:1f.2 0101: 8086:27c0 (rev 01)
00:1f.3 0c05: 8086:27da (rev 01)
01:00.0 0200: 10ec:8136 (rev 01)
por Aquarius_Girl 19.01.2012 / 11:27

2 respostas

6

Não é recomendado apenas um make menuconfig . A configuração necessária depende de três coisas:

 the hardware being used
 the features used by the OS/distribution
 the features by you (file-systems, raid, ..etc)

Portanto, a configuração "padrão" recomendada na minha opinião é:

cd your_kernel_src
cp /boot/your-distribution-config .config
make localmodconfig
make menuconfig

Veja também Configuração do Kernel para distribuições . O primeiro parágrafo:

Configuring a kernel was once a fairly straightforward process, only requiring knowledge of what hardware needs to be supported. Over time, things have gotten more complex in general, but distributions have added their own sets of dependencies on specific kernel features—dependencies that can be difficult for regular users to figure out. That led Linus Torvalds to put out an RFC proposal to add distribution-specific kernel configuration options.

    
por 31.07.2012 / 17:22
3

Conforme mencionado nesta resposta , tudo o que não for fornecido pela distribuição ou fornecedor de hardware provavelmente falhará de maneiras sutis ou menos sutis, por exemplo:

  • você pode não criar suporte ao driver para alguma peça essencial de hardware
  • os pacotes da distribuição podem depender de um recurso do kernel que você não criou e falhou

Além disso, além de configurações específicas, é normal que os fornecedores apliquem patchsets grandes em cima do kernel vanilla, até mesmo o Ubuntu faz isso, por exemplo.

Para o Ubuntu / Debian em particular, eu descrevi como compilar o kernel suportado a partir do código fonte em: link Modificar essa base de kernel estável é a melhor coisa que você pode fazer nesse caso.

Se você quiser apenas brincar sem pensar muito em um emulador, por exemplo, no 4.0, você pode se safar:

make defconfig

que detecta a arquitetura do host e usa isso para encontrar o padrão.

Podemos ver facilmente qual arquivo de configuração foi usado com uma compilação detalhada:

make V=1 defconfig

que sai na v4.19:

make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.build obj=scripts/kconfig defconfig
scripts/kconfig/conf  --defconfig=arch/x86/configs/x86_64_defconfig Kconfig

no qual concluímos que o arquivo usado deve ser arch / x86 / configs / x86_64_defconfig . TODO: qual hardware é direcionado / testado? Ele será inicializado no QEMU?

Para compilação cruzada para um arco diferente, por exemplo aarch64, você precisa:

make ARCH=arm64 defconfig

make help também mostra outros destinos interessantes relacionados ao padrão, como alldefconfig e savedefconfig , que podem ser úteis.

    
por 20.05.2015 / 09:42