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
.