doc:guides:debiansgio2

Debian-MIPS en una SGI O2

This article is obsoleted, deprecated and/or outdated, is kept here for historical reason
  • Una SGI O2, evidentment
  • Una servidor de DHCP/BOOTP i NFS
  • La imatge d'instal·lació d'en Martin Michlmayr

Notes prèvies

Encara que oficialment Debian suporta l'arquitectura MIPS, les MIPS de Silicon Graphics són una mica especials i l'instal·lador de Debian no funciona correctament en elles, pel que cal una mica (bastant) de hacking per aconseguir-ho.

La gran majoria de problemes venen del firmware ARCS PROM de la O2, que no té suport o el té limitat per algunes coses, entre elles:

* La ARCS no sap llegir CD ISO-9660, pel que no podem usar cap CD d'arranc i per tant hem de recórrer a BOOTP
* Limitacions de la PROM requereixen canvis en la pila IP del servidor DHCP/BOOTP
* Alerta amb els switchos barats, les SGI no s'hi entenen massa bé

Pel que fa a dificultats dir que si la teva O2 té un MIPS R5000 (com jo) estàs de sort, ja que és la més testejada. Per contra, la falta de control de coherència de les dues caché dels processadors R10000 i R12000 d'algunes O2, provoca que el nucli Linux es corrompi.

Com a servidor excel·lent, com estació de treball oblida't de que sigui com IRIX. El tema X és experimental amb alguns patches i Framebuffer. La placa usa diversos ASIC per conectarr els elements hardware amb la CPU i ara per ara només s'experimenta amb patches per al VICE (compressió de video) i el so mitjançant ALSA.

És una màquina que ja no té suport per part del fabricant SGI, però fa relativament poc i continua sent un molt bon hardware. A part de SGI que ven màquines 'refurbished', encara pots trobar molts revenedors que venen material i components, pel que fa a la memòria, SGI va cedir-ne la reventa a Kingston.

Primer dir que si fas una mica de treball de camp sobre el tema buscant a Google, trobaràs bastanta informació diferent. Alguns documents es centren només en bootar la O2 i usar un sistema de fitxers en xarxa (NFS root), mentre d'altre usen diversos mètodes (i imatges) per dur a terme la instal·lació.

Usa sempre la última imatge d'instal·lació d'en Martin Michlmayr. Fa forces canvis i sobint. Et pots trobar amb alguna cosa no documentada (algun bug de la nova imatge i tal), si és així consulta a la llista de correu debian-mips.

Preparació

No explicaré com configurar els serveis DHCP/BOOTP/TFT/NFS, espavila't:

* BOOTP
* DHCP
* NFS

DHCP és una extensió de BOOTP. De fet podem dir que BOOTP és DCHP+TFTP. La idea és que el DHCP dóna al client (en el nostre cas la O2) les dades de xarxa necessàries (IP, mascàra, passarel·la, DNS, …) i el fitxer d'arranc que ha d'usar, però és el TFTP el que dóna el fitxer d'arranc al client

Configura el DHCP per donar tota la informació necessària de xarxa (nom inclòs) al a O2, identificant-la per l'adreça Ethernet (MAC), i específica el nom de fitxer (path absolut) que ha d'usar per arrancar. Per exemple, aquesta és la meva configuració del DHCP (la secció per la O2):

# Silicon Graphics O2 Workstation
host idoru {
	option ntp-servers 10.0.0.1;
	option domain-name-servers 10.0.0.1;
	option domain-name "l3jane.net";
	option subnet-mask 255.255.255.240;
	option routers 10.0.0.14;
	option host-name "idoru";
	filename "o2-boot.img";
	hardware ethernet 08:00:69:0c:b3:14;
	fixed-address 10.0.0.2;
}

El client que es conectarà al servidor DHCP serà l'ARCS (la ROM) de la O2, i aquesta té algun problema amb la implementació de la pila IP que fa que calgui retocar la del servidor Linux:

# echo "1" > /proc/sys/net/ipv4/ip_no_pmtu_disc
# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

És un servei inetd, per tant no té massa complicació, només cal anar amb compte per evitar problemes que no faci ús de TCPWrappers (podria impedir que la O2 accedeixi al servei). El fitxer d'arranc és una imatge d'instal·lació de Debian retocada per en Martin Michlmayr per fer la funcionar en la O2, visita la pàgina per tenir la versió més actualitzada.

tftp    dgram  udp     wait    root   /usr/sbin/in.tftpd -s /srv/tftpboot -v

Algunes coses a tenir en compte:

* Dona IP i nom estàtics a la O2 identifcant-lo per l'adreça ethernet (MAC), és la mateixa que el número de sèrie de SGI que trobaràs en la caixa i l'slot PCI
* !Alerta amb el TCPWrappers! assegura't que la O2 pot accedir a tots els serveis (mira els logs del servidor)
* Recorda fer els ajustos sysctl a la pila IP del kernel del servidor.

