multiboot
—
procedure for booting NetBSD/x86 from a Multiboot-compliant boot
loader
Multiboot is a specification that defines a protocol between a boot loader and a
kernel. This protocol allows passing boot information between the two in a
standard way, allowing any Multiboot-compliant boot loader to boot any
Multiboot-compliant kernel. The NetBSD kernel supports
Multiboot if it was compiled with options MULTIBOOT
(the default in the ‘GENERIC’ and ‘GENERIC_LAPTOP’
configurations).
Unlike when using the native boot loader, the
NetBSD kernel recognizes a set of command line
arguments if booted through a Multiboot-compliant boot loader. This is
because the Multiboot protocol is not complete enough to completely
configure a NetBSD kernel.
The following arguments are recognized:
- console
- Specifies the console device name. Can be one of ‘com’ or
‘pc’. If the former, console_addr and
console_speed should be given too.
- console_addr
- Specifies the serial port address for the console. Defaults to the value
of
options CONADDR
or ‘0x3f8’ if
this was not given.
- console_speed
- Specifies the serial port speed for the console. Defaults to the value of
options CONSPEED
or ‘9600’ if this
was not given.
- root
- Specifies the name of the device to be mounted as the root partition. It
should not be needed because the kernel tries its best to guess which is
the root partition (basing the decision on the device from which the
kernel was loaded from). In cases where the automatic detection fails,
this flag comes useful. Example: ‘root=wd0e’.
GRUB Legacy is the most popular bootloader that supports Multiboot. You can boot
a NetBSD kernel (assuming it is compiled with
Multiboot support) with a line similar to the following one:
kernel (fd0)/netbsd.gz -c console=pc root=wd0e
multiboot
support first appeared in
NetBSD 4.0.