Por que modificar o kernel do linux em vez de criar um módulo do kernel?

5

Eu tenho uma placa de desenvolvimento que tem uma versão mais antiga do Linux instalada nela. O fornecedor fornece uma imagem para o dispositivo com um kernel Linux muito modificado, alguns módulos de kernel carregáveis e alguns exemplos de software.

Eu gostaria de instalar uma versão mais nova do kernel do Linux no dispositivo, mas o fornecedor não tem suporte para isso, já que o kernel do Linux modificado é baseado em uma versão antiga do kernel.

O que eu não entendo é por que começar a hackear o kernel Linux, quando você pode tornar o kernel compatível com o dispositivo em que ele está rodando, escrevendo drivers como módulos do kernel. Poderia ser facilmente recompilado para qualquer versão do kernel sem problemas. Desta forma, se o fornecedor apenas suporta uma certa versão do kernel, você está "preso": (

Mas deve haver algum motivo para minha falta, porque vejo muitos projetos usarem essa abordagem para pegar alguma versão do kernel e modificá-la para caber em sua placa. O que eu estaria interessado em, é:

  1. Por que modificar o kernel do linux em vez de criar um módulo do kernel?
  2. O que pode ser feito se eu precisar executar um kernel mais novo, mas não obtenho nenhum suporte do fornecedor (os drivers de dispositivo devem funcionar em versões mais recentes do kernel ...)
por Benjamin Tamási 06.11.2016 / 22:44

1 resposta

3

Esta questão tem muitas suposições.

Aqui estão algumas razões.

A interface do kernel é não estável, portanto, um módulo para uma versão pode não ser compilado para uma versão diferente.

O kernel não pode expor um recurso necessário.

O kernel pode expor um recurso necessário, mas não de uma maneira aceitável, por exemplo, exigindo que o módulo tenha uma licença específica.

As pessoas que escreveram o código acharam mais rápido escrever o código dessa maneira.

Quanto às suas opções, se você precisar de um kernel mais novo.

  1. encontre alguém que já tenha portado o código
  2. portar você mesmo
  3. pague alguém para transportá-lo (pode não precisar de dinheiro, cerveja, bajulação e curiosidade podem funcionar).
por 06.11.2016 / 23:48