SRM Firmware Howto Version originale : (Traduction française : Nicolas Jadot (njadot@etu.info.unicaen.fr)) v0.5, 17 August 1996 Ce document décrit la manière de démarrer une station Linux/Alpha utilisant le En général, il est préférable d'utiliser MILO à la place du programme

A moins que vous soyiez intéressés par les détails techniques, vous pouvez passer directement à la section Comment SRM démarre-t-il un système d'exploitation ?

Toutes les versions de SRM peuvent démarrer à partir d'un disque SCSI et les versions destinées aux plates-formes récentes, comme les Noname et AlphaStations, peuvent de plus démarrer depuis une disquette. Le démarrage réseau via Le démarrage de Linux avec SRM s'effectue en deux étapes : d'abord, SRM charge et transfère le controle à un chargeur secondaire. Ensuite, ce chargeur secondaire met en place l'environnement de Linux, lit l'image du noyau depuis un système de fichiers sur disque et donne la main à Linux.

A l'heure actuelle il existe deux chargeurs secondaires pour Linux : le chargeur fourni avec le noyau Linux et Charger le chargeur secondaire

SRM est ignorant des systèmes de fichiers et des partitions des disques. Il s'attend simplement à ce que le chargeur secondaire occupe un certain nombre de secteurs physiques consécutifs, commençant à une adresse donnée. L'information concernant la taille du chargeur secondaire et l'adresse de son premier secteur est stockée dans les 512 premiers octets. Plus précisement , l'entier long occupant l'adresse 480 contient la Si cette somme est correcte, SRM continue et lit le nombre de secteurs indiqué par la Le chargeur brut

Les sources de ce chargeur peuvent être trouvés dans le répertoire linux/arch/alpha/boot des sources du noyau Linux. Ce programme charge le noyau Linux en lisant linux/include/asm-alpha/system.h. ). De même, Pour construire un chargeur brut, tapez simplement /usr/src/linux. Ceci devrait produire dans arch/alpha/boot les fichiers suivants : tools/lxboot: Le premier secteur du disque. Il contient l'adresse et la taille du prochain fichier au format décrit ci-dessus. tools/bootlx: Le lanceur brut qui chargera le fichier ci-dessous vmlinux.nh: L'image brute du noyau constituée des segments /usr/src/linux/vmlinux. L'extension

La concaténation de ces trois fichiers devrait être écrite sur le disque à partir duquel vous voulez démarrer. Par exemple, pour démarrer depuis une disquette, insérez une disquette vierge dans le lecteur, soit /dev/fd0 et ensuite tapez : cat tools/lxboot tools/bootlx vmlinux >/dev/fd0

Vous pouvez maintenant arréter le système et démarrer depuis une disquette en utilisant la commande Le chargeur