Engega la O2 i cancel·la l'arranc fent clic al botó que surt a la pantalla o prenent 'ESC'. Entra en el mode de comandes, requereix password, si no el saps desactiva'l amb el jumper de la placa.

Per evitar problemes amb el DHCP és recomanable eliminar tota referència que tingui la PROM respecte la xarxa eliminant la variable d'entorn netaddr, després indiquem a la PROM que arranqui amb bootp. El paràmetre debian-installer/framebuffer-false és per indica a l'instal·lador de debian que no usi el Framebuffer de la O2.

unsetenv netaddr
bootp(): append="debian-installer/framebuffer=false"

T'hauria d'aparèixer quelcom així:

Setting $netaddr to xxx.xxx.xxx.xxx(from server)
Obtaining from server
(some numbers)...,"entry point 0x80200000"

Al cap de poc veuras com arranca el logo de framebuffer i apareix el pingüí de Linux (TuX) i els missatges del kernel. Mira-te'ls com a mínim per assegurar-te que detecta la controladora SCSI (Adaptec) i els dicsos. Després t'apareixerà (en mode texte sense framebuffer) l'instal·lador de Debian.

La instal·lació

Segueix els passos normals de d'instal·lació de debian entrant les dades que et demani (idioma, teclat, mirror, nom de host, …) fins que et dirà que no ha trobat alguns components: els mòduls del nucli. La imatge de boot d'en Martin ja té tots els mòduls i controladors de la O2, per tant no fan falta. Simplement continua ignorant l'alerta de Debian. Particionar el disc dur

Primer tingues en compte que segurament la notació de dispositius SCSI de la O2 serà quelcom semblant a /dev/scsi/host0/bus0/target1/lun0/disc. El format de disc de la SGI és molt especial (només cal mirar la taula de particions), hi han dos particions especials:

  • SGI Volume (part 11) Abarca tot el disc, semblant a la Whole disk the Sun Microsystems
  • volhdr - Volume Header (part 9) Aquest partició és la que la ARC ROM busca què arrancar, ja sigui un nucli o un carregdor com arcboot, en el nostre cas serà arcboot

Abans de particionar, cal calcular quin espai necessitarem per la swap i per el volhdr. Per al volhdr hem de tenir en compte que hi ha de cabre un kernel linux o un carregador d'arranc, en el cas d'arcboot n'hi ha prou amb uns 8Mb.

Tenint en compte P=tamany del clindre que pots obtenir del mateix fdisk, calculem TC=tamany_cilindre (Mb) i UC=ultim cilindre. Aleshores:

* Inici del volhdr és IH=0
* Fi del volhdr és FH=tamany_volhdr/TC
* Inici de la swap és IS=UC-tamany_swap/TC
* Fi de la swap és FS=UC
* Inici de partició Linux IL=FH+1
* Fi de la partició Linux FL=IS-1

Fets els càlculs, podem començar creant de nou la SGI Disk label, per fer-ho cal entrar en mode expert de l'fdisk i prèmer 'x', i després 'g' (Create SGI Disk Label), sinó et deixa prova fent # dd if=/dev/zero of=/dev/DISK count=1 bs=512

Després surt del mode expert amb 'r' i crea les particions segons els tamanys que has calculat Amb les particions especials volhdr i l'SGI Volume, tingues en compte que han de ser les particions 9 i 11 respectivament.

A partir d'aquí el procés d'instal·lació és el normal de qualsevol debian. Si selecciones algun mirror diferent dels que et proposa, assegura't que aquest té la Debian Sarge per MIPS, no tots els mirrors allotgen totes les versions i arquitectures.

Al final de la instal·lació, se't demanarà on posar l'arcboot. Llegeix bé el quadre de dialeg, Debian ja sap que el disc és d'una SGI i per tant ja sap que haurà d'instal·lar-ho al volhdr, l'únic que et demana és en quin disc està la partició. És a dir que li has de dir /dev/scsi/…/disc i no /dev/scsi/…/part9.

Configurar la ARC ROM per arrancar sempre Debian

Un cop instal·lada Debian i reinicidada la O2, hem de configurar la ARC ROM per qué arrenqui sempre el nostre GNU/Linux. Probablement Debian ja et dona aquesta informació al final de la instal·lació, si és així apunta-ho, ja que ja et diu les particions correctes per al teu cas.

Per fer-ho cal entrar en el mode comandes (com al principi fent ESC) i ajustar algunes variables

setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8)
setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0)	
setenv OSLoader arcboot
setenv OSLoadFilename Linux	

Fixa't que l'ARCS compta les particions a partir de 0, per tant el volhdr que per nosaltres és la partició 9 per l'ARCS és la 8. Fet això una vegada ja no caldrà entrar-ho més, ja que la ARCS ja s'en recorda per les properes vegades i arrancarà Linux cada cop. Per arrancar des de línia de comandes fes boot.

  • doc/guides/debiansgio2.txt
  • Last modified: 2021/06/10 21:43
  • by 127.0.0.1