segunda-feira, 30 de agosto de 2010

Recompilando o núcleo (=Kernel) do Ubuntu 9.04



Se forem tentar replicar o que eu fiz, recomendo que criem também máquinas virtuais e não saiam testando tudo no seu próprio SO. Seguem minhas experiências.

Primeira tentativa:
Criei uma instância da Virtual Box com a seguinte configuração:

Nome: Ubuntu
Sistema Operacional: Linux
Versão: Ubuntu
RAM: 640 MB
Armazenamento de Tamanho Fixo com 4.5 GB

Instalei o Ubuntu 9.04 através do CD. (até aqui tudo bem...)

Utilizei 4.5 GB porque estava com pouco espaço em disco e esta limitação gerou um problema
durante a compilação do núcleo. Houve um erro, e quando verifiquei pela manhã, o espaço em disco
da máquina virtual estava zerado. Achei interessante colocar essa experiência aqui.

Segunda tentativa:

Nome: Ubuntu
Sistema Operacional: Linux
Versão: Ubuntu
RAM: 1 GB
Armazenamento de Tamanho Fixo com 8 GB

Utilizei 8 GB porque estava ainda com pouco espaço em disco e esta limitação gerou um outro problema mas
durante a instalação do núcleo. Não houve erros desta vez, mas o espaço do HD foi zerado novamente.
Mas como precisava de mais espaço para gerenciar as versões do núcleo após algumas modificações, ainda achei
8 GB pouco espaço.

Terceira tentativa:

Nome: Ubuntu
Sistema Operacional: Linux
Versão: Ubuntu
RAM: 1 GB
Armazenamento de Tamanho Fixo com 16 GB

Como eu sou um cara que gosta de potências de 2. Para a terceira tentativa coloquei 16 GB do HD para a Virtual Machine.

Instalei o Ubuntu 9.04 através do CD.

Versão do núcleo: 2.6.28-11

Desta vez não houveram problemas.

Compilação

O processo de compilação do núcleo é um pouco demorado. Inicialmente precisaremos baixar alguns pacotes. Segue uma breve descrição de cada um deles e o comando utilizado para baixar os pacotes.

Utilitário para a construção do núcleo Linux.
> apt-get install kernel-package

Bibliotecas e documentação para desenvolvedores ncurses (biblioteca de desenvolvimento de aplicações em linha de comando com um estilo GUI)
> apt-get install libncurses5-dev

Possibilita um ambiente root falso.
> apt-get install fakeroot

Entra no diretório onde será armazenado o código-fonte baixado.
cd /usr/src

Baixa o código fonte do Linux.
apt-get install linux-source

Descompacta o código-fonte baixado.
tar -xjvf linux-source-2.6.28.tar.bz2

Cria um link simbólico para o diretório descompactado e entra no diretório através do link simbólico.
sudo ln -s linux-source-2.6.28 linux
cd linux

Cria uma cópia do arquivo de configuração que contém informações específicas do hardware utilizado reconhecidas durante o boot.
sudo cp /boot/config-2.6.28-11-generic ./.config

O comando seguinte permite abrir uma tela de configuração de recursos específicos do núcleo. Como não conhecemos muito, não faremos nenhuma alteração nesta tela.
make menuconfig

Ao concluir, será salvo um novo arquivo config.

O comando seguinte realiza uma limpeza antes de iniciar a compilação.
make-kpkg clean

O comando seguinte compila o código. É muito importante incluir o parâmetro
--apend-to-version pois ele quem identificará o seu núcleo nas entradas do arquivo de configuração da GRUB.

fakeroot make-kpkg --initrd --revision=nomedasuaversao --append-to-version=-fms-version núcleo_image núcleo_headers

Depois de compilar, basta instalar a versão customizada do núcleo com os
seguintes comandos:

dpkg -i linux-image...NomeDoPacoteGeradoParaImagem.deb
dpkg -i linux-headers...NomeDoPacoteGeradoParaHeaders.deb

Após a instalação, podemos ver o novo núcleo como entrada no arquivo de configuração da grub. Verifique o arquivo /boot/grub/menu.lst.

Reinicie o sistema da máquina virtual. Pressione 'ESC' na tela do GRUB.
Neste momento, deverá ser exibido o núcleo que foi compilado por você. No meu caso, o que aparece de novo é:

Ubuntu 9.04, núcleo 2.6.28.10-fms-version
Ubuntu 9.04, núcleo 2.6.28.10-fms-version (recovery mode)

Achei interessante deixar também o tempo gasto na última compilação:

Hora inicial: 22:12
Hora final: 02:10

Bom, é isso pessoal.
Espero ter sido claro em todas as etapas.
Se eu aprender mais sobre a configuração em si, postarei aqui. =)

Referências:
http://easylinuxcds.com/blog/?p=3244
https://help.ubuntu.com/9.04/installation-guide/i386/núcleo-baking.html

quinta-feira, 5 de agosto de 2010

Aprendendo a usar o Blender

E ae pessoal.
Prometi que ia escrever mais nas férias, mas só agora consegui algo legal para postar.
Estou em Muriaé-MG e aqui não tenho muito o que fazer.
Estava aprendendo a modelar com Blender e resolvi modelar algumas coisas que tem na cozinha da casa onde estou.
Vou passar então em duas imagens o que fiz:


Armário da cozinha

Cozinha

Tentei integrar os objetos das duas imagens anteriores, mas estou tendo problemas. Se eu conseguir, depois mostro o resultado final por aqui. Mas para quem gosta de modelar em 3D, é bem interessante utilizar o Blender. Principalmente por ser software livre e por não ser tão complicado quanto parece no início.