Kernel for Newbies - Fácil Assistente de Compilação do Kernel

Publicado por Perfil removido em 02/05/2012

[ Hits: 8.014 ]

 


Kernel for Newbies - Fácil Assistente de Compilação do Kernel



Esta dica é uma atualização da dica anterior:
'Kernel for Newbies' é um Script de código aberto, que consiste num assistente onde o usuário insere pouquíssimas informações para construir seu próprio Kernel.

Ele foi desenvolvido para ser simples!

Como se não bastasse apenas compilar, 'Kernel for Newbies' também baixa e instala as dependências necessárias no sistema, se o usuário permitir.

Você entra com a versão do Kernel e qual interface de configuração deseja usar e pronto!

O Script baixa o código fonte direto de kernel.Org, ou de outro local desejado, e faz todo o resto (compilação, instalação, instalação de módulos, atualização do GRUB, atualização do initramfs, etc).

'Kernel for Newbies' é desenvolvido para o Debian e seus derivados, como Ubuntu e Linux Mint, e pode ser usado em Desktop, Notebooks, Netbooks, sistemas embarcados e até em Linux para PlayStation 3.

Adicionalmente, pode ser usado diretamente em ambientes que operam somente em modo terminal, mas você também pode utilizá-lo no conforto de um ambiente gráfico.

Porque usar o Kernel for Newbies?

Sou fanático por Linux e procuro sempre testar a versão mais recente do Kernel. Não gosto de esperar os lançamentos oficiais do Kernel da minha distribuição.

Em certos casos, algumas distribuições não possuem mais atualizações oficiais, por serem antigas. KFN é uma alternativa livre e aberta para atualizar o 'cérebro' do seu sistema. KFN é desenvolvido usando diálogos amigáveis, podendo ser usado desde os iniciantes no mundo do Linux até para os experts.

Instruções de Instalação

1. Baixe a versão mais recente do "kfn.sh": https://sourceforge.net - kfn

2. Dê permissão de execução:

chmod 777 kfn.sh

3. Copie para "/usr/local/bin/":

sudo cp kfn.sh /usr/local/bin/kfn

Modo de Uso

* Sempre que iniciar, o 'Kernel for Newbies' irá verificar se existe dependências em falta. É altamente recomendável que você o permita instalar as dependências.

1. Execute o KFN:

sudo kfn

2. Selecione: Iniciar Processos

3. Configure o Kernel do seu jeito.

4. Aguarde a compilação e pronto!

Pronto? Só Isso? Sim! 'Kernel for Newbies' é feito para ser simples!

Quer fazer configurações adicionais? Sem problema!

Vamos explicar como funciona os itens principais:

- Versão do Kernel: Nesta função você define a versão do Kernel que você quer compilar. Você pode digitar, ou pode verificar automaticamente a versão mais recente do Kernel:

- Fonte do Pacote: Você pode definir se deseja baixar o código fonte de Kernel.Org, usar uma URL ou usar um pacote local.

- URL/Caminho: Exibe a fonte do código do Kernel. É alterada usando a função anterior.

- Núcleos a serem usados: O KFN detecta automaticamente quantos núcleos seu processador possui e utiliza seu potencial para fazer uma compilação mais rápida.

- Compilar via RAMDISK: Se você possui 8GB de memória RAM (ou mais), e se você possui um sistema 64 bits, você poderá utilizar esta função para compilar o Kernel diretamente na memória RAM!

Você economiza tempo durante a compilação e ainda evita o tráfego de dados no HD, deixando-o livre para executar outras tarefas.

* Nota: esta opção NÃO será habilitada caso você utilize um sistema 32 bits, e se não possue pelo menos 8GB de memória RAM, entretanto, a compilação será feita diretamente no HD.

- Comando ao terminar: Você pode definir ao sistema se deseja executar um comando quando a compilação terminar, como desligar o PC, reiniciar ou definir um comando customizado.

É útil para quem deseja deixar o PC compilando o kernel e programá-lo para desligar quando terminar a compilação, ou reiniciar automaticamente usando o novo Kernel.

- Plataforma: O KFN é preparado para atualizar o Bootloader, tanto para dispositivos que usem GRUB, como computadores convencionais, e dispositivos que utilizam o Kboot, como dispositivos embarcados e consoles, como PlayStation 3.

Caso seu dispositivo não trabalhe com GRUB, é indispensável que você selecione a opção 'PlayStation 3 / kboot' para que o Bootloader seja configurado corretamente.

