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.
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.
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 SCSI
n_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
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.
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.