quarta-feira, setembro 23, 2009

Compilar kernel do Arch Linux parte final

Nessa parte final mostrarei como criar o pacote de instalação do kernel no Arch Linux, dessa forma você pode instalar em diversas máquinas sem ter que compilar o kernel uma vez para cada máquina, assim você compilará o kernel uma única vez e poderá instalá-lo em quantos PCs quiser.
Passo 1:Descompacte o kernel que você baixou do site oficial
$tar -xvvjf linux-2.6.31.1.tar.bz2


Passo 2: Entre no diretorio e crie um arquivo PKGBUILD
$cd linux-2.6.31.1
$gedit PKGBUILD


Adicione o seguinte ao PKGBUILD
pkgname=kernel26-my
basekernel=2.6.28
pkgver=2.6.28
pkgrel=1
pkgdesc="The Linux Kernel and modules"
arch=('i686')
url="http://www.kernel.org"
depends=('module-init-tools')
provides=(kernel26)
install=kernel26.install
build() {
# build!
cd ..
_kernver="${basekernel}${CONFIG_LOCALVERSION}"
make || return 1
mkdir -p $startdir/pkg/{lib/modules,boot}
make INSTALL_MOD_PATH=$startdir/pkg modules_install || return 1
install -Dm644 System.map $startdir/pkg/boot/System.map26-my
install -Dm644 arch/x86/boot/bzImage $startdir/pkg/boot/vmlinuz26-my
install -Dm644 .config $startdir/pkg/boot/kconfig26-my
# set correct depmod command for install
sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/kernel26.install
}


OBS. Fique atento as informação de versão das linhas:
  • basekernel=2.6.28
  • pkgver=2.6.28
Substitua esses valores pela versão do kernel que você esta compilando.
Passo 3: Crie o arquivo kernel26.install
$gedit kernel26.install

Adicione o seguinte ao arquivo kernel26.install
post_install () {
echo ">>> Updating module dependencies. Please wait ..."
KERNEL_VERSION=2.6.28
/sbin/depmod -A -v $KERNEL_VERSION > /dev/null 2>&1
}
post_upgrade() {
echo ">>> Updating module dependencies. Please wait ..."
KERNEL_VERSION=2.6.28
/sbin/depmod -A -v $KERNEL_VERSION > /dev/null 2>&1
}
op=$1
shift
$op $*


OBS2. Modifique as linhas KERNEL_VERSION para o valor da versão que você esta compilando seu kernel.

Passo 4: Configure o seu kernel.
Conforme vimos no primeiro post você deve fazer nesse trecho os passos 5 e 6 daquele post

Passo 5:
Prepare tudo para começar a configuração

Esse comando apaga os arquivos .o(objetos) de tentativas de compilações anteriores
#make mrproper

Passo 6: Configurar o kernel para compilação
Aqui você esta pegando a configuração do kernel atual e modificando-a

 #zcat /proc/config.gz > .config
#make menuconfig


Passo 5: Agora chame o comando makepkg
Esse comando irá criar o pacote compilado do kernel.
$makepkg -c


Passo 6:
Instale o pacote:
Depois de rodar o makepkg você terá um pacote pronto para ser instalado no seu sistema e você deve fazê-lo através do pacman com o seguinte comando:
#pacman -U kernel26-my-2.6.31-1-i686.pkg.tar.gz

OBS3. Note que essa instalação nao cria o ramdisk. E você precisará criar um.

Passo 7:
Crie o arquivo ramdisk conforme o passo 10 do primeiro post.
Passo 10: Faça o ramdisk
#depmod 2.6.31-arch
#mkinitcpio -k 2.6.31-arch -g /boot/kernel26.img


Passo 8
Configure o Grub
Configure o Grub para inicializar o seu novo kernel.
Pronto. Você possui um pacote funcional para instalação. Se usar placas nVidia não esqueça de configura-la como vimos na parte 2
Espero ter ajudado. Qualquer dúvida... Mande um e-mail. Responderei o quanto antes.
fonte: arch linux wiki