- Modo de configuração: Neste item, você define qual interface que utilizará para configurar seu Kernel, podendo utilizar o "menuconfig" (modo texto) ou, "xconfig" (modo gráfico).

* Lembre-se de salvar as alterações antes de sair!

- Verificar atualização: Esta função verifica 2 coisas:
  • Versão mais recente do Kernel
  • Versão mais recente do KFN

Ao selecionar esta função, o Script irá definir a versão do Kernel a ser trabalhada como a versão mais recente disponível.
- Performance (CFLAGS): Recomendável apenas para experientes em programação e em compilação.

Esta função pode otimizar o Kernel para melhor desempenho com seu processador, mas isso deverá ser usado com cuidado, pois você deverá saber seu modelo de processador para determinar a melhor configuração.

Uma dica é consultar a marca/modelo de seu processador usando o seguinte comando:

cat /proc/cpuinfo

Um exemplo pode ser visto na imagem abaixo, o comando acima mostrou que o processador de tal máquina é um AMD Phenom X4. Você pode selecionar uma configuração compativel no item: Performance (CFLAGS)
Citação do KFN:
" Atenção: o uso INCORRETO de CFLAGS para seu processador pode causar problemas na compilação do Kernel, tornando-o instável ou até mesmo inoperável. O uso CORRETO de CFLAGS pode proporcionar grande ganho de desempenho em diversos casos. "

- Iniciar processos: É aqui que é feita toda a mágica!

O KFN irá baixar, extrair, configurar, compilar e atualizar seu kernel e seu Bootloader. Ao terminar, reinicie sua máquina para aproveitar seu novo Kernel!

O tempo total de compilação pode variar dependendo do Hardware. Você pode conferir uma estimativa do tempo nos links abaixo.

Dicas de Uso

  • Verifique, ocasionalmente, se existe uma nova versão do KFN.
  • O Kernel é instalado como pacote ".deb".
  • Recomenda-se ter, aproximadamente, 7 GB livres em disco para arquivos temporários de compilação + 200MB de espaço livre para a instalação de possíveis dependências necessárias.
  • Não recompile um kernel já instalado. Recomenda-se remover o kernel antes de recompilá-lo.

* Você pode removê-lo (desde que não seja o kernel em execução) usando os seguintes comandos:

sudo apt-get remove linux-headers-x.x.x-kfn (Onde 'x.x.x' é a versão do kernel compilado)
sudo apt-get remove linux-image-x.x.x-kfn (Onde 'x.x.x' é a versão do kernel compilado)

Exemplo:

sudo apt-get remove linux-headers-3.3.3-kfn
$ sudo apt-get remove linux-image-3.3.3-kfn


- Observações:
  • O Kernel compilado com o KFN não substitui um kernel da distribuição de mesma versão.
  • Para identificar um Kernel compilado com o KFN no Bootloader, o mesmo possui a extensão "-kfn" no final da versão.
  • KFN conta com o recurso de acelerador de Downloads e utilização de CFLAGS (para otimização de desempenho) a partir da versão 1.4.

Referências

- Créditos:

João Guilherme C. (motomagx) pela elaboração do Script e desta dica.
Agradecimentos à galera do Viva o Linux!
Um grande abraço, de Motomagx!
Conte-nos sobre sua experiência com KFN!

Agradecimentos ao usuário Leandro do VOL pela sua contribuição por indicar uma dica de Edinaldo P. Silva.


- Links úteis:
- Créditos adicionais:

Outras dicas deste autor

Para que servem os serviços iniciados com o sistema

Montando partições durante a inicialização

Configurando sua impressora no Slack 10

Instalando o FreeOffice no Fedora

Crash do LibreOffice Impress 3.6 [Resolvido]

Leitura recomendada

Shell Script nosso de cada dia - Episódio 4

Script para o netfilter (iptables)

Criando códigos de barra sequenciais usando Shell Script e PHP

Adicionando/Removendo módulos na blacklist através de um script

Shell script com Kdialog

  

Comentários
[1] Comentário enviado por evaldoavelar em 02/05/2012 - 12:16h

Excelente artigo motomagx! Parabéns! Com certeza irá ajudar muita gente. Está ferramenta irá facilitar muito as coisas.

[2] Comentário enviado por asdf2 em 02/05/2012 - 22:36h

Po**a cara, massa demais seu script, muito bem feito, valeu

