diff --git a/website/pages/docs/bsd/index.md b/website/pages/docs/bsd/index.md index 242f1d8..294f482 100644 --- a/website/pages/docs/bsd/index.md +++ b/website/pages/docs/bsd/index.md @@ -1,15 +1,28 @@ --- title: BSD operating systems -x-unreviewed: true ... -This section is largely x86-centric, pertaining to use of BSD operating systems. -Although not as popular, BSD systems are also (in most cases) *Free Software*, -but they are non-copyleft. +At the time of writing, there is no easily installable BSD operating +system or distribution that is fully free. Because of that we cannot +force contributors to the GNU Boot to install BSD operating systems to +run tests, so we instead need voulunteers already running BSD systems +to test booting such systems with GNU Boot. -Libreboot 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 official documentation for whatever BSD system you would like to use. +At the time of writing, the most promising approach to fix this issue +is to wait for HyperbolaBSD to produce something that can be +downloaded so that any contributor could try it relatively easily. + +As for the other BSD operating systems or distributions, The GNU +project documents [known freedom +issues](https://www.gnu.org/distros/common-distros.html) in various +distributions that are not entierely free, and the same page also [has +a section on BSD operating +systems](https://www.gnu.org/distros/common-distros.html#BSD). + +Since GNU Boot is based on the last fully free version of Libreboot, +and that Libreboot was capable of booting many BSD systems, booting +BSD systems may still be possible in GNU Boot, but so far the GNU Boot +project has not heard of anyone who reported that working. Video modes =========== @@ -19,61 +32,85 @@ with `txtmode` in the file name, on x86 systems, boot up with int10h text mode in use. This is the most "compatible" option, and BSD operating systems have 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). +the X window system. The reason is that GNU Boot relies on projects that didn't +implement int10h VGA modes on x86 systems. However, basic video initialization is +provided on all platforms (int10h (text mode), or high resolution coreboot +framebuffer). -Combined with the use of SeaBIOS payload, BSD systems (and any other OS that -can boot in text mode) will *just work*. If your BSD system supports kernel +Combined with the use of SeaBIOS, BSD systems (and any other OS that +can boot in text mode) should in theory *just work*, but they have not been +recently tested with GNU Boot. 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. -These ROM images have `corebootfb` in the filename, on recent Libreboot releases. -In this setup, you should make sure that your BSD system has a `corebootfb` -driver (to make use of the coreboot framebuffer), but when switching to X, your -video driver (e.g. Intel video driver) may already support kernel mode setting -which means that the coreboot framebuffer will no longer be used at that point. +Booting with a coreboot framebuffer might also work well on most BSD systems, +though that hasn't been recently tested either. These ROM images have `corebootfb` +in the filename, on recent GNU Boot releases. In this setup, you should make sure +that your BSD system has a `corebootfb` driver (to make use of the coreboot +framebuffer), but when switching to X, your video driver (e.g. Intel video +driver) may already support kernel mode setting which means that the coreboot +framebuffer will no longer be used at that point. Booting BSD =========== -On x86 platforms, Libreboot currently provides the choice of GNU GRUB and/or -SeaBIOS payload. You can use *either* payload, to boot BSD operating systems. +GNU Boot currently provides the choice of GNU GRUB and/or SeaBIOS +payload. You can use *either* payload, to try to boot BSD operating +systems. If you do, please report your success or failure to the GNU +Boot project through a bug report. See the "Documentation and/or +testing" section in [Helping GNU +Boot](git.md#documentation-andor-testing) page for more details on how +to do that. SeaBIOS payload --------------- -It is highly recommended that you use the SeaBIOS payload. ROM images are -available in the latest Libreboot release, which start with the SeaBIOS payload. +It is highly recommended that you use the SeaBIOS payload if you want +to boot a BSD operating system or distribution. GNU Boot Images which +start with the SeaBIOS payload are available in the latest GNU Boot +release, for all the supported computers. -The ROM images with GNU GRUB *also* have SeaBIOS available in the boot menu. -GNU GRUB, when compiled as a coreboot payload, runs on *bare metal* and it can -boot any other coreboot payload if you use the `chainloader` command. +Most GNU Boot images with GNU GRUB *also* have SeaBIOS available in +the boot menu, though it might not be the case for computers with a +very small boot flash size (512 KiB) like the Intel D945GCLF. GNU +GRUB, when compiled as a coreboot payload, runs on *bare metal* and it +can boot any other coreboot payload if you use the `chainloader` +command. -The way to use SeaBIOS is fairly self-explanatory. SeaBIOS functions the way -you would expect on a typical computer. Libreboot currently lacks any sort of -documentation for SeaBIOS, but you can refer to their -website: +The way to use SeaBIOS is fairly self-explanatory. SeaBIOS functions +the way you would expect on a typical computer. GNU Boot currently +lacks any sort of documentation for SeaBIOS, but you can refer to +their website: -SeaBIOS is *especially* recommended if you're doing an encrypted installation. +SeaBIOS was *especially* recommended by the Libreboot project when it +was fully free for people doing an encrypted installation. -The benefit to using SeaBIOS is that it's basically more reliable. For example, -ZFS support is less reliable in GRUB, but a FreeBSD system booted in SeaBIOS -would work just fine because you'd be using FreeBSD's own bootloader in that -instance. +The Libreboot project also listed the fact that SeaBIOS was "basically +more reliable" at least with BSD systems by giving the example of ZFS +that was less reliable in GRUB and contrasting that with the fact that +if a FreeBSD system booted in SeaBIOS, it would work just fine because +the users would be using the bootloader provided by FreeBSD. + +In addition, GNU boot may also remove support for booting encrypted +BSD systems in the GRUB images it provides at some point, in order to +make GRUB smaller to fit computer with a very small boot flash size +(512 KiB) like the Intel D945GCLF, and unify the documentation, but +also because it can't currently test that due to the lack of fully +free BSD systems that are easily installable. GNU GRUB payload ---------------- -GRUB can directly boot many BSD kernels, but support for this is quite unreliable -compared to its support for booting Linux kernels. However, you *can* use GRUB. +GRUB can directly boot many BSD kernels, but according to the +Libreboot at the time where it was still fully free, support for this +was quite unreliable compared to its support for booting Linux +kernels. However, you *could* use GRUB. -When you use GNU GRUB directly, in this way, the various BSD bootloaders are +When you used GNU GRUB directly, in this way, the various BSD bootloaders were bypassed entirely. -We have separate pages for each BSD system: +The GNU Boot project has separate pages for each BSD system: * [How to install NetBSD on x86 GNU GRUB payload](netbsd.md) * [How to install OpenBSD on x86 GNU GRUB payload](openbsd.md)