Como compilar kernel 2.6.* no Red Hat 9.0 rápido e fácil.
Colaboração: Ricardo Nunes da Silva
Data de Publicação: 28 de Setembro de 2005
- Baixe o código fonte do kernel ( Este documento foi feito com base no 2.6.12.3 ) em : http://www.kernel.org/pub/linux/kernel/v2.6/
- Instale a última versão do module-init-tools e modutils:
- Baixe o código fonte do module-init-tools em ( utilizei a versão 3.2 ): http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/
- Baixe o código fonte do modutils em ( utilizei 2.4.21 ): http://www.kernel.org/pub/linux/utils/kernel/modutils/v2.4/
- Instalando module-init-tools:
Descompacte o arquivo baixado:
$tar zxvf module-init-tools-3.2-pre9.tar.gz $cd module-init-tools-3.2 $./configure --prefix=/sbin $make $make install
- Instalando modutils:
$rpm -ivh modutils-2.4.27-1.src.rpm $rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec $rpm -Fi /usr/src/redhat/RPMS/i386/modutils-2.4.27-1.i386.rpm
- Instalando e compilando o kernel.
Crie um diretório em /root/ (ou no diretório de
preferência. Evite faze-lo em /usr/src/ ):
$mkdir /root/src/ && mkdir /root/src/kernel
Descompacte o código fonte do kernel:$cp linux.2.6.12.tar.bz /root/src/kernel/ $tar jxvf linux-2.6.12.tar.bz $cd linux-2.6.12
Levando-se em conta que já exista uma versão mais antiga do kernel ( 2.4.20 ), e também seu source, copie o .config desta versão:$cp /usr/src/linux-2.4/.config /root/src/kernel/linux-2.6.12/
Aproveitando as configurações antigas, será escrito um novo .config para compilação do novo kernel:$make oldconfig
Será aberto um dialogo ( está parte é a mais critica e chata), no qual será necessario responder a algumas questões em relação a opções do kernel. Fique atento a opções como de File System ( especialmente se estiver marcado como modulo ). Respondidas as questões para opções do kernel novo, seguir estes passos:$make bzImage $make modules $make modules_install $make install
Finalizados estes passos, verifique se a versão antiga do kernel ( no meu caso 2.4.20 ), está contida no arquivo de configuração do grub ou lilo ( boot loader ), pois em caso de algo dar errado ( o que não é incomum ), poderá fazer o "roll-back". Será necessário tambem a criação de um diretório para montagem do sysfs:$mkdir /sys
Em /etc/rc.sysinit, localizar a linha:action $"Mounting proc filesystem: " mount -n -t proc /proc /proc"
Na linha seguinte a esta, acrescentar:action $"Mounting sysfs filesystem: " mount -t sysfs none /sys"
Enfrentei problemas simples como por exemplo, em /etc/lilo.conf, na configuração do novo kernel, a opção "root=" ( qual dispositivo será montado como raiz ), estava setado como "root=/". Isso ocasionou uma série de erros que impossibilitou o funcional\mento do mesmo. Alterando esta opção para 'root=/dev/hda2', não foram apresentado mais problemas. - Referencias uteis para consulta: