clean up all the irrevelant shit on bsd guides
parent
26b530101f
commit
551be50aaa
|
@ -1,130 +0,0 @@
|
||||||
---
|
|
||||||
title: How to install FreeBSD on x86 GNU GRUB payload
|
|
||||||
x-toc-enable: true
|
|
||||||
...
|
|
||||||
|
|
||||||
FreeBSD might show graphical corruption during bootup. You can fix this by
|
|
||||||
altering the order in which kernel modules/drivers are loaded. First, try moving
|
|
||||||
video to an earlier stage on the boot process, or try moving it to a later stage
|
|
||||||
instead. With this, you should be able to get a working display.
|
|
||||||
|
|
||||||
freebsd.img is the installation image for FreeBSD. Adapt the filename
|
|
||||||
accordingly, for whatever FreeBSD version you use.
|
|
||||||
|
|
||||||
Prepare the USB drive (in FreeBSD)
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on
|
|
||||||
the FreeBSD website shows how to create a bootable USB drive for
|
|
||||||
installing FreeBSD. Use the *dd* on that page.
|
|
||||||
|
|
||||||
Prepare the USB drive (in NetBSD)
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
[This
|
|
||||||
page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/)
|
|
||||||
on the NetBSD website shows how to create a NetBSD bootable USB drive
|
|
||||||
from within NetBSD itself. You should use the *dd* method documented
|
|
||||||
there; you can use this with any ISO, including FreeBSD.
|
|
||||||
|
|
||||||
Prepare the USB drive (in LibertyBSD or OpenBSD)
|
|
||||||
------------------------------------------------
|
|
||||||
|
|
||||||
If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is
|
|
||||||
how to create the bootable FreeBSD USB drive:
|
|
||||||
|
|
||||||
Connect the USB drive. Check dmesg:
|
|
||||||
|
|
||||||
dmesg | tail
|
|
||||||
|
|
||||||
Check to confirm which drive it is, for example, if you think its sd3:
|
|
||||||
|
|
||||||
disklabel sd3
|
|
||||||
|
|
||||||
Check that it wasn't automatically mounted. If it was, unmount it. For
|
|
||||||
example:
|
|
||||||
|
|
||||||
doas umount /dev/sd3i
|
|
||||||
|
|
||||||
dmesg told you what device it is. Overwrite the drive, writing the
|
|
||||||
FreeBSD installer to it with dd. For example:
|
|
||||||
|
|
||||||
doas dd if=freebsd.img of=/dev/rsdXc bs=1M; sync
|
|
||||||
|
|
||||||
You should now be able to boot the installer from your USB drive.
|
|
||||||
Continue reading, for information about how to do that.
|
|
||||||
|
|
||||||
Prepare the USB drive (in GNU+Linux)
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
If you downloaded your ISO on a GNU+Linux system, here is how to create
|
|
||||||
the bootable FreeBSD USB drive:
|
|
||||||
|
|
||||||
Connect the USB drive. Check dmesg:
|
|
||||||
|
|
||||||
dmesg
|
|
||||||
|
|
||||||
Check lsblk to confirm which drive it is:
|
|
||||||
|
|
||||||
lsblk
|
|
||||||
|
|
||||||
Check that it wasn't automatically mounted. If it was, unmount it. For
|
|
||||||
example:
|
|
||||||
|
|
||||||
sudo umount /dev/sdX\*
|
|
||||||
umount /dev/sdX\*
|
|
||||||
|
|
||||||
dmesg told you what device it is. Overwrite the drive, writing your
|
|
||||||
distro ISO to it with dd. For example:
|
|
||||||
|
|
||||||
sudo dd if=freebsd.img of=/dev/sdX bs=8M; sync
|
|
||||||
dd if=freebsd.img of=/dev/sdX bs=8M; sync
|
|
||||||
|
|
||||||
You should now be able to boot the installer from your USB drive.
|
|
||||||
Continue reading, for information about how to do that.
|
|
||||||
|
|
||||||
Installing FreeBSD without full disk encryption
|
|
||||||
-----------------------------------------------
|
|
||||||
|
|
||||||
Press C in GRUB to access the command line:
|
|
||||||
|
|
||||||
grub> kfreebsd (usb0,gpt3)/boot/kernel/kernel
|
|
||||||
grub> set FreeBSD.vfs.mountfrom=ufs:/dev/da1p3\
|
|
||||||
grub> boot
|
|
||||||
|
|
||||||
It will start booting into the FreeBSD installer. Follow the normal
|
|
||||||
process for installing FreeBSD.
|
|
||||||
|
|
||||||
Installing FreeBSD with full disk encryption
|
|
||||||
--------------------------------------------
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|
||||||
Booting
|
|
||||||
-------
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|
||||||
Configuring Grub
|
|
||||||
----------------
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|
||||||
Troubleshooting
|
|
||||||
===============
|
|
||||||
|
|
||||||
Most of these issues occur when using libreboot with coreboot's 'text
|
|
||||||
mode' instead of the coreboot framebuffer. This mode is useful for
|
|
||||||
booting payloads like memtest86+ which expect text-mode, but for FreeBSD
|
|
||||||
it can be problematic when they are trying to switch to a framebuffer
|
|
||||||
because it doesn't exist.
|
|
||||||
|
|
||||||
In most cases, you should use the corebootfb ROM images. There ROM images
|
|
||||||
have `corebootfb` in the file name, and they start in a high resolution frame
|
|
||||||
buffer, provided by coreboot's `libgfxinit` library.
|
|
||||||
|
|
||||||
won't boot...something about file not found
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and
|
|
||||||
numbers may differ. Use TAB completion.
|
|
|
@ -3,78 +3,139 @@ title: BSD operating systems
|
||||||
x-toc-enable: true
|
x-toc-enable: true
|
||||||
...
|
...
|
||||||
|
|
||||||
This section is largely x86-centric, pertaining to use of BSD operating systems.
|
Guide last updated on 24 August 2022.
|
||||||
Although not as popular, BSD systems are also (in most cases) *Free Software*,
|
|
||||||
but they are non-copyleft.
|
|
||||||
|
|
||||||
Libreboot is capable of booting many BSD systems. This section mostly documents
|
osboot is capable of booting many BSD systems. This section mostly documents
|
||||||
the peculiarities of Libreboot as it pertains to BSD; you can otherwise refer to
|
the peculiarities of osboot as it pertains to BSD; you can otherwise refer to
|
||||||
the official documentation for whatever BSD system you would like to use.
|
the official documentation for whatever BSD system you would like to use.
|
||||||
|
|
||||||
Video modes
|
Kernel Mode Setting
|
||||||
===========
|
===================
|
||||||
|
|
||||||
For BSD systems, it is desirable that you boot in *text mode*. ROM images
|
Your BSD system *must* support Kernel Mode Setting for your graphics
|
||||||
with `txtmode` in the file name, on x86 systems, boot up with int10h text mode
|
device (most of them do nowadays). The reasons will become apparent, as
|
||||||
in use. This is the most "compatible" option, and BSD operating systems have
|
you read this article.
|
||||||
excellent support for text-mode startup. Many of them also support *kernel mode
|
|
||||||
setting* (KMS) nowadays, which you *need* if you want a graphical desktop on
|
|
||||||
the X window system. The reason is that Libreboot does not currently implement
|
|
||||||
int10h VGA modes on x86 systems. However, basic video initialization is
|
|
||||||
provided on all platforms (int10h text mode, or coreboot framebuffer).
|
|
||||||
|
|
||||||
Combined with the use of SeaBIOS payload, BSD systems (and any other OS that
|
Boot BSD, using SeaBIOS
|
||||||
can boot in text mode) will *just work*. If your BSD system supports kernel
|
=======================
|
||||||
mode setting, it can set up a framebuffer without making use of int10h VGA
|
|
||||||
modes. In this case, the driver (e.g. Intel video driver) will set modes
|
|
||||||
directly, and implement its own framebuffer.
|
|
||||||
|
|
||||||
Booting with a coreboot framebuffer will also work well on most BSD systems.
|
On x86 platforms, osboot/libreboot both provide the choice of GNU GRUB and/or
|
||||||
These ROM images have `corebootfb` in the filename, on recent Libreboot releases.
|
SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is
|
||||||
In this setup, you should make sure that your BSD system has a `corebootfb`
|
poorly maintained and unreliable for this use-case scenario; on BIOS systems,
|
||||||
driver (to make use of the coreboot framebuffer), but when switching to X, your
|
GRUB can chainload BSD bootloaders, but on bare metal (as coreboot payload),
|
||||||
video driver (e.g. Intel video driver) may already support kernel mode setting
|
GRUB can only chainload other coreboot payloads or boot Linux/BSD kernels
|
||||||
which means that the coreboot framebuffer will no longer be used at that point.
|
directly (but direct booting is only really reliable for Linux, in GRUB).
|
||||||
|
|
||||||
Booting BSD
|
It is recommended that you boot in text mode, with SeaBIOS. You can literally
|
||||||
===========
|
just follow the official installation guides for your BSD system, whether it
|
||||||
|
be FreeBSD, OpenBSD or others.
|
||||||
|
|
||||||
On x86 platforms, Libreboot currently provides the choice of GNU GRUB and/or
|
If you don't plan to set up Xorg/Wayland, then that's all you really need to
|
||||||
SeaBIOS payload. You can use *either* payload, to boot BSD operating systems.
|
do. For example, you might want to run a headless server, in which case you
|
||||||
|
probably don't mind running in text mode all the time.
|
||||||
|
|
||||||
SeaBIOS payload
|
Warnings for X11 users
|
||||||
---------------
|
----------------------
|
||||||
|
|
||||||
It is highly recommended that you use the SeaBIOS payload. ROM images are
|
One important peculiarity of most libreboot and osboot systems is: VGA mode
|
||||||
available in the latest Libreboot release, which start with the SeaBIOS payload.
|
support exists, if booting with corebootfb (coreboot's own framebuffer) and
|
||||||
|
the SeaVGABIOS option ROM used in the SeaBIOS payload; however, the ability
|
||||||
|
to switch modes is not present, which means you can't switch to text mode
|
||||||
|
either.
|
||||||
|
|
||||||
The ROM images with GNU GRUB *also* have SeaBIOS available in the boot menu.
|
Coreboot can start in framebuffer (corebootfb) or INT10H text mode, and it
|
||||||
GNU GRUB, when compiled as a coreboot payload, runs on *bare metal* and it can
|
stays in whatever mode was set, unless KMS is used to change the mode. It
|
||||||
boot any other coreboot payload if you use the `chainloader` command.
|
should be noted that the coreboot framebuffer is not a VGA mode, but instead
|
||||||
|
coreboot implements minimal drivers for hardware that it supports, providing
|
||||||
|
a framebuffer directly in memory, which software (such as GRUB) can simply
|
||||||
|
use.
|
||||||
|
|
||||||
The way to use SeaBIOS is fairly self-explanatory. SeaBIOS functions the way
|
The BSD bootloaders on x86, in BIOS systems, typically expect text mode
|
||||||
you would expect on a typical computer. Libreboot currently lacks any sort of
|
startup. It is usually possible to set the console to higher VGA modes,
|
||||||
documentation for SeaBIOS, but you can refer to their
|
on most systems, but not on most coreboot systems with native video
|
||||||
website: <https://seabios.org/SeaBIOS>
|
initialisation used, due to the quirks already described. If you see any
|
||||||
|
documentation (in BSD land) pertaining to VESA modes, ignore it entirely;
|
||||||
|
unless you're using the proprietary VGA ROM for your device, it won't work,
|
||||||
|
and osboot/libreboot don't distribute these (instead, coreboot's own video
|
||||||
|
initialisation is used where possible, or a headless SeaBIOS payload setup
|
||||||
|
is provided, where you would either run it headless or install a graphics
|
||||||
|
card).
|
||||||
|
|
||||||
SeaBIOS is *especially* recommended if you're doing an encrypted installation.
|
Now, this would otherwise mean: no X11/Wayland. If you start in corebootfb
|
||||||
|
mode with SeaVGABIOS, you won't get a display in BSD bootloaders, and if you
|
||||||
|
boot in text mode, you can't set VESA modes from BSD. However, you're in luck:
|
||||||
|
|
||||||
The benefit to using SeaBIOS is that it's basically more reliable. For example,
|
At least OpenBSD and FreeBSD (possibly others) all have excellent KMS
|
||||||
ZFS support is less reliable in GRUB, but a FreeBSD system booted in SeaBIOS
|
support nowadays; short for `Kernel Mode Setting`. This avoids the inefficiency
|
||||||
would work just fine because you'd be using FreeBSD's own bootloader in that
|
of BIOS/UEFI methods, by having the kernel set modes directly. It is based on
|
||||||
instance.
|
KMS drivers that the BSD projects ported over from the Linux kernel. With this,
|
||||||
|
you can use X11/Wayland in FreeBSD (and just X11 in OpenBSD, for now).
|
||||||
|
|
||||||
GNU GRUB payload
|
For example: on FreeBSD, you can install `graphics/drm-kmod` as a package
|
||||||
----------------
|
or from ports, and (for Intel GPUs) do this:
|
||||||
|
|
||||||
GRUB can directly boot many BSD kernels, but support for this is quite unreliable
|
sysrc kld_list+="i915kms"
|
||||||
compared to its support for booting Linux kernels. However, you *can* use GRUB.
|
|
||||||
|
|
||||||
When you use GNU GRUB directly, in this way, the various BSD bootloaders are
|
This creates the following entry in `/etc/rc.conf`:
|
||||||
bypassed entirely.
|
|
||||||
|
|
||||||
We have separate pages for each BSD system:
|
kld_list="i915kms"
|
||||||
|
|
||||||
* [How to install NetBSD on x86 GNU GRUB payload](netbsd.md)
|
On FreeBSD it is also recommended that you switch to KMS on the console/TTY;
|
||||||
* [How to install OpenBSD on x86 GNU GRUB payload](openbsd.md)
|
add this to `/boot/loader.conf` so that you can still use the console after
|
||||||
* [How to install FreeBSD on a x86 GNU GRUB payload](freebsd.md)
|
terminating Xorg:
|
||||||
|
|
||||||
|
kern.vty=vt
|
||||||
|
|
||||||
|
You should not rely on the above instruction (for FreeBSD), because the exact
|
||||||
|
step might change, and it does not go into full detail either. Refer to the
|
||||||
|
documentation provided by your system, to know how KMS is configured.
|
||||||
|
|
||||||
|
ALWAYS READ THE MANUAL
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
All of the BSDs have *excellent* documentation; it's one of the defining
|
||||||
|
characteristics, versus typical Linux distros.
|
||||||
|
|
||||||
|
Aside from this quirk in coreboot, regarding *BIOS* video modes, the BSDs
|
||||||
|
otherwise work in exactly the same way as you would expect, and you can
|
||||||
|
follow along to their official documentation without much fuss.
|
||||||
|
|
||||||
|
No specific or detailed guides will be provided here, because SeaBIOS is
|
||||||
|
fairly self-explanatory; you can otherwise refer to the SeaBIOS
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
If you're flashing a ROM for a machine where `seabios_withgrub`
|
||||||
|
and `seabios_grubfirst` ROMs are available, choose `seabios_withgrub`.
|
||||||
|
|
||||||
|
Dubious mention: Tianocore
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Tianocore is extremely bloated, and unauditable, so it is not included
|
||||||
|
in libreboot or osboot, but it is the reference UEFI implementation by
|
||||||
|
Intel and contributors. It can boot most BSD systems very well.
|
||||||
|
|
||||||
|
More robust ways to provide UEFI services in Libreboot and Osboot are
|
||||||
|
being explored. Tianocore integration will not be provided officially,
|
||||||
|
in any current or future releases of either project.
|
||||||
|
|
||||||
|
Desktop users
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Desktop users on libreboot/osboot should just install a graphics card,
|
||||||
|
and again boot with SeaBIOS in text mode; however, when you do this,
|
||||||
|
SeaBIOS will execute the VGA option ROM on the card which will provide
|
||||||
|
early video initialisation instead of coreboot's initialisation, and that
|
||||||
|
VGA ROM will usually implement full INT10H modes, including the ability
|
||||||
|
to set modes in the BIOS (using interrupts), in which case you don't
|
||||||
|
need to worry about Kernel Mode Setting, but you should still use KMS
|
||||||
|
anyway.
|
||||||
|
|
||||||
|
The reason to use KMS is because it's more efficient. The INT10H service can
|
||||||
|
only be called in Real Mode or Virtual 8086 mode; v8086 is unavailable in
|
||||||
|
long mode (x86\_64) and switching into Real Mode just to set VGA modes is
|
||||||
|
extremely expensive computationally speaking. This is why modern kernels
|
||||||
|
(Linux and BSD one) do mode setting themselves.
|
||||||
|
|
||||||
|
You can learn more about INT10H text/VGA modes here:
|
||||||
|
|
||||||
|
<https://en.wikipedia.org/wiki/INT_10H>
|
||||||
|
|
|
@ -1,148 +0,0 @@
|
||||||
---
|
|
||||||
title: How to install NetBSD on x86 GNU GRUB payload
|
|
||||||
x-toc-enable: true
|
|
||||||
...
|
|
||||||
|
|
||||||
GRUB supports booting NetBSD kernels directly. However, you're better off
|
|
||||||
simply using the SeaBIOS payload; BSD works well with BIOS or UEFI setups.
|
|
||||||
|
|
||||||
GRUB is acceptable for booting unencrypted BSD installations. However,
|
|
||||||
encrypted BSD installations will probably require the use of SeaBIOS/Tianocore.
|
|
||||||
|
|
||||||
Prepare the USB drive (in NetBSD)
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
[This
|
|
||||||
page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/)
|
|
||||||
on the NetBSD website shows how to create a NetBSD bootable USB drive
|
|
||||||
from within NetBSD itself. You should use the *dd* method documented
|
|
||||||
there.
|
|
||||||
|
|
||||||
Prepare the USB drive (in FreeBSD)
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on
|
|
||||||
the FreeBSD website shows how to create a bootable USB drive for
|
|
||||||
installing FreeBSD. Use the *dd* on that page. You can also use the same
|
|
||||||
instructions with a NetBSD ISO image.
|
|
||||||
|
|
||||||
Prepare the USB drive (in OpenBSD or NetBSD)
|
|
||||||
-----------------------------------------------
|
|
||||||
|
|
||||||
If you downloaded your ISO on a OpenBSD or NetBSD system, here is how
|
|
||||||
to create the bootable NetBSD USB drive:
|
|
||||||
|
|
||||||
Connect the USB drive. Check dmesg:
|
|
||||||
|
|
||||||
dmesg | tail
|
|
||||||
|
|
||||||
Check to confirm which drive it is, for example, if you think its sd3:
|
|
||||||
|
|
||||||
disklabel sd3
|
|
||||||
|
|
||||||
Check that it wasn't automatically mounted. If it was, unmount it. For
|
|
||||||
example:
|
|
||||||
|
|
||||||
doas umount /dev/sd3i
|
|
||||||
|
|
||||||
dmesg told you what device it is. Overwrite the drive, writing the
|
|
||||||
NetBSD installer to it with dd. For example:
|
|
||||||
|
|
||||||
doas netbsd.iso of=/dev/rsdXc bs=1M; sync
|
|
||||||
|
|
||||||
You should now be able to boot the installer from your USB drive.
|
|
||||||
Continue reading, for information about how to do that.
|
|
||||||
|
|
||||||
Prepare the USB drive (in GNU+Linux)
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
If you downloaded your ISO on a GNU+Linux system, here is how to create
|
|
||||||
the bootable NetBSD USB drive:
|
|
||||||
|
|
||||||
Connect the USB drive. Check dmesg:
|
|
||||||
|
|
||||||
dmesg
|
|
||||||
|
|
||||||
Check lsblk to confirm which drive it is:
|
|
||||||
|
|
||||||
lsblk
|
|
||||||
|
|
||||||
Check that it wasn't automatically mounted. If it was, unmount it. For
|
|
||||||
example:
|
|
||||||
|
|
||||||
sudo umount /dev/sdX\*
|
|
||||||
umount /dev/sdX\*
|
|
||||||
|
|
||||||
dmesg told you what device it is. Overwrite the drive, writing your
|
|
||||||
distro ISO to it with dd. For example:
|
|
||||||
|
|
||||||
sudo dd if=install60.fs of=/dev/sdX bs=8M; sync
|
|
||||||
dd if=netbsd.iso of=/dev/sdX bs=8M; sync
|
|
||||||
|
|
||||||
You should now be able to boot the installer from your USB drive.
|
|
||||||
Continue reading, for information about how to do that.
|
|
||||||
|
|
||||||
Installing NetBSD without full disk encryption
|
|
||||||
----------------------------------------------
|
|
||||||
|
|
||||||
You might have to use an external USB keyboard during the installation.
|
|
||||||
Press C to access the GRUB terminal.
|
|
||||||
|
|
||||||
grub> knetbsd -r sd0a (usb0,netbsd1)/netbsd
|
|
||||||
grub> boot
|
|
||||||
|
|
||||||
It will start booting into the NetBSD installer. Follow the normal
|
|
||||||
process for installing NetBSD.
|
|
||||||
|
|
||||||
Installing NetBSD with full disk encryption
|
|
||||||
-------------------------------------------
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|
||||||
Booting
|
|
||||||
-------
|
|
||||||
|
|
||||||
Press C in GRUB to access the command line:
|
|
||||||
|
|
||||||
grub> knetbsd -r wd0a (ahci0,netbsd1)/netbsd
|
|
||||||
grub> boot
|
|
||||||
|
|
||||||
NetBSD will start booting. Yay!
|
|
||||||
|
|
||||||
Configuring Grub
|
|
||||||
----------------
|
|
||||||
|
|
||||||
If you don't want to drop to the GRUB command line and type in a
|
|
||||||
command to boot NetBSD every time, you can create a GRUB configuration
|
|
||||||
that's aware of your NetBSD installation and that will automatically be
|
|
||||||
used by libreboot.
|
|
||||||
|
|
||||||
On your NetBSD root partition, create the `/grub` directory and add
|
|
||||||
the file `libreboot_grub.cfg` to it. Inside the
|
|
||||||
`libreboot_grub.cfg` add these lines:
|
|
||||||
|
|
||||||
default=0
|
|
||||||
timeout=3
|
|
||||||
|
|
||||||
menuentry "NetBSD" {
|
|
||||||
knetbsd -r wd0a (ahci0,netbsd1)/netbsd
|
|
||||||
}
|
|
||||||
|
|
||||||
The next time you boot, you'll see the old Grub menu for a few seconds,
|
|
||||||
then you'll see the a new menu with only NetBSD on the list. After 3
|
|
||||||
seconds NetBSD will boot, or you can hit enter to boot.
|
|
||||||
|
|
||||||
Troubleshooting
|
|
||||||
===============
|
|
||||||
|
|
||||||
Most of these issues occur when using Libreboot with coreboot's 'text
|
|
||||||
mode' instead of the coreboot framebuffer. This mode is useful for
|
|
||||||
booting payloads like memtest86+ which expect text-mode, but for NetBSD
|
|
||||||
it can be problematic when they are trying to switch to a framebuffer
|
|
||||||
because it doesn't exist.
|
|
||||||
|
|
||||||
won't boot...something about file not found
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and
|
|
||||||
numbers may differ. Use TAB completion.
|
|
|
@ -1,163 +0,0 @@
|
||||||
---
|
|
||||||
title: How to install OpenBSD on x86 GNU GRUB payload
|
|
||||||
x-toc-enable: true
|
|
||||||
...
|
|
||||||
|
|
||||||
This guide is written for OpenBSD 6.1, but it can be adapted easily for other
|
|
||||||
versions (of OpenBSD).
|
|
||||||
|
|
||||||
If you want an encrypted install, use SeaBIOS instead of GRUB and go here:
|
|
||||||
<https://www.openbsd.org/faq/faq4.html> (official installation guide, which
|
|
||||||
says how to use encryption)
|
|
||||||
|
|
||||||
GRUB supports booting OpenBSD kernels directly. However, you're better off
|
|
||||||
simply using the SeaBIOS payload; BSD works well with BIOS or UEFI setups.
|
|
||||||
|
|
||||||
GRUB is acceptable for booting unencrypted BSD installations. However,
|
|
||||||
encrypted BSD installations will probably require the use of SeaBIOS/Tianocore.
|
|
||||||
|
|
||||||
install61.fs is the installation image for OpenBSD 6.1. Adapt the
|
|
||||||
filename accordingly, for a different OpenBSD version or LibertyBSD.
|
|
||||||
|
|
||||||
Prepare the USB drive (in LibertyBSD or OpenBSD)
|
|
||||||
------------------------------------------------
|
|
||||||
|
|
||||||
If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is
|
|
||||||
how to create the bootable LibertyBSD/OpenBSD USB drive:
|
|
||||||
|
|
||||||
Connect the USB drive and check the system message buffer:
|
|
||||||
|
|
||||||
dmesg | tail
|
|
||||||
|
|
||||||
Check to confirm which drive it is, for example, if you think it's `sd3`:
|
|
||||||
|
|
||||||
disklabel sd3
|
|
||||||
|
|
||||||
Check that it wasn't automatically mounted. If it was, unmount it:
|
|
||||||
|
|
||||||
doas umount /dev/sd3i
|
|
||||||
|
|
||||||
Now write the OpenBSD installer to the drive with `dd`:
|
|
||||||
|
|
||||||
doas dd if=install60.fs of=/dev/rsdXc bs=1M; sync
|
|
||||||
|
|
||||||
You should now be able to boot the installer from your USB drive.
|
|
||||||
Continue reading, for information about how to do that.
|
|
||||||
|
|
||||||
Prepare the USB drive (in NetBSD)
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
[This
|
|
||||||
page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/)
|
|
||||||
on the NetBSD website shows how to create a NetBSD bootable USB drive
|
|
||||||
from within NetBSD itself. You should use the `dd` method documented
|
|
||||||
there. This will also work with the OpenBSD image.
|
|
||||||
|
|
||||||
Prepare the USB drive (in FreeBSD)
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.md) on
|
|
||||||
the FreeBSD website shows how to create a bootable USB drive for
|
|
||||||
installing FreeBSD. Use the `dd` on that page. You can also use the same
|
|
||||||
instructions with a OpenBSD ISO image.
|
|
||||||
|
|
||||||
Prepare the USB drive (in GNU+Linux)
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
If you downloaded your ISO on a GNU+Linux system, here is how to create
|
|
||||||
the bootable OpenBSD USB drive:
|
|
||||||
|
|
||||||
Connect the USB drive. Check dmesg:
|
|
||||||
|
|
||||||
dmesg
|
|
||||||
|
|
||||||
Check lsblk to confirm which drive it is:
|
|
||||||
|
|
||||||
lsblk
|
|
||||||
|
|
||||||
Check that it wasn't automatically mounted. If it was, unmount it. For
|
|
||||||
example:
|
|
||||||
|
|
||||||
sudo umount /dev/sdX\*
|
|
||||||
umount /dev/sdX\*
|
|
||||||
|
|
||||||
dmesg told you what device it is. Overwrite the drive, writing your
|
|
||||||
distro ISO to it with dd. For example:
|
|
||||||
|
|
||||||
sudo dd if=install61.fs of=/dev/sdX bs=8M; sync
|
|
||||||
dd if=install61.fs of=/dev/sdX bs=8M; sync
|
|
||||||
|
|
||||||
You should now be able to boot the installer from your USB drive.
|
|
||||||
Continue reading, for information about how to do that.
|
|
||||||
|
|
||||||
Installing OpenBSD without full disk encryption
|
|
||||||
-----------------------------------------------
|
|
||||||
|
|
||||||
Press C in GRUB to access the command line:
|
|
||||||
|
|
||||||
grub> kopenbsd (usb0,openbsd1)/6.1/amd64/bsd.rd
|
|
||||||
grub> boot
|
|
||||||
|
|
||||||
It will start booting into the OpenBSD installer. Follow the normal
|
|
||||||
process for installing OpenBSD.
|
|
||||||
|
|
||||||
Installing OpenBSD with full disk encryption
|
|
||||||
--------------------------------------------
|
|
||||||
|
|
||||||
If you are using SeaBIOS, OpenBSD's bootloader will be
|
|
||||||
chainloaded automatically and everything will just work.
|
|
||||||
|
|
||||||
Alternatively, it would be good to port OpenBSD either natively as a
|
|
||||||
coreboot payload, or port it to libpayload (payload library in coreboot;
|
|
||||||
it has a basic C library and a few functions for certain operations e.g.
|
|
||||||
text/bitmap).
|
|
||||||
|
|
||||||
Booting
|
|
||||||
-------
|
|
||||||
|
|
||||||
Press C in GRUB to access the command line:
|
|
||||||
|
|
||||||
grub> kopenbsd -r sd0a (ahci0,openbsd1)/bsd
|
|
||||||
grub> boot
|
|
||||||
|
|
||||||
OpenBSD will start booting. Yay!
|
|
||||||
|
|
||||||
Configuring Grub
|
|
||||||
----------------
|
|
||||||
|
|
||||||
If you don't want to drop to the GRUB command line and type in a
|
|
||||||
command to boot OpenBSD every time, you can create a GRUB configuration
|
|
||||||
that's aware of your OpenBSD installation and that will automatically
|
|
||||||
be used by Libreboot.
|
|
||||||
|
|
||||||
On your OpenBSD root partition, create the `/grub` directory and add the file
|
|
||||||
`libreboot_grub.cfg` to it. Inside the `libreboot_grub.cfg` add these lines:
|
|
||||||
|
|
||||||
default=0
|
|
||||||
timeout=3
|
|
||||||
|
|
||||||
menuentry "OpenBSD" {
|
|
||||||
kopenbsd -r sd0a (ahci0,openbsd1)/bsd
|
|
||||||
}
|
|
||||||
|
|
||||||
If your OpenBSD installation uses a GPT scheme, use the `gpt4` partition
|
|
||||||
instead of `openbsd1`.
|
|
||||||
|
|
||||||
The next time you boot, you'll see the old Grub menu for a few seconds,
|
|
||||||
then you'll see the a new menu with only OpenBSD on the list. After 3
|
|
||||||
seconds OpenBSD will boot, or you can hit enter to boot.
|
|
||||||
|
|
||||||
Troubleshooting
|
|
||||||
===============
|
|
||||||
|
|
||||||
Most of these issues occur when using Libreboot with coreboot's 'text
|
|
||||||
mode' instead of the coreboot framebuffer. This mode is useful for
|
|
||||||
booting payloads like memtest86+ which expect text-mode, but for OpenBSD
|
|
||||||
it can be problematic when they are trying to switch to a framebuffer
|
|
||||||
because it doesn't exist.
|
|
||||||
|
|
||||||
Won't boot...something about file not found
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
Your device names (i.e. usb0, usb1, sd0, sd1, wd0, ahci0, hd0, etc) and
|
|
||||||
numbers may differ. Use TAB completion.
|
|
Loading…
Reference in New Issue