Si vous utilisez le démarrage direct depuis divers systèmes de fichiers ( lancement de fichiers objets exécutables (ELF et ECOFF), lancement de noyaux compressés, démarrage par réseau (en utilisant le protocole table de partitions au format Digital Unix (compatible avec les tables de partitions de BSD), démarrage interactif et configurations par défaut des consoles SRM qui n'acceptent pas les longues chaînes d'option. Se procurer et installer Les codes sources les plus récents d'. La description de ce manuel s'applique à Une fois que vous avez téléchargé et extrait l'archive include/config.h sont correctes vis-à-vis de votre environnement . Normalement, vous ne devriez pas avoir à changer quoi que ce soit pour compiler sous Linux, mais c'est toujours une bonne chose de vérifier. Si la configuration vous convient, tapez simplement aboot L'exécutable réel (fichier objet ECOFF ou ELF), bootlx Comme ci-dessus, mais ce fichier ne contient que les segments text, data et bss (ce fichier n'est pas un fichier objet), sdisklabel/writeboot Un utilitaire pour installer tools/e2writeboot Un utilitaire pour installer tools/isomarkboot Un utilitaire pour installer tools/abootconf Un utilitaire pour configurer Installation sur disquette

Le lanceur peut être installé sur une disquette en utilisant la commande /dev/fd0 : fdformat /dev/fd0 mke2fs /dev/fd0 e2writeboot /dev/fd0 bootlx Installation sur disque dur

Sachant que la commande , il est alors possible d'installer /dev/sda.) : swriteboot /dev/sda bootlx Sur un Jensen, vous devrez laisser un peu plus d'espace, sachant que vous devrez également stocker le noyau à cet endroit - 2Mo devraient suffire en utilisant une image compressée. Utilisez pour écrire Installation sur CD-ROM

Pour construire un CD-ROM amorçable avec SRM, construisez simplement , et lancez isomarkboot filesystem bootlx La commande ci-dessus nécessite que et que Construire un noyau Linux

Un noyau Linux amorçable peut être construit par les étapes suivantes. Durant le cd /usr/src/linux make config make dep make boot

La dernière commande construira le fichier arch/alpha/boot/vmlinux.gz qui peut alors être copié sur le disque à partir duquel vous désirez démarrer. Dans notre exemple précédent concernant la disquette, cela donnerai : mount /dev/fd0 /mnt cp arch/alpha/boot/vmlinux.gz /mnt umount /mnt Démarrer Linux

Avec le

Les arguments Nom du fichier boot

L'argument [ boot dka600 -file 2/vmlinux.gz Ou, pour démarrer depuis le premier lecteur de disquette : boot dva0 -file vmlinux.gz

Si un disque n'a pas de table des partitions, Le numéro de partition 0 est utilisé pour demander le démarrage depuis un disque qui ne contient pas (encore) de système de fichiers. Si l'on spécifie le numéro de "partition" 0, /dev/sda, on pourrait utiliser la commande : swriteboot /dev/sda bootlx vmlinux.gz

Démarrer un système de cette façon n'est pas obligatoirement nécessaire. La raison d'être de cette fonctionnalité est de permettre l'installation de Linux sur un système qui ne peut démarrer depuis une disquette (e.g., le Jensen). Drapeaux de démarrage

Plusieurs drapeaux de démarrage peuvent être spécifiés. La syntaxe en est : -flags "options..." Où "options..." est une combinaison des options suivantes (séparées par des espace). Il y a encore plus d'options, en fonction des pilotes que le noyau a installé. Les options listées ci-après ne sont là que pour illustrer l'idée générale : major/minor du fichier de périphérique en hexadécimal (e.g., 0x802 pour /dev/sda2) ou un nom de fichier de périphérique (e.g.,/dev/fd0, /dev/sda2).

Quelques implémentations de SRM (e.g., celle du Jensen) sont limitées et n'autorisent que les chaînes d'options de courte longueur (e.g., au plus 8 caractères). Dans ce cas là, boot dka0 -fl i aboot> 3/vmlinux.gz root=/dev/sda3 single Comme démarrer de cette façon devient rapidement pénible , -- option --> (0-9) demande à /etc/aboot.conf. Un exemple de fichier # # aboot default configurations # 0:3/vmlinux.gz root=/dev/sda3 1:3/vmlinux.gz root=/dev/sda3 single 2:3/vmlinux.new.gz root=/dev/sda3 3:3/vmlinux root=/dev/sda3 8:- root=/dev/sda3 # fs-less boot of raw kernel 9:0/vmlinux.gz root=/dev/sda3 # fs-less boot of (compressed) ECOFF kernel - Avec ce fichier, la commande boot dka0 -fl 1 correspond exactement à la commande de démarrage donnée ci-dessus. Il est cependant facile d'oublier la correspondance entre les numéros et les chaînes d'options. Pour éviter ce problème, démarrez avec l'option "h" et /etc/aboot.conf avant d'afficher l'invite demandant la chaîne d'option entière. En conclusion, même si /etc/aboot.conf Sélectionner la partition de /etc/aboot.conf

Quand /etc/aboot.conf. Nouvellement compilé, /dev/sda2). Comme il serait contraignant d'avoir à recompiler /dev/sda, vous utiliseriez la commande : abootconf /dev/sda 3 Vous pouvez vérifier le réglage courant simplement en omettant le numéro de partition. Alors, abootconf /dev/sda affichera la partition actuellement sélectionnée. Notez que aboot.conf depuis la ligne de commande de démarrage. Cela peut être fait avec une ligne de commande de la forme /etc/aboot.conf et /etc/aboot.conf depuis la troisième partition, affiche son contenu à l'écran et attend que vous entriez les options de démarrage. Démarrage réseau

