Handbook:MIPS/Blocks/HWReqs/pt-br
CPU (Porte Big Endian port) | MIPS3, MIPS4, MIPS5 ou CPU classe MIPS64 |
---|---|
CPU (Porte Little Endian) | MIPS4, MIPS5 ou CPU classe MIPS64 |
Memória | 128 MB |
Espaço em disco | 3.0 GB (excluindo área de swap) |
Área de swap | Pelo menos 256 MB |
Também cheque os Requirimentos de Hardware do MIPS
Notas de instalação
Em muitas arquiteturas, o processador passou por várias gerações, cada geração baseada nos fundamentos da anterior. O MIPS não é exceção. Há várias gerações de CPU sob a arquitetura MIPS. De modo a escolher o arquivo tar de stage com a imagem de netboot e CFLAGS apropriadas, é necessário conhecer a qual família a CPU do sistema pertence. Essas famílias são chamadas de Conjunto de Instruções da Arquitetura ("Instruction Set Architecture" -- ISA).
MIPS ISA | 32/64-bit | CPUs cobertas |
---|---|---|
MIPS 1 | 32-bit | R2000, R3000 |
MIPS 2 | 32-bit | R6000 |
MIPS 3 | 64-bit | R4000, R4400, R4600, R4700 |
MIPS 4 | 64-bit | R5000, RM5000, RM7000 R8000, R9000, R10000, R12000, R14000, R16000 |
MIPS 5 | 4-bit | Nenhuma até agora |
MIPS32 | 32-bit | AMD Alchemy series, 4kc, 4km, e muitas outras... Há algumas revisões na ISA MIPS32. |
MIPS64 | 64-bit | Broadcom SiByte SB1, 5kc ... etc... Há algumas revisões na ISA MIPS64. |
O nível ISA MIPS5 foi projetado pela Silicon Graphics em 1994, mas nunca foi usado em uma CPU real. Ela existe como parte da ISA MIPS64.
As ISAs MIPS32 e MIPS64 são fontes comuns de confusão. O nível ISA MIPS64 é na verdade um superconjunto da ISA MIPS5 e assim ele inclui todas as instruções da ISA MIPS5 e anteriores. MIPS32 é um subconjunto de 32 bits do MIPS64. Ele existe principalmente porque a maioria das aplicações apenas requer processamento de 32 bits.
Também, outro conceito importante a ser digerido é o conceito de "endian". Endian refere-se ao modo em que a CPU lê palavras da memória principal. Uma palavra pode ser lida como ou "big endian" (byte mais significativo primeiro), ou "little endian" (byte menos significativo primeiro). Máquinas Intel x86 são geralmente little endian, enquanto máquinas Apple e Sparc são big endian. No MIPS, podem ser ambos. Para separá-las, acrescentamos "el" ao nome da arquitetura para denotar little endian.
Arquitetura | 32/64-bit | Endian | Máquinas cobertas |
---|---|---|---|
mips | 32-bit | Big Endian | Silicon Graphics |
mipsel | 32-bit | Little Endian | Cobalt Servers |
mips64 | 64-bit | Big Endian | Silicon Graphics |
mips64el | 64-bit | Little Endian | Cobalt Servers |
Aqueles que quiserem aprender mais sobre ISAs, os sites abaixo podem ser úteis:
- Linux/MIPS Website: MIPS ISA
- Linux/MIPS Website: Endianness
- Linux/MIPS Website: Processors
- Wikipedia: Instruction Set
Visão geral do boot pela rede
Neste seção mostraremos o que é necessário para fazer boot pela rede de uma estação de trabalho Silicon Graphics ou de um dispositivo Cobalt Server. Este é apenas um guia rápido, não sendo feito para ser extensivo. Para mais informação, é recomendada a leitura do artigo Nós sem disco.
Dependendo da máquina, há uma certa quantidade de hardware necessária para fazer boot pela rede e instalar o Linux nela com sucesso.
- Em geral:
- DHCP/BOAMD Série Alchemy, 4kc, 4km, várias outras... Há algumas revisões na ISA MIPS32. Servidor OTP (recomendado o ISC DHCPd)
- Paciência -- muita
- Para estações de trabalho Silicon Graphics:
- Servidor TFTP (recomendado o tftp-hpa)
- Se for necessário usar o console serial:
- Cabo serial MiniDIN8 --> RS-232 (necessário apenas para sistemas IP22 e IP28)
- Cabo Null-modem
- Terminal compatível VT100 ou ANSI capaz de operar a 9600 bauds
- Para Cobalt Servers (NÃO o Qube original):
- Servidor NFS
- Cabo null-modem
- Terminal compatível VT100 ou ANSI capaz de operar a 115200 bauds
Máquinas SGI usam um conector MiniDIN 8 nas portas seriais. Aparentemente, cabos de modem da Apple funcionam bem como cabos seriais, mas com as máquinas da Apple vindo equipadas com portas USB e modens internos, esses cabos estão cada vez mais difíceis de achar. Um diagrama de conexões está disponível no Wiki Linux/MIPS, e a maioria das lojas de eletrônica deve ter os plugues necessários.
O terminal pode ser um terminal VT100/ANSI real, ou pode ser um PC rodando um software de emulação de terminal (tal como HyperTerminal, Minicom, seyon, Telex, xc, screen - qualquer um de sua preferência). Não importa qual a plataforma dessa máquina - apenas que ela tenha uma porta serial RS-232 disponível e o software apropriado.
Este guia NÃO cobre o Qube original. O servidor Qube original não dispõe de uma porta serial em sua configuração default e, assim, não é possível instalar o Gentoo nele sem a ajuda de uma chave de fenda e uma máquina extra.
Configurando TFTP e DHCP
Como mencionado anteriormente, este não é um guia completo, mas apenas uma configuração básica para que as coisas funcionem. Use este guia quando estiver instalando do zero ou use como sugestões adicionais a uma configuração que suporte boot pela rede.
Vale a pena notar que os servidores usados não precisam estar rodando o Gentoo Linux, eles podem muito bem estar usando FreeBSD ou qualquer outra plataforma do tipo Unix. Entretanto, este guia assume que está sendo usado o Gentoo Linux. Se desejado, é também possível usar TFTP/NFS em uma máquina separada do servidor DHCP.
A equipe do Gentoo/MIPS não pode ajudar com a configuração de outros sistemas operacionais como servidores de boot de rede.
Primeiro Passo -- configurar o DHCP. De modo ao servidor ISC DHCP responder às solicitações de requisição BOOTP (necessário pela SGI & Cobalt BOOTROM) primeiro habilite o BOOTP dinâmico na faixa de endereços em uso; depois configure uma entrada para cada cliente apontando para a imagem de boot.
root #
emerge --ask net-misc/dhcp
Uma vez instalado, crie o arquivo /etc/dhcp/dhcpd.conf. Aqui está uma configuração básica para servir de início.
# Diga ao dhcpd para desabilitar o DNS dinâmico.
# dhcpd não iniciará sem isso.
ddns-update-style none;
# Crie uma sub-rede:
subnet 192.168.10.0 netmask 255.255.255.0 {
# Faixa de endereços para inicializar os clientes. Não se esqueça do 'dynamic-bootp'!
pool {
range dynamic-bootp 192.168.10.1 192.168.10.254;
}
# Servidores DNS e default gateway -- substitua conforme apropriado
option domain-name-servers 203.1.72.96, 202.47.56.17;
option routers 192.168.10.1;
# Diga ao servidor DHCP que ele é autoritativo para esta sub-rede.
authoritative;
# Permita o uso de BOOTP nesta sub-rede.
allow bootp;
}
Com essa configuração pode-se adicionar qualquer número de clientes na cláusula de subnet.
Próximo passo -- Configurar o servidor TFTP. É recomendado o uso do tftp-hpa uma vez que é o único servidor TFTP que se sabe funcionar corretamente. Proceda instalando-o como mostrado abaixo:
root #
emerge --ask net-ftp/tftp-hpa
Isso irá criar o diretório /tftproot para armazenar as imagens de boot. Mova para outro lugar, se necessário. Para os propósitos deste guia, será assumido que foi mantido na localização default.
Fazendo boot de rede em estações SGI
Baixando uma imagem de boot de rede
Dependendo do objetivo da instalação, há diversas imagens possíveis disponíveis para download. Elas são nomeadas de acordo com o tipo do sistema e da CPU para a qual a imagem foi compilada. Os tipos de máquinas são os seguintes:
Nome-código | Máquinas |
---|---|
IP22 | Indy, *Indigo 2, Challenge S |
IP26 | *Indigo 2 Power |
IP27 | Origin 200, Origin 2000 |
IP28 | *Indigo 2 Impact |
IP30 | Octane |
IP32 | O2 |
Indigo 2 - É um erro comum confundir as IRIS Indigo (IP12 com CPU R3000 CPU ou IP20 com uma CPU R4000, nenhuma das quais roda Linux), a Indigo 2 (IP22, que roda Linux bem), a Indigo 2 Power baseada no R8000 (que não roda Linux de nenhuma maneira) e a Indigo 2 Impact baseada no R10000 (IP28, que é altamente experimental). Tenha em mente que se trata de máquinas diferentes.
Também, no arquivo, r4k refere-se à serie de processadores R4000, r5k à R5000, rm5k para a RM5200 e r10k para a R10000. As imagens estão disponíveis nos espelhos do Gentoo.
Configuração DHCP para um cliente SGI
Depois de baixar o arquivo, coloque a imagem descompactada no diretório /tftproot/ (use bzip2 -d para descompactar). Depois edite o arquivo /etc/dhcp/dhcpd.conf e adicione a entrada adequada para o cliente SGI.
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
# ... configurações normais aqui ...
# Estação de trabalho SGI... troque 'sgi' pelo nome de host de sua máquina SGI.
host sgi {
# Endereço MAC da máquina SGI. Normalmente fica escrito na traseira ou parte de baixo da máquina
hardware ethernet 08:00:69:08:db:77;
# Servidor TFTP Server do qual será baixada (por default, mesmo que o servidor DHCP)
next-server 192.168.10.1;
# Endereço IP para fornecer à máquina SGI
fixed-address 192.168.10.3;
# Nome do arquivo da PROM a baixar e dar boot
filename "/gentoo-r4k.img";
}
}
Opções do kernel
Estamos terminando, mas há alguns pequenos ajustes ainda a serem feitos. Abra um console como usuário root.
Desabilite o "Path Maximum Transfer Unit" ou senão a PROM SGI não encontrará o kernel:
root #
echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
root #
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
root #
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
Isso deve ser suficiente para permitir que o servidor Linux funcione corretamente com a PROM da SGI.
Iniciando os serviços
Neste ponto, inicie os serviços.
root #
/etc/init.d/dhcp start
root #
/etc/init.d/in.tftpd start
Se nada de errado ocorreu no passo anterior, tudo está pronto para ligar a estação de trabalho e prosseguir com o guia. Se o servidor DHCP não estiver subindo, por qualquer razão, tente rodar dhcpd na linha de comando e veja o que ele diz. Se estiver tudo bem, ele deve apenas entrar em execução em segundo plano, ou senão ele mostrará "exiting." logo abaixo de sua mensagem de erro.
Uma maneira fácil de verificar se o serviço tftp está rodando é digitar o comando abaixo e checar a saída:
root #
netstat -al | grep ^udp
udp 0 0 *:bootpc *:* udp 0 0 *:631 *:* udp 0 0 *:xdmcp *:* udp 0 0 *:tftp *:* <-- (procure por esta linha)
Inicializando a estação SGI pela rede
OK, tudo configurado, o DHCP está rodando assim como o TFTP. Agora é hora de ligar a máquina SGI. Ligue a unidade, quando a mensagem "Running power-on diagnostics" aparecer na tela, clique em "Stop For Maintenance" ou pressione Escape. Um menu similar ao abaixo irá aparecer.
Running power-on diagnostics
System Maintenance Menu 1 - Start System 2 - Install System Software 3 - Run Diagnostics 4 - Recover System 5 - Enter Command Monitor Option?
Tecle 5 para entrar no monitor de comandos. No monitor, inicie o processo BootP:
>>
bootp(): root=/dev/ram0
A partir deste ponto, a máquina deve começar a baixar a imagem e então, aproximadamente 20 segundos depois, começar a iniciar o Linux. Se tudo correr bem, um shell ash do busybox deve iniciar como mostrado abaixo e a instalação do Gentoo Linux pode continuar.
init started: BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
Gentoo Linux; http://www.gentoo.org/
Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
Gentoo/MIPS Netboot for Silicon Graphics Machines
Build Date: April 26th, 2004
* To configure networking, do the following:
* For Static IP:
* /bin/net-setup <IP Address> <Gateway Address> [telnet]
* For Dynamic IP:
* /bin/net-setup dhcp [telnet]
* If you would like a telnetd daemon loaded as well, pass "telnet"
* As the final argument to /bin/net-setup.
Please press Enter to activate this console.
Resolução de problemas
Se a máquina não cooperar e recusar a baixar a image, pode ser umas das duas coisas:
- As instruções não foram seguidas corretamente, ou
- Ela precisa de um pouco de persuasão (Não, abaixe essa marreta!)
Eis uma lista de coisas a checar:
- Se o dhcpd está entregando à máquina SGI um endereço IP. Deve haver mensagens sobre a requisição BOOTP nos logs do sistema. O tcpdump também é útil neste caso.
- Se as permissões configuradas corretamente na pasta do tftp (normalmente /tftproot/ - deve ter permissão de leitura para todos)
- Cheque os logs do sistema para ver o que o tftp está reportando (erros, talvez)
Se tudo foi checado no servidor, e timeouts e outros erros aparecerem na máquina SGI, tente entrar isto no console:
>>
resetenv
>>
unsetenv netaddr
>>
unsetenv dlserver
>>
init
>>
bootp(): root=/dev/ram0
Boot de rede em estações Cobalt
Visão geral do funcionando de boot pela rede
Diferentemente das máquinas SGI, servidores Cobalt usam NFS para transferir seus kernel para iniciar o boot. Dê boot na máquina segurando apertadas as teclas de seta para esquerda e seta para direita enquanto a máquina é ligada. A máquina vai então tentar obter um endereço IP por bootp, montar o diretório /nfsroot/ do servidor por NFS e então tentar baixar dar boot no arquivo vmlinux_raq-2800.gz (dependendo do modelo) que assume que seja um arquivo binário ELF padrão.
Baixando uma imagem de boot de rede do Cobalt
Em http://distfiles.gentoo.org/experimental/mips/historical/netboot/cobalt/ encontram-se as imagens de boot necessárias para se ter uma Cobalt rodando. Esses arquivos tem o nome no formato nfsroot-KERNEL-COLO-DATA-cobalt.tar - selecione o mais recente e descompacte-o em / como mostrado abaixo:
root #
tar -C / -xvf nfsroot-2.6.13.4-1.19-20051122-cobalt.tar
Configuração do servidor NFS
Como esta máquina usa NFS para baixar sua imagem, é necessário exportar o diretório /nfsroot/ no servidor. Instale o pacote net-fs/nfs-utils:
root #
emerge --ask net-fs/nfs-utils
Uma vez feito, coloque o seguinte no arquivo /etc/exports:
/nfsroot *(ro,sync)
Agora inicie o servidor NFS:
root #
/etc/init.d/nfs start
Se o servidor NFS já estava rodando, diga a ele para recarregar seu arquivo exports usando o comando exportfs:
root #
exportfs -av
Configuração DHCP para uma máquina Cobalt
A parte do DHCP é relativamente simples. Adicione o seguinte ao arquivo /etc/dhcp/dhcpd.conf:
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
# ... coisas de sempre ...
# Configuracao para um servidor Cobalt
# Configure o nome da maquina aqui:
host qube {
# Caminho para o diretorio nfsroot.
# Isto é principalmente para quando usar a opção de boot do TFTP no CoLo
# Não deve ser necessário alterar isto.
option root-path "/nfsroot";
# Endereço MAC ethernet do servidor Cobalt
hardware ethernet 00:10:e0:00:86:3d;
# De qual servidor baixar a imagem
next-server 192.168.10.1;
# Endereço IP do servidor Cobalt
fixed-address 192.168.10.2;
# Localização do arquivo default.colo relativa ao /nfsroot
# Não deve ser necessário alterar isto.
filename "default.colo";
}
}
Iniciando os serviços
Agora inicie os serviços. Digite o seguinte:
root #
/etc/init.d/dhcp start
root #
/etc/init.d/nfs start
Se tudo correu bem no passo anterior então tudo está pronto para ligar a estação de trabalho e prosseguir com o guia. Se o servidor DHCP não estiver iniciando por algum motivo, tente rodar dhcpd na linha de comando e ver o que ele mostra - se estiver tudo certo, ele deve ir para o segundo plano ou senão, ele irá mostrar 'exiting' logo abaixo da mensagem de erro.
Fazendo boot pela rede na máquina Cobalt
Chegou a hora de ligar a máquina Cobalt. Ligue o cabo do modem e configure o terminal para usar 115200 bauds, sem paridade, 1 stop bit e emulação VT100. Uma vez feito isso, segure pressionadas as teclas de seta para esquerda e seta para direita enquanto ligar a máquina.
O painel traseiro deve mostrar "Net Booting" e alguma atividade de rede deve ser visível, logo seguida da entrada do CoLo. No painel traseiro, role o menu para baixo até a opção "Network (NFS)" e pressione Enter. Note que a máquina inicia o boot pelo console serial.
...
elf: 80080000 <-- 00001000 6586368t + 192624t elf: entry 80328040 net: interface down CPU revision is: 000028a0 FPU revision is: 000028a0 Primary instruction cache 32kB, physically tagged, 2-way, linesize 32 bytes. Primary data cache 32kB 2-way, linesize 32 bytes. Linux version 2.4.26-mipscvs-20040415 (root@khazad-dum) (gcc version 3.3.3...) Determined physical RAM map: memory: 08000000 @ 00000000 (usable) Initial ramdisk at: 0x80392000 (3366912 bytes) On node 0 totalpages: 32768 zone(0): 32768 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: console=ttyS0,115200 root=/dev/ram0 Calibrating delay loop... 249.85 BogoMIPS Memory: 122512k/131072k available (2708k kernel code, 8560k reserved, 3424k dat)
Um shell ash do buybox irá ser executado, como mostrado abaixo, de onde a instalação do Gentoo Linux pode continuar.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 280k freed
init started: BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
Gentoo Linux; http://www.gentoo.org/
Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
Gentoo/MIPS Netboot for Cobalt Microserver Machines
Build Date: April 26th, 2004
* To configure networking, do the following:
* For Static IP:
* /bin/net-setup <IP Address> <Gateway Address> [telnet]
* For Dynamic IP:
* /bin/net-setup dhcp [telnet]
* If you would like a telnetd daemon loaded as well, pass "telnet"
* As the final argument to /bin/net-setup.
Please press Enter to activate this console.
Resolução de problemas
Se a máquina não cooperar e recusar a baixar a image, pode ser umas das duas coisas:
- As instruções não foram seguidas corretamente, ou
- Ela precisa de um pouco de persuasão (Não, abaixe essa marreta!)
Eis uma lista de coisas a checar:
- Se o dhcpd está entregando à máquina Cobalt um endereço IP. Verifique mensagens sobre a requisição BOOTP nos logs do sistema. O tcpdump também é útil neste caso.
- Se as permissões foram configuradas corretamente na pasta /nfsroot/ - deve ter permissão de leitura para todos
- Verifique se o servidor NFS está rodando e exportando o diretório /nfsroot/. Verifique isso usando o comando exportfs -v no servidor.