===== Boot Loaders ===== Which boot loader an Alpha system uses depends on its [[software:firmware|firmware]]. Almost every Alpha that runs Linux today boots it with [[software:boot_loaders:aboot|aboot]] from the SRM console. [[software:boot_loaders:milo|MILO]] is needed only on the few systems without SRM, such as the Alpha XLT and the AlphaPC 164UX (Ruffian); no released MILO binary boots a current kernel, so it must be built from the [[https://github.com/alphalinux/milo|alphalinux/milo]] repository. Under [[software:emulators#qemu|QEMU]], no boot loader is used: QEMU loads the kernel and initrd itself. See [[documentation:installation|Installation]] for the complete procedure. Distributions for Alpha package aboot rather than GRUB. In Gentoo, for example, ''sys-boot/aboot'' is keyworded only for Alpha, and ''sys-boot/grub'' is not keyworded for Alpha at all. [(>[[https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-boot/aboot|sys-boot/aboot]], gentoo.git)] [(>[[https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-boot/grub|sys-boot/grub]], gentoo.git)] ^ Boot loader ^ Firmware ^ Description ^ | [[software:boot_loaders:aboot|aboot]] | SRM console | Loads Linux from a disk, CD, or the network, using the console's PALcode and services | | [[software:boot_loaders:milo|MILO]] | ARC, AlphaBIOS, ARCSBIOS | Miniloader that provides its own PALcode and device drivers, loaded through ''linload.exe'' or ''ldmilo.exe''; last released in 2001, so current kernels need a MILO built from source | | APB | AlphaBIOS on the [[hardware:motherboards:up1000|UP1000]] | Loaded by AlphaBIOS; reads the AlphaBIOS boot configuration to find the kernel [(>{{wiki:hardware:motherboards:up1000:up1000_user_manual.pdf?linkonly|UP1000 User Manual}}, pp. 4-14 to 4-15)]. The UP1000 can instead be flashed with API's SRM console and boot with aboot; see [[hardware:motherboards:up1000#firmware|UP1000: Firmware]] [(>''readme.1st'' in [[https://github.com/alphalinux/firmware/blob/master/api/UP1000/up1000_srm_5.6_beta.zip|up1000_srm_5.6_beta.zip]], alphalinux/firmware repository)] | | None | qemu-palcode, under [[software:emulators#qemu|QEMU]] | QEMU loads the kernel and initrd given with ''-kernel'' and ''-initrd''; see [[documentation:qemu|QEMU]] [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/debian-alpha-mbox/2021-March.mbox#L470|"Bug#986009: installation-reports: document qemu workarounds and bug in newer d-i image (fwd)"]], Thorsten Glaser, debian-alpha, 27 Mar 2021)] | The SRM console can also boot a Linux kernel directly over the network with BOOTP, without a boot loader, using an image built with the kernel's ''bootpfile'' or ''bootpzfile'' target. [(>[[https://github.com/alphalinux/mailing-list-archives/blob/main/debian-alpha-mbox/2007-August.mbox#L1139|"Re: [BUG] 2.6.23-rc3 won't boot on alpha (fwd)"]], Jay Estabrook, debian-alpha, 16 Aug 2007)] An initrd can be appended to the image by setting ''INITRD'' to its path when building the target. [(>[[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/alpha/boot/Makefile?h=v7.3-rc1|arch/alpha/boot/Makefile]], Linux 7.3)] See [[software:boot_loaders:aboot#network_booting|aboot: Network booting]]. ==== Documentation ==== ^ Document ^ Date ^ | [[documentation:installation|Installation]], on this wiki | | | [[https://github.com/alphalinux/aboot/blob/master/doc/faq/SRM-HOWTO.sgml|SRM Firmware Howto]], v0.8.1 by Rich Payne and David Huggins-Daines | February 2004 | | {{wiki:software:boot_loaders:milo_howto.pdf?linkonly|Alpha Miniloader Howto, v0.85}} (historical; see [[software:boot_loaders:milo|MILO]] for current usage) | April 1997 | {{tag>software boot_loader}}