Como você obtém informações de hardware e seleciona drivers para serem mantidos em um kernel compilado da fonte?

6

Eu gostaria de criar um kernel mínimo para um servidor web.

Quando você compila um kernel a partir do código-fonte, como você obtém informações de hardware e sabe quais drivers precisam ser mantidos no kernel para que o restante possa ser removido?

    
por Parmeet Nanner 21.10.2013 / 00:36

2 respostas

4

  1. Você deve conhecer algumas distros como Arch ou Gentoo; Existem kernels especializados disponíveis para virtualização. Por exemplo, se você deseja executar o Linux com as tecnologias Virtuozzo ou VMware.

  2. Use o comando lspci -n e cole sua saída em link ; Esse site fornece os módulos do kernel necessários em geral. Em seguida, vá para a configuração do kernel (por exemplo, menuconfig ) e pressione / para pesquisar as opções, encontrar suas localizações e ativá-las.

  3. Existe um site chamado "kernel seeds" que faz um arquivo .config para o kernel genérico de acordo com a versão do kernel. É bom comparar o .config para opções e módulos do kernel sobre os quais você não tem certeza.

  4. Tente construir seu kernel por conta própria e use o script de configuração menos; é melhor se você quiser ter uma opção de kernel relacionada ao seu hardware.

  5. Tente inicializar sua máquina com uma versão mais recente de um bom live cd / usb. Sugiro bodhi linux ou FatDog / Puppy linux . então faça lsmod lá e veja a lista de módulos carregados. estas são a lista de opções do kernel que você precisa para construir em seu kernel ou adicionar como módulo ao seu kernel e carregar no momento da inicialização.
por 27.10.2013 / 16:36
1

Existe um script útil fornecido com kernels mais recentes, streamline_config.pl 1 , que ajudará você a criar um arquivo .config contendo apenas os módulos necessários ao seu kernel em execução no momento. O script tem um comentário "Como fazer" com todas as etapas necessárias.

Outra maneira de realizar a mesma coisa manualmente é usar localmodconfig . Depois de descompactar e preparar o seu kernel baixado, conecte todos os dispositivos externos que você provavelmente precisará em seu novo kernel personalizado para que os módulos relevantes sejam carregados.

Você então inicia o processo de compilação com o comando make localmodconfig e seu arquivo .config será gerado baseado em somente os módulos atualmente carregados .

Em ambos os casos, é fundamental garantir que você tenha tudo o que precisa listado em lsmod antes da compilação, ou esses módulos não serão selecionados para a compilação.

As primeiras (várias) vezes que você fizer isso, revise o arquivo .config gerado antes da compilação para verificar se ele tem o que você precisa.

O Wiki do Arch tem uma página sobre como compilar a maneira tradicional e inclui detalhes sobre o uso de localmodconfig .


1.Localizado em scripts/kconfig/

    
por 21.10.2013 / 01:27