Pesquisa de site

Kernel 3.16 lançado - compilar e instalar no Debian GNU/Linux


Kernel é o núcleo de qualquer sistema operacional. A função principal do kernel é atuar como mediador entre Aplicativo – CPU, Aplicativo – Memória e Aplicativo – Dispositivos (E/S). Funciona como Gerenciador de Memória, Gerenciador de Dispositivos e atende chamadas do Sistema além de realizar outras tarefas.

Para Linux, o Kernel é o seu coração. O Kernel Linux é lançado sob Licença Pública Geral GNU. Linus Torvalds desenvolveu o Kernel Linux no ano de 1991 e veio com a versão inicial do Kernel 0.01. Em 3 de agosto de 2014 (este ano) o Kernel 3.16 foi lançado. Nestes 22 anos, o kernel Linux teve muito desenvolvimento. Agora existem milhares de empresas, milhões de desenvolvedores independentes contribuindo para o Kernel Linux.

Uma estimativa aproximada das grandes marcas e sua contribuição para o atual Kernel Linux, que deverá ter 17 milhões de linhas de código, de acordo com a Linux Foundation, Linux Kernel Development Report.

  1. Chapéu Vermelho – 10,2%
  2. Intel – 8,8%
  3. Instrumentos Texas – 4,1%
  4. Linaro – 4,1%
  5. SUSE – 3,5%
  6. IBM – 3,1%
  7. Samsung – 2,6%
  8. Google – 2,4%
  9. Sistemas de gravação de visão – 2,3%
  10. Microeletrônica Wolfson – 1,6%
  11. Oráculo – 1,3%
  12. Broadcom – 1,3%
  13. Nvidia – 1,3%
  14. Escala livre – 1,2%
  15. Tecnologia Ingics – 1,2%
  16. Cisco – 0,9%
  17. Fundação Linux – 0,9%
  18. AMD – 0,9%
  19. Acadêmicos – 0,9%
  20. NetAPP – 0,8%
  21. Fujitsu – 0,7%
  22. paralelos – 0,7%
  23. ARM – 0,7%

Setenta por cento do desenvolvimento do kernel é feito por Desenvolvedores, que trabalham em empresas e são pagos para isso, parece interessante?

O Linux Kernel 3.16 foi lançado para indivíduos e empresas em ambiente de produção, que atualizarão seu kernel por vários motivos, alguns dos quais incluem.

  1. Patches de segurança
  2. Melhoria de estabilidade
  3. Drivers atualizados – Melhor suporte ao dispositivo
  4. Melhoria na velocidade de processamento
  5. Funções mais recentes, etc.

Este artigo tem como objetivo atualizar o kernel Debian, do jeito Debian, o que significa menos trabalho manual, menos riscos, mas com perfeição. Também atualizaremos o kernel do Ubuntu na parte posterior deste artigo.

Etapa 1: baixando o kernel 3.16

Antes de prosseguirmos, devemos saber sobre nosso kernel atual, que está instalado.

avi@tecmint:~$ uname -mrns 

Linux tecmint 3.14-1-amd64 x86_64

Sobre opções:

  1. -s : Imprimir sistema operacional ('Linux', aqui).
  2. -n : Imprime o nome do host do sistema (‘tecmint’, aqui).
  3. -r : Imprimir versão do kernel (‘tecmint 3.14-1-amd64’, aqui).
  4. -m : Imprimir conjunto de instruções de hardware (‘x86_64’, aqui).

Baixe o kernel estável mais recente no link abaixo. Não se confunda com o link de download de patches lá. Baixe aquele que diz claramente – “ÚLTIMO KERNEL ESTÁVEL”.

  1. https://www.kernel.org/

Alternativamente você pode usar wget para baixar o kernel, o que é mais conveniente.

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.xz

Etapa 2: verificar a assinatura do Kernel 3.16

Após a conclusão do download e antes de prosseguirmos, é altamente recomendável verificar a assinatura do kernel.