Deux étapes préliminaires sont nécessaires avant que Linux puisse démarrer par un réseau. Premièrement, vous devrez positionner les variables d'environnement de SRM pour permettre le démarrage /etc/bootptab. Le fichier myhost.cs.arizona.edu:\ :hd=/remote/:bf=vmlinux.bootp:\ :ht=ethernet:ha=08012B1C51F8:hn:vm=rfc1048:\ :ip=192.12.69.254:bs=auto: Cette entrée considère que l'adresse Ethernet de la machine est /remote. Pour plus d'informations sur la configuration de /usr/src/linux/arch/alpha/boot/vmlinux.gz (éditez le /remote/. Ensuite, allumez la machine client et démarrez la, en spécifiant l'adaptateur Ethernet comme périphérique de démarrage. SRM nomme typiquement le premier adaptateur Ethernet boot ewa0 Les options Partager un disque avec Digital Unix

Malheureusement, Digital Unix ne sait rien de Linux, aussi, partager un disque unique entre les deux systèmes n'est pas totalement simple. Cependant, ce n'est pas une tâche difficile si vous suivez les conseils prodigués dans cette section. Nous considérerons que vous utilisez la version 0.5 ou postérieure de Partitionner le disque

Premièrement et avant tout : n'utilisez Pour configurer une partition Linux /etc/disktab) : rz26|RZ26|DEC RZ26 Winchester:\ :ty=winchester:dt=SCSI:ns#57:nt#14:nc#2570:\ :oa#0:pa#131072:ba#8192:fa#1024:\ :ob#131072:pb#262144:bb#8192:fb#1024:\ :oc#0:pc#2050860:bc#8192:fc#1024:\ :od#393216:pd#552548:bd#8192:fd#1024:\ :oe#945764:pe#552548:be#8192:fe#1024:\ :of#1498312:pf#552548:bf#8192:ff#1024:\ :og#393216:pg#819200:bg#8192:fg#1024:\ :oh#1212416:ph#838444:bh#8192:fh#1024: Les champs intéressants ici sont a b d e f |---|-------|-----------|-----------|-----------| c |-----------------------------------------------| g h |-----------------|-----------------| Digital Unix insiste pour que la partition :ta=unused:tb=swap:tg=4.2BSD:th=reservd8: Pourquoi avons-nous marqué la partition disklabel -rw /dev/rrz5c rz26 Vous pouvez vérifier que tout va bien en lisant le disklabel -r /dev/rrz5c. A ce point, vous pouvez vouloir redémarrer Digital Unix et vous assurer que la partition Digital Unix est encore présente et en bon état. Si c'est le cas, vous pouvez arréter la machine et commencer l'installation de LInux. Prenez soin de sauter l'étape de partitionnement du disque lors de la procédure d'installation. Sachant que nous avons déjà installé une table de partitions correcte, vous devriez être capable de procéder à cette opération et de sélectionner la huitième partition comme partition racine de Linux et la deuxième comme partition de swap. Si le disque est le deuxième disque SCSI de la machine, les noms de périphériques pour ces deux partitions seront /dev/sdb8 et /dev/sdb2, respectivement (notez que Linux utilise des lettre pour désigner les disques et des numéros pour désigner les partitions, exactement à l'inverse de Digital Unix ; le schéma de Linux a plus de sens bien sûr ;-). Installer : avec le -- SRM, vous ne pouvez démarrer qu'un et un seul système d'exploitation par disque. Pour cette raison, il est généralement préférable de disposer d'au moins deux disques SCSI dans une machine sur laquelle vous désirez utiliser aussi bien Linux que Digital Unix. Bien sûr vous pouvez aussi démarrer Linux depuis une disquette si la vitesse importe peu, ou par un réseau, si vous disposez d'un serveur , nous devons spécifier à . Nous pouvons le faire sous Linux avec une ligne de commande de la forme suivante (de nouveau, nous supposerons que l'on veut installer swriteboot -f1 -f3 /dev/sdb bootlx Le paramètre boot dka5 -fi 8/vmlinux.gz -fl root=/dev/sdb8