How-To :: kernel gentoo-sources no Debian!


E já que vimos como compilar e instalar o kernel gentoo-sources no Funtoo, bem como uma screenshot do mesmo rodando no Debian Jessie 8.4, é chegada a hora de demonstrar a bruxaria necessária para tanto.

Este slideshow necessita de JavaScript.

Instalação.

De “posse” da pasta contendo os sources do kernel a ser utilizado (saudável né, isto é, bootável e funcional), seja ele o gentoo-sources, vanilla-sources, pf-sources, edps-sources ??? ou similar, copie toda a pasta contida geralmente em /usr/src da partição alvo para a pasta /usr/src de sua partição raiz, algo do tipo:

$ sudo cp -a /mnt/funtoo/usr/src/linux-4.6.0-gentoo /usr/src/
cópia dos arquivos e informações do sistema...
cópia dos arquivos e informações do sistema…

Daí, entre no diretório /usr/src, e caso existente, remova o link simbólico linux, atribuindo um novo link para a pasta alvo, como exemplo:

$ cd /usr/src/
$ sudo rm -rf linux
$ sudo ln -sf linux-4.6.0-gentoo linux
$ cd linux

Feito isto, instale o novo kernel assim:

$ sudo make modules_install
ajustes iniciais e instalação do kernel...
ajustes iniciais e instalação do kernel…

Por fim, execute os comandos abaixo para configurá-lo corretamente de modo que o Grub o enxergue, e o mesmo esteja utilizável:

$ sudo cp -av .config /boot/config-4.6.0-gentoo-smp
$ sudo cp -av System.map /boot/System.map-4.6.0-gentoo-smp
$ sudo cp -av arch/x86/boot/bzImage /boot/kernel-4.6.0-gentoo-smp
cópia de arquivos para /boot
cópia de arquivos para /boot

E não menos importante, não esqueça de criar a initrd para o novo kernel:

$ sudo mkinitramfs -o /boot/initrd.img-4.6.0-gentoo-smp /lib/modules/4.6.0-gentoo-smp
criação do arquivo initrd e atualização do Grub
criação do arquivo initrd

Como visto na imagem acima, bastará então, apenas atualizar o Grub para ver se o mesmo enxerga seu novo kernel e reiniciar o sistema:

$ sudo update-grub
$ sudo reboot

Ao reiniciar o sistema, muito provavelmente será esse o kernel padrão (isso se o seu Grub não estiver bugado), o padrão será sempre a versão mais alta do kernel.

Drivers.

Em geral, bastará executar os instaladores de drivers de programas, como os drivers Nvidia e do VirtualBox, mas sabendo que sendo esse a cereja mais fresquinha do bolo, pode ser que ocorra erros como o que tive com a versão instalada do VirtualBox 5.0.16.

falha na reinstalação do VirtualBox
falha na reinstalação do VirtualBox

Para o caso do VirtualBox, bastaria um dos comandos abaixo:

$ sudo /etc/init.d/vboxdrv setup
$ sudo /sbin/rcvboxdrv setup   # comum a maioria das distros

Como ocorreu um erro, restou-me baixar uma versão mais atual do VirtualBox e ver se funciona:/p>

$ wget -nv http://download.virtualbox.org/virtualbox/5.0.20/VirtualBox-5.0.20-106931-Linux_x86.run
$ wget -nv http://download.virtualbox.org/virtualbox/5.0.20/Oracle_VM_VirtualBox_Extension_Pack-5.0.20-106931.vbox-extpack
$ sudo sh VirtualBox-5.0.20-106931-Linux_x86.run
$ wget -nv http://download.virtualbox.org/virtualbox/5.0.20/Oracle_VM_VirtualBox_Extension_Pack-5.0.20-106931.vbox-extpack
$ sudo VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-5.0.20-106931.vbox-extpack
$ sudo adduser $USER vboxusers
$ sudo /etc/init.d/vboxdrv start
instalação da versão mais recente do VirtualBox...
instalação da versão mais recente do VirtualBox…
instalação do pacote de entensão para o VirtualBox...
instalação do pacote de entensão para o VirtualBox…

E pronto!

Máquina virtual "devuan" rodando no Debian.
Máquina virtual “devuan” rodando no Debian.

Ou, em caso de insucesso, aguardar a correção por parte de seus Devs relativa a esse kernel.

Vantagens?

Uma das vantagens que vi em seguir este método, desde o kernel 4.5.1 é a praticidade em não precisar compilar um novo kernel no Debian (embora este já esteja usando o 4.5.0 no Backports), assim, pego a pasta do kernel já compilado no Funtoo e o instalo no Debian.

A outra é a velocidade do boot, que leva os mesmos 37s do Funtoo, carregando meu Debian que é bem mais parrudo de pacotes e serviços que o outro sistema e ainda usa o velho Sysvinit.

Provavelmente, os passos aqui descritos poderão ser executados em qualquer distro, adaptando-os de acordo.

A título de curiosidade, este kernel foi compilado usando o GCC (se não me engano) 4.9.3 no Funtoo, enquanto que no Debian Jessie Backports, o GCC está na versão 5.3.1-5:

versão do GCC instalado e do novo kernel gentoo-sources...
versão do GCC instalado e do novo kernel gentoo-sources…

E tendo dito… fui!

How-To :: kernel gentoo-sources no Debian!

3 comentários sobre “How-To :: kernel gentoo-sources no Debian!

  1. Serph disse:

    Deixa eu ver se eu entendi, seguindo esse passo a passo é possível ter uma versão do Debian 8 sem o systemd? E sem a necessidade de realizar todo aquele trabalho de instalar o Devuan em sua postagem anterior?

    Curtir

    1. Não brother, aqui demonstro apenas como instalar um kernel que fora compilado no Gentoo. Para rodar o Jessie sem o Systemd, você pode (se não quiser seguir tudo aquilo de Devuan) é instalar o velho Sysvinit ou o OpenRC ao lado do Systemd.

      Daí você seleciona a entrada referente ao init escolhido na tela do Grub.

      Para ficar sem o Systemd tem que seguir tudo aquilo mesmo.

      Veja a shot mais recente do Debian rodando sem o Systemd e com este kernel e o init OpenRC do Gentoo:

      Screenshot :: Debian Jessie + OpenRC e kernel gentoo-sources

      O tutorial de instalação do OpenRC:

      How-To :: OpenRC no Debian Jessie

      Curtir

Deixe um comentário