Por que é necessário compilar o kernel inteiro para um patch simples?

0

Então estou corrigindo meu kernel para consertar meu Bluetooth e construir usando este guia link

Por que eu tenho que compilar o kernel inteiro, o que leva cerca de uma hora?

    
por subz 09.01.2015 / 03:44

1 resposta

2

Assumirei que sua pergunta é sobre a natureza do kernel e por que ele precisaria ser recompilado.

O kernel do Linux é um monte de código-fonte escrito em C. Há código disponível para lidar com um número inacreditavelmente grande de dispositivos de hardware e conjuntos de chips e mais código que ajuda a se adaptar a diferentes plataformas além do PC padrão. hardware. Então, há o código que fornece a estrutura geral da coisa em tempo de execução.

Alguns dos códigos são mutuamente exclusivos com outras partes do código, e você deve escolher uma ou outra opção.

Parte do código é para circunstâncias especiais, o que diminui a velocidade do kernel para pessoas que não têm essas circunstâncias e, portanto, você pode definir opções que desativam esses bits de código.

Quando o Ubuntu constrói um kernel para "as massas", eles adivinham o hardware que 99% das pessoas encontrarão e precisarão. Em seguida, eles dividem o máximo possível em módulos carregáveis. Em seguida, eles compilam o núcleo principal do kernel e enviam isso com a maioria dos módulos que você precisa. Eles disponibilizam outros módulos com o gerenciador de pacotes.

Você não descreveu o que foi quebrado com o seu Bluetooth, mas se alguém disse que você precisa construir um novo kernel, isso provavelmente significa que uma dessas opções do kernel eliminou sua capacidade de usar um determinado chip bluetooth. Então, você tem que construir um kernel que tenha essa opção ativada.

Se você tiver sorte, só precisará criar um módulo bluetooth com essa nova opção. No entanto, pode ser muito difícil de configurar com o ambiente de compilador correto para que você tenha um novo módulo de kernel que se conecte corretamente ao kernel existente. Em muitos casos, é mais fácil ou mais confiável recompilar tudo.

Agora, uma vez que você tenha feito a primeira compilação, pequenas mudanças na configuração só precisarão recompilar os poucos arquivos afetados, e será muito mais rápido. No entanto, eu suspeito que fakeroot debian/rules clean está jogando fora os arquivos temporários e fazendo você começar do zero. Eu sugeriria pular essa etapa pela segunda vez. Além disso, verifique se está usando todos os seus processadores ao compilar. Se não, procure alguma maneira de dizer para compilar em paralelo. Ao compilar manualmente, eu uso make -j 20 , que fornece o desempenho mais rápido em uma máquina de 4 núcleos, compilando 20 arquivos por vez.

    
por 09.01.2015 / 05:14