anúncios

sábado, 20 de agosto de 2011

Script para compilar o Kernel Linux

Segue o script que usei para compilar o Kernel 3.0.1, mas pode ser facilmente adaptado para outras versões, basta alterar no script com versão corrente que for compilar.
PS: Considerando que já esteja com todas as dependências instaladas.
gcc,ncurses,etc
Testado na distro Slackware

#!/bin/bash
echo "Script para compilar o Kernel Linux 3.0.1";
echo "Baixar o source do kernel 3.0.1 - www.kernel.org - 74MB ";
wget -c http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.0.1.tar.bz2
cp linux-3.0.1.tar.bz2 /usr/src
cd /usr/src
tar -jxvf linux-3.0.1.tar.bz2
echo "Remover e criar link simbólico para o diretório chamado linux";
rm linux
ln -s /usr/src/linux-3.0.1 /usr/src/linux
echo "Estamos em /usr/src/linux";
cd linux
echo "Para limpar as configurações executado make mrproper";
make mrproper
echo "ATENÇÃO!";
echo "Existem outras maneiras de configurar o kernel, inclusive em modo
gráfico, mas aqui vou me referir apenas ao menuconfig.";
echo "Esta parte depende muito da máquina em
questão. É necessário que você selecione todas as opções referentes ao seu hardware e os sistemas de arquivo que você usa.
No menuconfig um ?*? significa que a opção será compilada dentro da
imagem do kernel, um ?M? significa que será compilado como um módulo
externo.
O sistema de arquivos que a sua partição linux usa deve ser marcado como ?*?, bem como suporte a IDE (ou SCSI se for o caso). O restante das opções podem ser escolhidas como módulo, você escolhe.";
echo "Lembre-se que se você selecionar alguma opção como módulo, deve
marcar a opção Loadable Module Support -> Enable loadable module support, Loadable Module Support -> Module unloading e
Loadable Module Support -> Automatic kernel module unloading.
make menuconfig
echo "Salve a configuração. Agora vamos compilar.";
echo "Compilação propriamente dita";
make
echo "Compilando os módulos"
make modules
echo "Instalação dos módulos criados";
make modules_install
echo "Criar a imagem bootável do kernel";
make bzImage
echo "Após terminado esse comando a imagem do kernel gerada é gravada em /usr/src/linux/arch/x86/boot/bzImage";
echo "Copiando os arquivos de imagem para /boot"
cp /usr/src/linux/arch/x86/boot/bzImage /boot/
echo "Pronto Kernel compilado";
echo "Adicionar a entrada do novo kernel no gerenciador de boot.";
echo "PS: É importante que você mantenha a versão padrão do kernel para poder inicializar o Linux em caso de erros no kernel novo";
echo "Saiba qual a partição onde seu Linux está instalado. É algo como
/dev/hdax, para IDE e /dev/sdax, para SATA, onde x é um número da sua / raiz.";
#Menu de escolha, caso use Lilo tecle 1, caso use Grub tecle 2, caso use Grub2 tecle 3
echo -e "Escolha a opção de acordo com o seu gerenciador de boot\n1)Lilo\n2)Grub\n3)Grub2\n";
read x;
case "$x" in
1)
echo -n -e " Olhe no lilo.conf na parte referente ao outro kernel e use a mesma partição na nova configuração.\n"
echo -n -e "image =/boot/bzImage\nroot=/dev/sda1\nlabel=Linux3.0.1\nread-only"
echo "Abrindo o arquivo /etc/lilo.conf"
vim /etc/lilo.conf
echo "Depois de salvo, atualize o lilo"
lilo
;;
1|2)
echo -n -e "Edite o arquivo de configuração do grub referente ao outro kernel\n"
echo "Abrindo o arquivo /boot/grub/menu.lst"
nano /boot/grub/menu.lst
echo "Depois de salvo, será atualizado o grub"
update-grub
;;
1|2|3)
echo -n -e "Edite o arquivo de configuração do grub2 referente ao outro kernel\n"
echo "Abrindo o arquivo /etc/grub.d/40_custom"
nano /etc/grub.d/40_custom
echo "Depois de salvo, será atualizado o grub2"
update-grub
;;
1|2|4)
echo "Escolha incorreta! Favor escolher a opção 1 - Lilo, 2 - Grub ou 3 - Grub2
;;
esac


OBS: Caso seu computador tenha placa de vídeo NVIDIA/ATI, é necessário executar o arquivo de instalação da respectiva placa novamente em init3.

Feito!
10 Motivos para Estudar no Cursos 24 Horas

Depoimentos de Alunos

Lista de Cursos

Nenhum comentário:

Postar um comentário