fiz um script também aqui, mas bem mais simples:

http://sourceforge.net/projects/scriptkernel/

esse compila com cflags march=native + Ofast + BFS

[3] Comentário enviado por removido em 02/05/2012 - 23:48h

obrigado pela compreensão, asdf2 e evaldoavelar!

já ao asdf2, eu pensei em utilizar o cflags march=native, porém, de acordo com a Wiki do Gentoo, ele só é recomendável pra quem usa AMD e Intel, ja no meu caso, como tenho acesso a um processador IBM PowerPC (CELL do PS3), essa função seria perigosa, oferecendo um certo perigo ao compilar o kernel, mas é possível que eu a implemente sim na próxima versão :)

http://en.gentoo-wiki.com/wiki/Safe_Cflags

uma coisa bem interessante que notei em seu script são os patches, se você me permitir coloco em meu script e, claro, coloco créditos a vc :)

so tenho uma preocupação: no seu script, na linha 69-71:

wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.3-precise/0003-default-configs.patch

creio que seria bom manter o $kernel ao invés da versão fixa no link, pois, imagina se o usuário escolhe o kernel 3.3.4 e o patch é incompatível... oO

[4] Comentário enviado por asdf2 em 03/05/2012 - 00:03h

motomagx,

fica a vontade em mudar o que quiser no script cara, ele é GPL-3,

se for por credito a alguém coloca o nome de @Stivekx (foi quem fez a parte mais importante do script).

essa linha aé realmente ficou muito especifica mesmo, tem que ser mudada sim, valeu (já concertado, e já atualizei no sourceforge)

outro problema é que ele só funciona bem com o ubuntu-11.10 64 bits, se testar em uma versão mais antiga vai dar erro (é necessario o gcc-4.6 e sistema de 64 bits)


[5] Comentário enviado por removido em 03/05/2012 - 00:20h

obrigado mano, excelente script! bom trabalho!

[6] Comentário enviado por removido em 03/05/2012 - 00:29h

Simples amostra de funcionamento:
http://www.youtube.com/watch?v=9rbWPQGov1k

[7] Comentário enviado por rudregues em 23/12/2012 - 17:08h

Parabéns pelo script!

Mas comigo aconteceu algo estranho, mandei executar utilizando o kernel que eu baixei e mandei auto-configurar. Quando dei "iniciar processo" ele foi me mandando optar entre diversas opções que eu num fazia a menor idéia do que era. Ex.:

Isa intell px-net [Y|n|?]

Aí eu era obrigado a escolher Y ou n e dar <enter> pra que o processo continuasse. Isso aconteceu incontáveis vezes.

[ ]'s

[8] Comentário enviado por removido em 23/12/2012 - 19:49h


[7] Comentário enviado por rudregues em 23/12/2012 - 17:08h:

Parabéns pelo script!

Mas comigo aconteceu algo estranho, mandei executar utilizando o kernel que eu baixei e mandei auto-configurar. Quando dei "iniciar processo" ele foi me mandando optar entre diversas opções que eu num fazia a menor idéia do que era. Ex.:

Isa intell px-net [Y|n|?]
Aí eu era obrigado a escolher Y ou n e dar <enter> pra que o processo continuasse. Isso aconteceu incontáveis vezes.

[ ]'s


Olá rudregues

Verifiquei e notei o problema. Isso costuma acontecer quando você tenta configurar automaticamente um Kernel no qual o kernel instalado possui muito tempo de diferença do kernel que você quer compilar.
Geralmente, um sistema rodando Kernel 3.4, por exemplo, não consegue configurar automaticamente um kernel 3.7, por exemplo, mas um sistema rodando 3.6.9 consegue configurar um kernel 3.7.1, por exemplo. Isso acontece devido a diferença de instruções no .config, e já estou trabalhando para tentar corrigir isso.

Dica: Selecione a versão do kernel desejado. >> Evite << utilizar a função "configurar automaticamente" (até que uma futura atualização do KFN que corrija esse problema de versões muito diferentes). Realize as configurações desejadas no KFN e selecione "Iniciar Processo".

O KFN irá baixar, extrair e abrir o menuconfig. O terminal irá abrir um menu com o titulo

" .config - Linux/x86_64 3.6.11 Kernel Configuration"

Selecione a opção "Save an Alternate Configuration File" >> ENTER >> ENTER. Você irá voltar ao menu, selecione EXIT para que a compilação seja iniciada.








Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts