Este tutorial vai guia-lo através da preparação do ambiente do qemu, utilizado nos trabalhos práticos da disciplina mc514 do 1o. semestre de 2008. O QEMU é um emulador de cpus que tem ganhado espaço hoje em dia, por ser a tecnologia utilizada como device model para as principais tecnologias de virtualização disponíveis (xen, kvm, etc)
Para as atividades, você vai precisar do código fonte de um kernel Linux. As árvores estáveis oficiais podem ser encontradas em kernel.org A priori, não haverá requisitos específicos referentes à versão utilizada, então sinta-se a vontade para pegar qualquer uma.
Atenção! Ao clicar no número da versão, você baixará apenas o patch em relação à versão anterior. Para baixar a árvore toda, você deve clicar em "F", (Full)
Se você está no IC: Aqui esta um link para a versão 26.24.2, provavelmente mais rápido ;-). Há também a opção de copiá-lo do home da islene, em /home/staff/islene/mc514/.
Com a árvore em mãos, descomprima-a fazendo:
tar xjvf linux-2.6.xyz.tar.bz2
O segundo passo é compilar o kernel. Um arquivo de configuração de exemplo pode ser encontrado aqui. Depois de baixar esse arquivo, faça:
cp config-exemplo linux-2.6.xyz/.config cd linux-2.6.xyz make bzImage -j5 (-j[numero de processadores + 1])
Caso em sua versão estejam disponíveis opções de configuração novas (não presentes na época que o .config foi gerado), você será questionado sobre elas. No geral, simplesmente apertar enter costuma funcionar ;-)
make ARCH="i386" CFLAGS="-m32" bzImage -j5
Você pode encontrar aqui uma imagem de disco pronta,
preparada especificamente para a disciplina (
Com ela em mãos, inicie o qemu com o seguinte comando:
qemu -hda /tmp/disco.img -kernel arch/x86/boot/bzImage -append "ro root=/dev/sda console=ttyS0 console=tty0" -serial file:/tmp/serial.log
Obs: Se sua versão do kernel não for suficientemente recente, você poderá ter um diretório "arch/i386/" no lugar de "arch/x86".
Note que a saída serial de sua maquina virtual será direcionada para o arquivo /tmp/serial.log
Na tela de login, use as seguintes informações:
qemu -hda /tmp/disco.img -kernel arch/x86/boot/bzImage -append "ro root=/dev/sda console=ttyS0" -nographic
init 0é suficiente.