Autor Tópico: Compilando o Kernel Linux sem o Git! - Tópico em desenvolvimento  (Lida 24983 vezes)

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel Linux sem o Git! - Tópico em desenvolvimento
« Resposta #45 Online: 28 de Outubro de 2011, 10:45 »
ADepois de ler e estudar razoavelmente (acho que ainda é pouco...) comecei a compilação.
Com objetivo de aprendizado estou fazendo com o pacote linux-source-3.0.0 da mesma versão do kernel genérico e do headers que uso. Estou fazendo pelo processo tradicional (make -j4...).

Segui o tutorial do menuconfig http://kernel-seeds.org/settings-01.html , mas, tem muita coisa que tem que ser na base da intuição... O que fiz foi usar o lsmod e procurar um a um na busca do xconfig e analisar.

No meu caso, por exemplo, tenho um módulo eeepc_laptop carregado, mas esse módulo não aparece como opção de ativação (aparece em cinza claro, com descrição, mas sem opção de marcação. Além disso, comparando com o hardwre que tenho, desmarquei suportes a itens de hardware que eu tinha certeza que não tinha no netbook, como pcmcia, nvidia, nforce, ati, cyrrus logic...

Como essa é a minha primeira experiência, gostaria de saber como eu poderia refazer o processo depois de concluída a compilação. Preciso apagar alguma coisa?

Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel Linux sem o Git! - Tópico em desenvolvimento
« Resposta #46 Online: 28 de Outubro de 2011, 18:27 »
Acabei de concluir o processo de compilação, pelo método tradicional e pelo linux-source. No boot apareceu uma mensagem de erro e depois de um tempo o sistema subiu. Até pensei que tivesse falhado e carregado o kernel genérico, mas ao conferir no monitor do sistema percebi que não.

Com o kernel compilado, seguindo as instruções do tutorial do galactus, com edição do arquivos de configuração do kernel (march=native e mtune=generic) e com mudança da latência para 1000 e do processador para atom, não percebi diferença no desempenho.

Logicamente, acredito que a questão esteja relacionada à configuração no xconfig (menuconfig) e aos patches. No caso, como primeira experiência, queria observar o que mudaria apenas com as configurações, já que compilei a mesma versão do kernel que uso.
Eu esperava mais.

Edit: Pelo procedimento tradicional, com make, make modules, cp arch/i386/bzImage /boot/vmlinuz-x.xx.xx e make modules_install, o kernel é colocado direto para o carregamento no diretório boot. No entanto, esse kernel não aparece como instalado no sistema.

Se eu quiser tentar novamente, como faço para removê-lo?
Não sei se realizar o mesmo procedimento usando o make-kpkg traria alguma diferença, mas pelo menos já posso contar para os meus netos e bisnetos que compilei com sucesso o kernel linux para ubuntu. (Na desciclopédia esse procedimento é citado como épico...) Brincadeiras à parte, não percebi um resultado que valesse o esforço, com a mera otimização do kernel ubuntu.

Vamos ver o que consigo com o kernel vanilla...
« Última modificação: 28 de Outubro de 2011, 18:47 por xluisfernando »
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel Linux sem o Git! - Tópico em desenvolvimento
« Resposta #47 Online: 28 de Outubro de 2011, 19:18 »
Estudando o procedimento para compilação de kernel no ubuntu e no debian, acredito que estou começando a entender a diferença. No ubuntu, todos os tutoriais que encontrei até agora seguem um procedimento de compilação a partir do kernel vanilla, com e sem a aplicação dos patches. Já no debian, além desse procedimento, existe a opção de se compilar a partir do pacote linux-source da mesma versão do kernel instalado.

Procuro entender bem a teoria do que estou fazendo antes de colocá-la em prática.

Tentei o procedimento linux-source no ubuntu 10.04LTS e não deu certo. Nos textos que encontrei sobre compilação por linux-source, para debian, existe a necessidade de se instalar o pacote linux-kbuild da mesma versão. Porém, consultando o synaptic, esse pacote não aparece para o ubuntu 10.04LTS. O que aparece é chamado kbuild (não sei se seria a mesma coisa).

Outra diferença que percebi é que no procedimento linux-source o comando para compilação não possui o complemento do kpkg e os módulos são instalados depois.

Então:

1) Alguém aqui no fórum já compilou o kernel a partir do pacote linux-source no ubuntu?

2) Por que devemos criar o link simbólico linux para o diretório em que a fonte do kernel foi desempacotada?

Lendo sobre compilação...também..vejo que basicamente existem duas formas:

A forma tradicional, ou seja, make | make modules | make modules_install e criar initramfs e update grub e em alguns casos copiar o arquivo vmlinuz para a pasta boot já compilei assim no ubuntu e foi tranquilo

