Minix 3 Adventures: fazendo funcionar a rede no VirtualBox
Neste semestre, estou fazendo a cadeira de Projeto de Sistemas Operacionais na faculdade. Por opção, resolvi (em conjunto com alguns colegas) usar o Minix 3 como sistema operacional de estudos. Instalei ele, feliz da vida, numa máquina virtual do VirtualBox. O problema é que a rede não queria de jeito nenhum funcionar! A princípio deveria funcionar, escolhi o driver certo na instalação (AMD Lance, emulado pelo VMWare e pelo VirrtualBox), mas não funcionava. Depois de muito pesquisar, consegui fazer funcionar. Aqui vão as dicas!
Depois de completada a instalação do Minix 3, reinicie o sistema (não esqueça de botar no VirtualBox para ele não montar o cdrom do Minix3) e execute primeiramente estes passos:
- Com o sistema reiniciado, coloque a imagem do CD do Minix 3 de volta.
- Como root, execute “packman”.
- Procura o número do vim, para instalá-lo do CD… ;-P
- Cuidado para não deixar ele tentar atualizar a lista de arquivos da internet (o que tu não tem ainda… hehehehe…)
Estes foram somente os passos para instalar o vim… hehehehe… Os passos que segui para fazer a rede funcionar no Minix 3 foram estes:
- Edite o arquivo “/usr/etc/rc” (com o vim).
- Vá para a linha 82; ela diz “Starting services:”. Vá para a próxima linha; ela começa com “up random”.
- Aperte “v” (para entrar em modo visual) e vá selecionando até o primeiro “fi” que tu encontrar.
- Recorte estas linhas.
- Agora, vá até a linha que diz “up inet”.
- Cole as linhas que tu copiaste logo em cima desta linha.
- Vá para baixo, até onde diz “intr -t 20 hostaddr -h” (use o “/” do vim).
- Mude o “20″ para “30″
Esta é a primeira parte da solução… hehehehe… Agora vamos para o kernel…
- Dá um cd /usr/src/drivers/lance
- vim lance.c
- A partir da linha 632, edite da forma como segue.
- Comente as seguintes linhas:
- E adicione a seguinte linha:
- Salve o arquivo e saia do vim.
- Vá até a pasta /usr/src/ e execute o seguinte comando:
- Vai demorar uns 15 ou 20 minutos, aproveite para tomar um cafézinho…
- Reinicie o Minix 3 (não esqueça de desmontar a imagem do cdrom do VirtualBox…).
- Depois de reiniciado, dê um ps ax | grep lance.
- Com o PID do driver de rede (provavelmente, será 55), nós vamos nos aproveitar do Reincarnation Server do Minix 3 e matar o processo do driver de rede. Sim, isso mesmo:
- O RS vai verificar a morte do processo driver e reiniciá-lo, agora sim a rede vai estar funcionando 100%.
if (ec->ec_linmem != 0) { assert( 0 ); /*phys2seg(&ec->ec_memseg, &ec->ec_memoff, ec->ec_linmem);*/ } /* XXX */ if (ec->ec_linmem == 0) ec->ec_linmem= 0xFFFF0000;
ec->ec_linmem= 0xFFFF0000;
# make world
# kill -9 55
O único problema é que toda a vez que reiniciarmos o sistema teremos que executar o comando kill. Mas, por mim, tá tudo bem.
Leave a Reply