avi@tecmint:~/Downloads$ wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.16.tar.sign

A verificação da assinatura precisa ser feita em um arquivo descompactado. Isso exige uma assinatura em vários formatos de compactação, a saber, .gz, .bz2, .xz.

Em seguida, descompacte a imagem do kernel do Linux.

avi@tecmint:~/Downloads$ unxz linux-3.16.tar.xz

Verifique-o contra a assinatura.

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

Nota: Se o comando acima lançar gpg: Não é possível verificar a assinatura: erro de chave pública não encontrada. Isso significa que precisamos baixar a chave pública manualmente do servidor PGP.

avi@tecmint:~/Downloads$ gpg --recv-keys  00411886

Após baixar a chave, verifique a chave novamente.

avi@tecmint:~/Downloads$ gpg --verify linux-3.16.tar.sign

Você notou duas coisas sobre a verificação da chave GPG.

  1. gpg: Boa assinatura de “Linus Torvalds <[email >”.
  2. Impressão digital de chave primária: ABAF 11C6 5A29 70B1 30AB E3C4 79BE 3E43 0041 1886 .

Nada para se preocupar com a impressão digital da chave, agora temos certeza de que o arquivo está OK e assinado. Vamos em frente!

Etapa 3: instalação dos pacotes necessários

Antes de prosseguirmos e começarmos a construir o kernel, precisamos instalar certos pacotes para facilitar a construção do kernel e o processo de instalação e fazê-lo da maneira Debian sem riscos.

Instale libcurse5-dev, fakeroot e pacote kernel.

avi@tecmint:~/Downloads$ sudo apt-get install libncurses5-dev
avi@tecmint:~/Downloads$ sudo apt-get install fakeroot
avi@tecmint:~/Downloads$ sudo apt-get install kernel-package

Etapa 4: Construindo o Kernel 3.16

Após a instalação bem-sucedida dos pacotes acima, estamos prontos para construir o kernel. Vá para a imagem extraída do kernel do Linux (extraímos acima, durante a verificação da assinatura).

avi@tecmint:~/Downloads$ cd linux-3.16/

Agora é importante copiar a configuração atual do kernel para apresentar o diretório de trabalho como usuário root.

cp /boot/config-'uname -r' .config

Ele está copiando /boot/config-'uname -r' para o diretório de trabalho atual “/home/avi/Downloads/linux-3.16 ” e salvando-o como '.config'.

Aqui ‘uname -r‘ será automaticamente substituído e processado pela versão do kernel atualmente instalada.

Como um arquivo de ponto não pode ser visto da maneira normal, você precisa usar a opção ‘-a‘ com ls para visualizar isso, em seu diretório de trabalho atual’.

ls -al

Existem três maneiras de construir um kernel Linux.

  1. make oldconfig : É uma forma interativa na qual o kernel pergunta, um por um, o que deve suportar e o que não deve. É um processo muito demorado.
  2. make menuconfig : É um sistema baseado em menu de linha de comando onde o usuário pode ativar e desativar uma opção. Requer a biblioteca ncurses, portanto, adaptamos isso acima.
  3. make qconfig/xconfig/gconfig : É o sistema baseado em menu gráfico onde o usuário pode ativar e desativar uma opção. Requer biblioteca QT.

Obviamente usaremos ‘make menuconfig‘.

Com medo de construir o kernel? Você não deveria estar. É divertido, há muitas coisas que você aprenderá. Você deve ter em mente o seguinte.

  1. Suas necessidades de hardware e drivers apropriados.
  2. Escolha novos recursos enquanto você mesmo constrói o kernel, como - suporte de alta memória.
  3. Otimizar kernel – selecione apenas os drivers necessários. Isso irá acelerar seu processo de inicialização. Se você não tiver certeza de nenhum driver, é melhor incluí-lo.

Agora, execute o comando ‘make menuconfig’.

make menuconfig

Importante: Você deve escolher “SELECT – ENABLE LOADABLE MODULE SUPPORT“, se você esquecer de fazer isso, você terá momentos difíceis .

Nota: Nas janelas de configuração abertas você pode configurar várias opções para sua placa de rede, bluetooth, Touchpad, placa gráfica, suporte a sistema de arquivos como NTFS e muitas outras opções.

Não há tutorial para orientá-lo sobre o que você deve selecionar e o que não. Você só sabe disso pesquisando, estudando coisas na web, aprendendo com os tutoriais do tecmint e de todas as outras maneiras possíveis.

Você pode ver que existe uma opção de hacking do kernel. Hackear? Sim! Aqui significa exploração. Você pode adicionar várias opções ao hack do kernel e utilizar muitos recursos.

Em seguida, selecione Opções de driver genérico.

Suporte a dispositivos de rede.

Suporte a dispositivos de entrada.

Carregue o arquivo de configuração (.config), que salvamos em /boot/config-`uname –r`.config.

Clique em OK, salve e saia. Agora limpe a árvore de origem e redefina os parâmetros do pacote do kernel.

make-kpkg clean

Etapa 5: Compilando o Kernel 3.16

Antes de começarmos a compilar o kernel, precisamos exportar CONCURRENCY_LEVEL. O NÍVEL DE CONCORRÊNCIA geral tem uma regra para adicionar o Numérico 1 aos núcleos do kernel. Se você tiver 2 núcleos, exporte CONCURRENCY_LEVEL=3. Se você tiver 4 núcleos, exporte CONCURRENCY_LEVEL=5.

Para verificar os núcleos do processador, você pode usar o comando cat conforme mostrado abaixo.

cat /proc/cpuinfo
Saída de amostra
Sample Output
processor	: 0 
vendor_id	: GenuineIntel 
cpu family	: 6 
model		: 69 
model name	: Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz 
stepping	: 1 
microcode	: 0x17 
cpu MHz		: 799.996 
cache size	: 3072 KB 
physical id	: 0 
siblings	: 4 
core id		: 0 
cpu cores	: 2 
apicid		: 0 
initial apicid	: 0 
fpu		: yes 
fpu_exception	: yes 
cpuid level	: 13 
wp		: yes

Você vê a saída acima, eu tenho 2 núcleos, então exportaremos 3 núcleos conforme mostrado abaixo.

export CONCURRENCY_LEVEL=3

Definir CONCURRENCY_LEVEL correto irá acelerar o tempo de compilação do kernel.

fakeroot make-kpkg --append-to-version "-tecmintkernel" --revision "1" --initrd kernel_image kernel_headers

Aqui 'tecminkernel' é o nome da compilação do kernel, pode ser qualquer coisa, desde seu nome, seu nome de host, seu nome de animal de estimação ou qualquer outra coisa.

A compilação do kernel leva muito tempo dependendo dos módulos que estão sendo compilados e do poder de processamento da máquina. Até o momento da compilação, veja algumas das perguntas frequentes sobre a compilação do kernel.

perguntas frequentes

Q1. Meu kernel está sendo compilado há muito tempo. Isso é normal.
Q2. Se eu interromper o kernel durante a compilação, preciso começar tudo de novo?
Q3. Os arquivos compilados podem ser usados em sistemas diferentes para atualizar o kernel?
Q4. Você hospedará seu arquivo compilado?
Q5. Tenho pacotes como fakeroot e ncurses5-dev em meu repositório?
Q6. Serei capaz de inicializar no último kernel, depois de instalar o kernel mais recente.
P7. Estou enfrentando problemas na atualização do kernel. Você vai me ajudar? É cobrado?
Q8. Minha empresa enfrenta problemas na atualização do Kernel. Sua equipe nos ajudará? É cobrável?

Esse é o fim do FAQ, deixe-me prosseguir com o processo de compilação. Após a compilação bem-sucedida do kernel, ele cria dois arquivos (pacote Debian), um diretório ‘acima’ do nosso diretório de trabalho atual.

Nosso diretório de trabalho atual é.

/home/avi/Downloads/linux-3.16/

Os pacotes Debian são criados em.

/home/avi/Downloads

Para verificar isso, execute os seguintes comandos.

cd ..
ls -l linux-*.deb

Em seguida, execute o arquivo de imagem do Linux criado.

dpkg -i linux-image-3.16.0-tecmintkernel_1_amd64.deb

Execute o arquivo de cabeçalho do Linux assim criado.

dpkg -i linux-headers-3.16.0-tecmintkernel_1_amd64.deb

Tudo feito! Construímos, compilamos e instalamos com sucesso o Kernel Linux 3.16 mais recente no Debian com todas as outras dependências. Além disso, o pacote Debian conseguiu atualizar o bootloader (GRUB/LILO), automaticamente. É hora de reiniciar e testar o kernel mais recente.

Certifique-se de observar qualquer mensagem de erro que você possa receber durante a inicialização. É importante entender esse erro para resolvê-los, se houver.

reboot

Assim que o Debian iniciar novamente, clique em ‘Opção avançada‘ para ver uma lista de kernels disponíveis e instalados.

Veja uma lista de kernels instalados.

Selecione o kernel compilado mais recente (ou seja, 3.16) para inicializar.

Verifique a versão do kernel.

uname -mrns

O mais recente, instalado agora, está configurado para inicializar automaticamente e você não precisa escolhê-lo sempre nas opções avançadas de inicialização.

Etapa 6: Instale o kernel pré-compilado 3.16

Para aqueles que não desejam compilar seu próprio kernel no Debian (x86_64) e desejam usar o kernel pré-compilado que construímos neste tutorial, podem baixá-lo no link abaixo. Este kernel pode não funcionar para alguns dos hardwares que você possui.

  1. linux-image-3.16.0-linux-console.net_kernel_1_amd64.deb
  2. linux-headers-3.16.0-linux-console.net_kernel_1_amd64.deb

Em seguida, instale o kernel pré-compilado usando o seguinte comando.

dpkg -i linux-image-3.16.0-linux-console.net_kernel_amd64.deb
dpkg -i linux-headers-3.16.0-linux-console.net_kernel_amd64.deb

O kernel não utilizado pode ser removido do sistema usando o comando.

apt-get remove linux-image-(unused_version_number)

Cuidado: Você deve remover o kernel antigo após testar completamente o kernel mais recente. Não tome uma decisão com pressa. Você só deve prosseguir se souber o que está fazendo.

Se você fez algo errado ao remover o kernel que deseja, ou removeu o kernel que não deveria, seu sistema estará em um estágio no qual você não poderá trabalhar.

Após desinstalar um kernel não utilizado, você poderá receber uma mensagem como.

  1. O link /vmlinuz é um link danificado.
  2. Removendo link simbólico vmlinuz.
  3. Pode ser necessário executar novamente o carregador de inicialização [grub].
  4. O link /initrd.img é um link danificado.
  5. Removendo o link simbólico initrd.img .
  6. Pode ser necessário executar novamente o carregador de inicialização [grub].

Isso é normal e você não precisa se preocupar. Basta atualizar seu GRUB usando o seguinte comando.

/usr/sbin/update-grub

Pode ser necessário atualizar seu arquivo /etc/kernel-img.conf e desabilitar ‘do_symlinks’, para desabilitar essas mensagens. Se você conseguir reiniciar e fazer login novamente, não há problema.

É tudo por agora. Estarei aqui novamente com outro artigo interessante. Até então fique ligado e conectado à Tecmint. Não se esqueça de nos fornecer seus valiosos comentários na seção de comentários abaixo. Conte-nos também sua experiência ao encontrar a compilação e instalação do Kernel.

Leia também :

  1. Instale o Kernel 3.16 no Ubuntu
  2. Compile e instale o Kernel 3.12 no Debian Linux