1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 19:27:45 +00:00

Documentation: Update NetworkBoot to include Prekernel

This commit is contained in:
Tim Schumacher 2021-10-06 19:59:52 +02:00 committed by Andreas Kling
parent 4174fe0156
commit 2dcde51a74

View file

@ -11,6 +11,8 @@ This guide assumes several things:
- The TFTP server root is `/srv/tftp/` - The TFTP server root is `/srv/tftp/`
- Bootloaders are located inside `/srv/tftp/boot/` - Bootloaders are located inside `/srv/tftp/boot/`
- SerenityOS artefacts are located inside `/srv/tftp/serenity/`: - SerenityOS artefacts are located inside `/srv/tftp/serenity/`:
- The prekernel is located at `/srv/tftp/serenity/prekernel`
- You can find it at `Build/i686/Kernel/Prekernel/Prekernel`
- The kernel is located at `/srv/tftp/serenity/kernel` - The kernel is located at `/srv/tftp/serenity/kernel`
- You can find it at `Build/i686/Kernel/Kernel` - You can find it at `Build/i686/Kernel/Kernel`
- The ramdisk is located at `/srv/tftp/serenity/ramdisk` - The ramdisk is located at `/srv/tftp/serenity/ramdisk`
@ -72,8 +74,10 @@ insmod gfxterm
terminal_output gfxterm terminal_output gfxterm
menuentry 'SerenityOS - netboot diskless graphical mode' { menuentry 'SerenityOS - netboot diskless graphical mode' {
echo 'Loading prekernel...'
multiboot (tftp)/serenity/prekernel root=/dev/ramdisk0
echo 'Loading kernel...' echo 'Loading kernel...'
multiboot (tftp)/serenity/kernel root=/dev/ramdisk0 module (tftp)/serenity/kernel
echo 'Loading ramdisk...' echo 'Loading ramdisk...'
module (tftp)/serenity/ramdisk module (tftp)/serenity/ramdisk
echo 'Starting SerenityOS.' echo 'Starting SerenityOS.'
@ -82,14 +86,16 @@ menuentry 'SerenityOS - netboot diskless graphical mode' {
menuentry 'SerenityOS - netboot diskless text mode' { menuentry 'SerenityOS - netboot diskless text mode' {
set gfxkeep=text set gfxkeep=text
terminal_output console terminal_output console
echo 'Loading prekernel...'
multiboot (tftp)/serenity/prekernel root=/dev/ramdisk0 boot_mode=text
echo 'Loading kernel...' echo 'Loading kernel...'
multiboot (tftp)/serenity/kernel root=/dev/ramdisk0 boot_mode=text module (tftp)/serenity/kernel
echo 'Loading ramdisk...' echo 'Loading ramdisk...'
module (tftp)/serenity/ramdisk module (tftp)/serenity/ramdisk
echo 'Starting SerenityOS.' echo 'Starting SerenityOS.'
} }
``` ```
5. Place the SerenityOS kernel and ramdisk inside `/srv/tftp/boot/grub/serenity/` 5. Place the SerenityOS prekernel, kernel and ramdisk inside `/srv/tftp/boot/grub/serenity/`
You should now be able to PXE boot into Serenity if enough of your hardware is supported by the Serenity kernel. You should now be able to PXE boot into Serenity if enough of your hardware is supported by the Serenity kernel.
@ -113,7 +119,7 @@ Warning: PXELINUX cannot set up a framebuffer for Multiboot targets, so you will
- libutil.c32 - libutil.c32
- mboot.c32 - mboot.c32
4. Put your `default` configuration file inside `/srv/tftp/boot/pxelinux/pxelinux.cfg/` 4. Put your `default` configuration file inside `/srv/tftp/boot/pxelinux/pxelinux.cfg/`
5. Place the SerenityOS kernel and ramdisk inside `/srv/tftp/boot/grub/serenity/` 5. Place the SerenityOS prekernel, kernel and ramdisk inside `/srv/tftp/boot/grub/serenity/`
Sample PXELINUX `default` configuration file: Sample PXELINUX `default` configuration file:
@ -122,7 +128,7 @@ UI vesamenu.c32
LABEL SerenityOS LABEL SerenityOS
KERNEL mboot.c32 KERNEL mboot.c32
APPEND ../../serenity/kernel root=/dev/ramdisk0 --- ../../serenity/ramdisk APPEND ../../serenity/prekernel root=/dev/ramdisk0 --- ../../serenity/kernel --- ../../serenity/ramdisk
``` ```
### Troubleshooting ### Troubleshooting