Este post demonstra como instalar as dependências, baixar as fontes, alterar uma configuração, compilar e instalar um novo Kernel Linux em uma instalação básica do CentOS 5 em modo Server.
A alteração que vamos fazer no Kernel, na prática não irá afetar praticamente nada nele, pois apenas insere no texto de release um valor personalizado. Entretanto é uma alteração simples e segura para ser usada num tutorial que dedica-se a mostrar como é realizada a compilação do Kernel.
Para saber mais sobre a instalação do CentOS utilizada neste, visite o post Instalar Linux CentOS pela rede (ISO netinstall) no Oracle VirtualBox.
Vejamos:
- É preciso certificar-se que algumas dependências estão resolvidas, caso não estejam o comando yum irá resolver e instala-las automaticamente:
yum install gcc ncurses-devel rpm-build make wget
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.1.tar.bz2
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2
tar jxvf linux-2.6.19.1.tar.bz2 -C /usr/src
tar jxvf linux-2.6.19.tar.bz2 -C /usr/src
ln -sf /usr/src/linux-2.6.19.1/ /usr/src/linux
ln -sf /usr/src/linux-2.6.19/ /usr/src/linux
Entre na pasta das fontes:
cd /usr/src/linux
make clean && make mrproper
cp /boot/config-&(uname -r) .config
make menuconfig
Na tela principal da configuração do Kernel, use as setas para selecionar General Setup e pressione [Enter]:
Em General Setup selecione Local version – append to kernel release:
Digite o texto a ser adicionado e pressione [TAB] para selecionar :
Observe entre parênteses o texto adicionado no parâmetro e selecione usando o [TAB]:
Para encerrar a configuração, selecione novamente:
Sempre ao sair das configurações do Kernel você vai precisar confirmar se quer ou não salvar as alterações. Selecione para salvar:
make rpm
Aguarde o fim da compilação e empacotamento, no final dentre as ultimas mensagens haverá uma que indica onde o pacote RPM foi gerado. A mensagem será parecia com esta:
... Gravou: /usr/src/redhat/RPMS/i386/kernel-2.6.19.1composta.el5-1.i386.rpm ...
rpm -ivh /usr/src/redhat/RPMS/i386/kernel-2.6.19.1composta.el5-1.i386.rpm
mkinitrd /boot/initrd-2.6.19.1-composta.el5.img 2.6.19.1-composta.el5
vi /boot/grub/grub.conf
Neste arquivo vamos inserir as informações do novo Kernel, para fazer esta alteração sem problema, primeiro repita toda a configuração de boot do Kernel atual e depois apenas altere a versão nas linhas da configuração do bloco de cima:
Exemplo de arquivo antes de qualquer alteração:
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-238.el5) root (hd0,0) kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18-238.el5.img
Repetimos o bloco de configuração de boot do Kernel atual:
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-238.el5) root (hd0,0) kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18-238.el5.img title CentOS (2.6.18-238.el5) root (hd0,0) kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18-238.el5.img
Altere apenas a versão no primeiro bloco de configuração:
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.19.1-composta.el5) root (hd0,0) kernel /vmlinuz-2.6.19.1-composta.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.19.1-composta.el5.img title CentOS (2.6.18-238.el5) root (hd0,0) kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet initrd /initrd-2.6.18-238.el5.img
init 6
Vídeo Post: clique para assistir ao vídeo que testa este tutorial.
Pergunta enviada por: davemport
Thiago, sugiro utilizar pacotes RPM, se for uma distro baseada no CentOS 5 baixe deste link:
http://mirror.centos.org/centos/5/os/i386/CentOS/
Uma opção mais interessante é baixar o DVD do CentOS e adicioná-lo como repositório local do seu sistema, assim tu podes usar os comandos como descritos neste post, com exceção para o comando “wget” que terá de ser feito em outro computador com acesso a internet.
Para adicionar o DVD do CentOS como repositório faça o seguinte:
Adicione neste arquivo as linhas a seguir:
Caso já exista este arquivo, certifique-se que a opção enabled está igual a 1
Depois instale os pré-requisitos para compilar o kernel com o comando a seguir:
CurtirCurtir