Page suivante Page précédente Table des matières

6. L'interface utilisateur de MILO

Après avoir correctement installé MILO (Abrév. de MIniLOader) vous devrez obtenir l'invite de commande de MILO. Il y a une interface de commandes très simple que vous pouvez utiliser dans le but de démarrer une image Linux particulière. Utilisez la commande help pour obtenir une description sommaire des commandes.

6.1 La commande help

Probablement la commande la plus utile de MILO.


MILO> help
MILO command summary:
ls [-t fs] [dev:[dir]]
                        - List files in directory on device
boot [-t fs] [dev:file] [boot string]
                        - Boot Linux from the specified device and file
run [-t fs] dev:file
                        - Run the standalone program dev:file
show                    - Display all known devices and file systems
set VAR VALUE           - Set the variable VAR to the specified VALUE
unset VAR               - Delete the specified variable
reset                   - Delete all variables
print                   - Display current variable settings
help [var]              - Print this help text

Devices are specified as: fd0, hda1, hda2, sda1...
Use the '-t filesystem-name' option if you want to use
anything but the default filesystem ('ext2').
Use the 'show' command to show known devices and filesystems.
Type 'help var' for a list of variables.

Note : la commande bootopt n'apparaît que pour les systèmes AlphaPC64 (et équivalents).

Périphériques. Jusqu'à ce que vous utilisiez une commande qui nécessite l'utilisation d'un des périphériques, aucune initialisation n'est réalisée sur ces derniers. La première commande show, ls, boot ou run provoquera l'initialisation des périphériques. Les pilotes de périphériques portent exactement les mêmes noms que ceux de Linux. Donc le premier disque IDE sera appelé hda et la première partition sera hda1. Utilisez la commande show pour obtenir une liste des périphériques disponibles.

Systèmes de fichiers. MILO est compatible avec trois différents types de systèmes de fichiers : MSDOS, EXT2 et ISO9660. À partir du moment oû un périphérique est disponible pour lui, MILO est à même de charger et d'exécuter n'importe quelle image disponible. Le système de fichiers par défaut est EXT2. Toutes les commandes utilisant les systèmes de fichiers permettent d'en préciser le type par le biais de l'option -t filesystem. Donc si vous souhaitez obtenir une liste du contenu d'un CDROM il suffit d'entrer la commande :

MILO> ls -t iso9660 scd0:

Variables. MILO contient quelques variables qui aident au processus de démarrage. Si vous démarrez à partir de la console ARC, MILO utilisera les variables d'environnement définies par ce firmware. Pour certains systèmes (tels que l'AlphaPC64), MILO dispose de son propre jeu de variables qui ne changent pas d'un démarrage à l'autre. Ces variables sont :

MILO> help var
Variables that MILO cares about:
  MEMORY_SIZE           - System memory size in megabytes
  BOOT_DEV              - Specifies the default boot device
  BOOT_FILE             - Specifies the default boot file
  BOOT_STRING           - Specifies the boot string to pass to the kernel
  SCSIn_HOSTID          - Specifies the host id of the n-th SCSI controller.
  PCI_LATENCY           - Specifies the PCI master device latency
  AUTOBOOT              - If set, MILO attempts to boot on powerup
                          and enters command loop only on failure.
  AUTOBOOT_TIMEOUT      - Seconds to wait before auto-booting on powerup.

ATTENTION à l'utilisation de la variable AUTOBOOT sans définir de valeur délai (AUTOBOOT_TIMEOUT) car MILO démarrera après avoir attendu 0 seconde. Ce n'est peut-être pas ce que vous souhaitez.

PCI_LATENCY représente le nombre de cycles PCI qu'un périphérique fonctionnant en bus master se réserve lorsqu'il acquiert le contrôle du bus. La valeur par défaut est de 32 et la maximum de 255. Définir une valeur élevée revient à dire que chaque fois qu'un périphérique prend le contrôle du bus PCI, il transfèrera plus de données. Cependant cela signifie aussi qu'un périphérique devra attendre plus longtemps pour obtenir le contrôle du bus.

