SGI O2
- Description
- Pré-requis
- Théorique
- Matériel
- Logiciels
- Configuration du serveur
- Configuration de dhcp
- Configurer tftpd, inetd, portmap
- Configurer la station de travail
- Configuration du gestionnaire d'amorçage (bootloader) : arcboot
- Annexe : Installation avec un noyau et un export nfs pour la partition root
- Booter sur un noyau GNU/Linux via tftpd
- Monter la partition root avec nfs et mountd
- Démarrer la station O2
- Formater le disque de l'O2
- Monter la future partition racine et y déposer une arborescence de base
- Ressources
Article écrit par Pierre Chignac - novembre 2004
Description
Cet article décrit comment installer une distribution debian GNU/Linux 3.1 (sarge) sur une station de travail O2 (IP32) de chez Silicon Graphics équipée d'un processeur R5000, R5200 ou R7000.
Pré-requis
Théorique
Les stations de travail sgi O2 ne permettent pas de s'amorcer sur un cdrom de manière aisée. Il est donc plus simple d'utiliser la méthode qui consiste à utiliser tftpd pour s'amorcer sur une image distante sur un réseau.
Il faut alors configurer une machine serveur qui servira d'hôte et qui devra répondre aux requêtes de l'O2, à savoir :
- Lui attribuer une adresse IP avec dhcp.
- Lui envoyer une image amorçable avec tftpd.
Lisez attentivement l'ensemble des documents qui sont cités en bas de la page dans la section Ressources, il vous aideront sûrement à identifier les problèmes que vous pourriez rencontrer lors de l'installation.
Matériel
Il vous faut :
- Un serveur hôte équipé d'un système GNU/Linux. L'installation a été faite à partir d'une Debian Sid.
- Une station sgi O2 équipée d'un processeur R5000 , R5200 ou R7000. Voici le résultat de la commande hinv dans la PROM de la station sur laquelle a été faite l'installation :
System: IP32 Processor: 180 Mhz R5000, with FPU Primary I-cache size: 32 Kbytes Primary D-cache size: 32 Kbytes Secondary cache size: 32 Kbytes Memory size: 128 Mbytes Graphics: CRM, Rev C Audio: A3 version1 SCSI Disk: scsi(0)disk(1) SCSI CDROM: scsi(0)cdrom(4)
Logiciels
Téléchargez une image de la version debian-installer de sarge, disponible ici [1].
Créez un répertoire /tftpboot, placez-y l'image et renommez-la tftpboot.img.
# wget http://www.cyrius.com/debian/o2/o2-boot.img? |
# mkdir /tftpboot |
# mv o2-boot.img /tftpboot/tftpboot.img |
Configuration du serveur
Configuration de dhcp
Si vous ne l'avez pas encore fait, installez un serveur dhcp :
# apt-get install dhcp |
Convention Nous supposerons ici que le serveur a l'adresse IP 192.168.0.51 et que la station O2 aura l'adresse IP 192.168.0.52. Adaptez les commandes et paramètrages de ce document à votre configuration. |
Maintenant, il faut paramétrer le serveur dhcp pour qu'il attribue l'adresse 192.168.0.52 de manière fixe à l'O2. adaptez votre fichier /etc/dhcpd.conf pour qu'il ressemble à ça :
default-lease-time 600; max-lease-time 7200; subnet 192.168.0.0 netmask 255.255.255.0 {} host sgio2 { hardware ethernet 08:00:69:0c:92:be; fixed-address 192.168.0.52; filename "/tftpboot/tftpboot.img"; }
Pour connaître l'adresse MAC de la carte ethernet de l'O2 (hardware ethernet), utilisez la commande printenv de la PROM de la station. Vous devez obtenir une ligne du style :
eaddr=08:00:69:0c:92:be
De cette manière le serveur dhcp reconnaîtra l'O2 d'après son adresse mac et lui attribuera toujours la même IP.
La ligne filename "/tftpboot/tftpboot.img"; signifie que le fichier tftpboot.img sera envoyé à l'O2.
Vous pouvez modifier le fichier /etc/init.d/dhcp pour indiquer sur quelle carte ethernet de l'hôte le serveur dhcp doit chercher la station :
INTERFACES="eth0"
Relancez le serveur :
# /etc/init.d/dhcp restart |
Configurer tftpd, inetd, portmap
D'abord il faut les installer :
# apt-get install tftpd portmap inetd |
Dans le fichier /etc/inetd.conf rajoutez:
tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
Dans /etc/hosts.allow ajoutez:
portmap:ALL tftpd:ALL
Dans /etc/sysctl.conf ajoutez:
net.ipv4.ip_no_pmtu_disc = 1
Puis redémarrez ces services :
# /etc/init.d/inetd restart |
# /etc/init.d/portmap restart |
Nous verrons plus tard quels journaux du système hôte observer pour vérifier si les serveurs sont correctement configurés.
Configurer la station de travail
Accédez maintenant à l'EPROM de l'O2. À l'invite, entrez la commande :
bootp()tftpboot.img
En retour, vous devez obenir :
Setting $netaddr to 192.168.0.52 (from server) Obtaining from server Un_nombre
L'installeur doit se lancer, vous pouvez poursuivre de manière classique sur Debian en utilisant cet outil.
Dans le fichier /var/log/syslog, vous pouvez surveiller sur l'hôte que dhcpd et tftpd sont bien configurés d'après ces lignes :
dhcpd: BOOTREQUEST from 08:00:69:0c:92:be via eth0 (non-rfc1048) dhcpd: BOOTREPLY for 192.168.0.52 to sgio2 (08:00:69:0c:92:be) via eth0 in.tftpd[4233]: connect from 192.168.0.52 (192.168.0.52) tftpd[4234]: tftpd: trying to get file: /tftpboot/tftpboot.img
Elles confirment que la station a été prise en charge par dhcp et qu'il lui a attribué l'adresse 192.168.0.52.
Le fichier /var/log/messages ou la commande dmesg peuvent vous aider également.
Configuration du gestionnaire d'amorçage (bootloader) : arcboot
Une fois l'installation de base terminée, il faut installer un gestionnaire d'amorçage qui lancera systématiquement linux au démarrage de la machine. Installez arcboot :
# apt-get install arcboot |
Éditez le fichier de configuration /etc/arcboot.conf
label=linux image=/boot/vmlinux append="root=/dev/sda1"
Ajoutez éventuellement un lien vers l'initrd dans le append ou d'autres paramètres de chargement. Puis installez-le sur le disque :
# arcboot /dev/sda |
Redémarrez. Au démarrage de la PROM modifiez ces variables d'environnement :
setenv OSLoader arcboot setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8) setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(1) setenv OSLoadFilename linux
C'est terminé, la machine fonctionne désormais sur Debian. De là les premières choses que j'ai faites :
- configurer le réseau, modifier /etc/apt/source.list/ en ajoutant la source :
deb ftp://ftp.fr.debian.org/debian/ sarge main
- installer emacs (ou votre éditeur préféré), pour les emacsiens en attendant il y a editor. Installer locales. dpkg-reconfigure console-data pour avoir un mappage azerty du clavier.
En ce moment j'essaie de lancer X, le support du framebuffer n'est vraiment pas stable mais j'ai vu des captures d'écran de X fonctionnant sur une SGI o2, donc c'est possible, voir http://www.tal.org/~milang/o2/ [2]. Utilisez certains patchs applicables au noyau (voir la section Ressources de cet article).
Annexe : Installation avec un noyau et un export nfs pour la partition root
Lorsque j'ai fait l'installation, je ne disposais pas de suffisamment de mémoire vive (128MO) pour démarrer sur l'image qui est fournie actuellement. Comme cette méthode d'installation peut-être faite sur des types de machines qui peuvent démarrer de la même manière que l'O2, je livre rapidement la méthode que j'ai utilisé :
Booter sur un noyau GNU/Linux via tftpd
Suivre la méthode ci-dessus en utilisant un noyau linux pour tftp.img. Beaucoup de noyaux pré-compilés sont disponibles sur le net, j'ai utilisé celui-ci [3].
Monter la partition root avec nfs et mountd
Il s'agit ici de monter une partition racine hébergée par le serveur hôte lors du démarrage du noyau. Installons un seveur NFS :
# apt-get install nfs-kernel-server nfs-common |
Téléchargez une archive chroot d'une debian sarge et installez la dans le répertoire /sgifs/ :
# wget http://www.csv.ica.uni-stuttgart.de/homes/ths/linux-mips/debian-chroots/mips-sarge-2004-07-31.tar.gz? |
# mkdir /sgifs |
# mv mips-sarge-2004-07-31.tar.gz /sgifs |
# cd /sgifs |
# tar -xvzf mips-sarge-2004-07-31.tar.gz |
Dans /etc/exports ajoutez :
/sgifs 192.168.0.52(rw,no_root_squash,sync)
Dans /etc/hosts.allow ajoutez:
mountd:ALL
Puis redémarrez le serveur :
# /etc/init.d/nfs-kernel-server restart |
Le système doit vous répondre :
Stopping NFS kernel daemon: mountd nfsd. Unexporting directories for NFS kernel daemon...done. Exporting directories for NFS kernel daemon...done. Starting NFS kernel daemon: nfsd mountd.
Démarrer la station O2
A cette étape, vous devez pouvoir démarrer l'O2. Nous allons passer au noyau les paramètres nécessaires pour pouvoir utiliser le répertoire /sgifs/ de l'hôte comme partition racine. A l'invite de la PROM, tapez :
bootp()tftpboot.img root=/dev/nfs nfsroot=192.168.0.51:/sgifs ip=192.168.0.52:192.168.0.51
Et le système doit démarrer. Dans /var/log/user.log vous devriez voir :
rpc.mountd: authenticated mount request from 192.168.0.52:800 for /sgifs (/sgifs)
Configurez votre réseau
Formater le disque de l'O2
Utilisez la commande fdisk pour partitionner le disque de l'O2. Supposons que /dev/sda1 hébergera le futur système. Enfin, formatez la partition :
# mkfs -t ext2 /dev/sda1 |
Monter la future partition racine et y déposer une arborescence de base
Montons la partition et copions-y une image de la racine actuelle :
# mount -t ext2 /dev/sda1 /mnt |
# tar clf - / | (cd /mnt; tar xf -) |
Copiez le noyau dans /boot. Il faut mettre certains fichiers à jour comme /etc/fstab puis installez arcboot sur le nfsroot (/dev/sda). Redémarrez :
# sync && reboot |
Suivez les étapes ci-dessus pour bien configurer arcboot et la PROM de la station. C'est terminé !
Ressources
- La page de Martin Michlmayr [4] qui annonce ici [5] qu'il a constitué une image du debian-installer.
- La page d'accueil du projet debian/mips [6] : pas forcément à jour.
- La liste de diffusion du port de debian sur l'architecture mips [7]
- La page principale du projet linux-mips [8]
- La liste de diffusion du port de GNU/Linux sur l'architecture mips [9]
- Le GNU/Linux O2 howto [10]
- Des patchs pour le noyau : ici [11] et là [12] et encore ici [13] pour le support du framebuffer.
URL de ce document:
http://www.andesi.org/index.php?node=105
Liens:
[1] http://www.cyrius.com/debian/o2/o2-boot.img
[2] http://www.tal.org/~milang/o2/
[3] http://www.csv.ica.uni-stuttgart.de/homes/ths/linux-mips/kernel/vmlinux-2.6.9rc2-ip32
[4] http://www.cyrius.com/debian/o2/
[5] http://lists.debian.org/debian-mips/2004/11/msg00031.html
[6] http://www.debian.org/ports/mips/
[7] http://lists.debian.org/debian-mips/
[8] http://www.linux-mips.org
[9] http://www.linux-mips.org/archives/
[10] http://www.total-knowledge.com/progs/mips/o2-howto.shtml
[11] http://www.total-knowledge.com/progs/mips/patches/
[12] http://www.linux-mips.org/~glaurung/
[13] http://www.tal.org/~milang/o2/patches/