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

2. 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 START_SIZE octets en commençant à l'adresse BOOT_SIZE+512 (également en octets). Les constantes START_SIZE et BOOT_SIZE sont définies dans le fichier d'en-tete linux/include/asm-alpha/system.h. START_SIZE doit être au moins aussi élévé que la taille de l'image du noyau (i.e, la somme des tailles des segments .text, .data, et .bss ). De même, BOOT_SIZE doit être au moins aussi élevé que l'image du chargeur. Ces deux constantes doivent avoir comme valeur un multiple entier de la taille d'un secteur, soit 512 octets. Les valeurs par défaut sont 2Mo pour START_SIZE et 16Ko pour BOOT_SIZE. Notez que si vous voulez démarrer depuis une disquette de 1.44Mo, vous devez réduire START_SIZE à 1400Ko et vous assurer que la taille du noyau que vous voulez démarrer ne dépasse pas cette valeur.

Pour construire un chargeur brut, tapez simplement make rawboot dans /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 .text, .data et .bss du fichier objet /usr/src/linux/vmlinux. L'extension .nh indique que ce fichier n'a pas l'entête d'un fichier objet.

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 boot dva0.


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