6.2 Démarrage de Linux

La commande boot charge et démarre un noyau Linux à partir d'un périphérique. Vous aurez besoin d'avoir un disque contenant ce noyau (SCSI, IDE, disquette dans un format reconnu par MILO). Ces images peuvent être compressées à l'aide de gzip ; les premières versions de MILO reconnaissaient ces fichiers à l'aide de leur extension '.gz', tandis que les plus récentes font appel à la signature du fichier.

Il est important de retenir que la version de MILO ne nécessite pas de correspondance avec celle du noyau Linux que vous souhaitez charger. Vous démarrez Linux avec la commande suivante :

MILO> boot [-t file-system] device-name:file-name \
           [[boot-option] [boot-option]...]

device-name représente le nom du périphérique que vous souhaitez utiliser, file-name le nom de fichier de l'image à charger en mémoire. Tous les arguments spécifiés par la suite sont directement transmis au programme exécuté (ici le noyau Linux).

Si vous installez Linux Red Hat pour Alpha vous devrez spécifier un périphérique racine (root device) et autres options :

MILO> boot fd0:vmlinux.gz root=/dev/fd0 load_ramdisk=1

MILO contient automatiquement les périphériques en mode bloc configurés dans vmlinux. J'ai testé le pilote de disquette, de disque IDE ainsi qu'un certain nombre de pilotes SCSI (par exemple le NCR810), et ceux-ci fonctionnent bien. Il est de même important d'attribuer un ID SCSI raisonnable à votre contrôleur SCSI. Par défaut MILO l'initialisera à la valeur maximale (7) qui, en principe, devrait fonctionner correctement. Néanmoins, si vous le souhaitez, vous pouvez spécifier l'ID SCSI de votre N-ième contrôleur SCSI en définissant la variable SCSIn_HOSTID ; par exemple pour préciser que l'ID SCSI du contrôleur numéro 0 est 7 utilisez la commande suivante :

setenv SCSI0_HOSTID 7

6.3 Redémarrage de Linux

Vous pouvez vouloir redémarrer Linux à l'aide de la commande shutdown -r now. Dans ce cas, le noyau Linux repasse le contrôle à MILO (par une instruction HALT CallPAL entrypoint). MILO laisse une version de lui-même compressée en mémoire pour cette seule raison et détecte que le système est redémarré par le biais du HWRPB (Hardware Restart Parameter Block). Dans ce cas vous pouvez  edémarrer à l'aide de la même commande qui vous a servi au démarrage précédent. Il y a un délai de 30 secondes qui vous permet d'interrompre ce processus et de démarrer n'importe quel autre noyau de n'importe quelle autre manière.

6.4 La commande ''bootopt''

Pour les systèmes utilisant la mémoire flash comme les AlphaPC64, EB164 et EB66+, il existe différentes options de démarrage. Celles-ci sont modifiables à l'aide de la commande bootopt. Cette commande a un unique argument : il s'agit d'un nombre décimal qui représente le type d'image à exécuter au prochain redémarrage de la machine (Allumage / Extinction ou Reset).

La valeur 0 active le Debug Monitor, 1 active la console ARC.

Ce chiffre correspond en fait à la N-ième image présente dans la PROM. Afin d'indiquer que l'action à effectuer est le démarrage, il faut ajouter 128 à ce chiffre pour obtenir la valeur à transmettre à bootopt. Vous aurez donc la commande suivante (sachant que MILO est la 3ème image en PROM) :

MILO> bootopt 131

Note : Soyez très vigilant avec cette commande, une bonne règle est de ne jamais utiliser la valeur 0 (Debug Monitor), mais utilisez plutôt le système des jumpers pour obtenir ce résultat.


Page suivante Page précédente Table des matières