E tem a forma Debian, ou seja, make-kpkg onde tudo é automatizado e final você tem o arquivo .deb

E a criação do link simbolico parece que é algo "arcaico" totalmente desnessário hoje, servia somente para kernel 2.4 para baixo..pois todas minhas compilações não faço mais o link simbolico.

A compilação do kernel é complexa...se você for pesquisar..a cada minuto encontra formas diferentes ditas como a mais correta..já encontrei na net uma que diz que antes do make-kpkg deve-se fazer o comando make localmodconfig, tentei fazendo isso e deu erros na hora da compilação.

Muitos tutos dizem que é obrigatório o uso do make-clean e/ou make-kpkg clean, porém, pesquisanndo mais..é algo opcional usando somente em casos de compilações mal sucedidas..

Então man..quanto mais voce pesquisar..mais terá dúvidas...hoje minha compilação que faço e a seguinte:

não crio link simbolico e uso o Debian Way: make-kpkg --initrd --append-to-version kernel_image kernel_headers

Sobre a questão do link simbólico, achei uma referência num tutorial para debian http://www.forum-invaders.com.br/vb/showthread.php/28067-Kernel-Compila%C3%A7%C3%A3o-Empacotamento! Segundo o autor, o motivo é que "muitas coisas que vc precisa compilar, os programas buscarão os "headers" do kernel, apontando para este diretório, como por exemplo, o Script de instalação do módulo proprietário da Nvidia"

Eu fiz minha primeira compilação sem o link simbólico e percebi que no carregamento apareceu um erro de carregamento de módulo. Talvez, o referido módulo não tenha sido compilado corretamente por causa disso.
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline Metalbobolic

  • Usuário Ubuntu
  • *
  • Mensagens: 215
    • Ver perfil
    • Seu Lugar para pensar
Re: Compilando o Kernel Linux sem o Git! - Tópico em desenvolvimento
« Resposta #48 Online: 28 de Outubro de 2011, 22:08 »
Eu também achei essa resposta sobre link simbolico...

Porém, o kernel evolui e consigo, a forma de compilação, que por exemplo, apartir do 2.6, deixou de ser necessário usar o comando make install e creio que linkar para o diretorio linux, também..pois..antes de ontem, compilei o kernel 3.1-rc4, com os patches para o kernel 3.1 final do ubuntu 11.10, da maneira tradicional e sem linkar para o diretorio linux e foi sem nenhum erro, somente avisos..

Outra coisa que notei..que a maneira tradicional é mais lenta, do que a debian way.....

Detalhe..eu compilo o kernel quase todos os dias..pois, vou tirando e acrescendo funções e/ou buult in aos poucos..assim sem onde errei, caso o kernel não compile....


Offline xluisfernando

  • Usuário Ubuntu
  • *
  • Mensagens: 848
  • Linux user #532810
    • Ver perfil
Re: Compilando o Kernel Linux sem o Git! - Tópico em desenvolvimento
« Resposta #49 Online: 28 de Outubro de 2011, 23:57 »
No meu caso, com processador atom, demorou bem mais que uma hora. Aparentemente, simplesmente compilar o kernel do ubuntu para otimização do hardware não resulta em um desempenho que justifique o trabalho. Mesmo usando as dicas de configuração dos Makefiles, do march=native, o resultado ficou abaixo do que eu esperava.

Talvez, escolhendo os patches certos e compilando o kernel vanilla, o resultado seja diferente.
Samsung Ativ Book i3 - Ubuntu 20.04LTS

Offline Metalbobolic

  • Usuário Ubuntu
  • *
  • Mensagens: 215
    • Ver perfil
    • Seu Lugar para pensar
Re: Compilando o Kernel Linux sem o Git! - Tópico em desenvolvimento
« Resposta #50 Online: 29 de Outubro de 2011, 00:12 »
No meu caso, com processador atom, demorou bem mais que uma hora. Aparentemente, simplesmente compilar o kernel do ubuntu para otimização do hardware não resulta em um desempenho que justifique o trabalho. Mesmo usando as dicas de configuração dos Makefiles, do march=native, o resultado ficou abaixo do que eu esperava.

Talvez, escolhendo os patches certos e compilando o kernel vanilla, o resultado seja diferente.

Mais recompilar o kernel, a principio, é boa pratica, não para aumento de desempenho, mias principalmente para adequa-lo ao seu hardware..

Offline Metalbobolic

  • Usuário Ubuntu
  • *
  • Mensagens: 215
    • Ver perfil
    • Seu Lugar para pensar
Re: Compilando o Kernel Linux sem o Git! - Tópico em desenvolvimento
« Resposta #51 Online: 30 de Outubro de 2011, 18:33 »
Nesse link, tem outras opções interessantes de compilação

http://newbiedoc.sourceforge.net/system/kernel-pkg.html