1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:17:45 +00:00

Kernel: Separate framebuffers from bootmode

Bootmode used to control framebuffers, panic behavior, and SystemServer.
This patch factors framebuffer control into a separate flag.
Note that the combination 'bootmode=self-test fbdev=on' leads to
unexpected behavior, which can only be fixed in a later commit.
This commit is contained in:
Ben Wiederhake 2021-10-23 17:18:57 +02:00 committed by Andreas Kling
parent 314b8a374b
commit 542a88a7be
16 changed files with 26 additions and 26 deletions

View file

@ -56,5 +56,5 @@ framebuffer with 8x8 font glyphs.
You can force capable multiboot bootloaders to boot Serenity into high resolution mode by editing **Kernel/Arch/i386/Boot/boot.S** and
adding **| MULTIBOOT_VIDEO_MODE** to the end of the **multiboot_flags** before building Serenity.
Setting a boot argument of `boot_mode=no-fbdev` will force the kernel to not initialize any framebuffer devices, hence allowing the system
Setting a boot argument of `fbdev=off` will force the kernel to not initialize any framebuffer devices, hence allowing the system
to boot into console-only mode as `SystemServer` will detect this condition and will not initialize `WindowServer`.

View file

@ -87,7 +87,7 @@ menuentry 'SerenityOS - netboot diskless text mode' {
set gfxkeep=text
terminal_output console
echo 'Loading prekernel...'
multiboot (tftp)/serenity/prekernel root=/dev/ramdisk0 boot_mode=text
multiboot (tftp)/serenity/prekernel root=/dev/ramdisk0 fbdev=off
echo 'Loading kernel...'
module (tftp)/serenity/kernel
echo 'Loading ramdisk...'
@ -179,7 +179,7 @@ For troubleshooting purposes, you can add the following command line arguments i
- `disable_uhci_controller`
Because iPXE (unlike GRUB) doesn't support VESA VBE modesetting when booting a multiboot kernel,
you might not see any output, so add the `boot_mode=text` argument as well to boot into VGA text mode.
you might not see any output, so add the `fbdev=off` argument as well to boot into VGA text mode.
Afterwards you will need to enable the `console` iPXE command by uncommenting the following line in `src/config/general.h`:
```c

View file

@ -114,6 +114,6 @@ lines will boot SerenityOS in self-test mode, run tests, and exit.
```sh
export SERENITY_RUN=ci
export SERENITY_KERNEL_CMDLINE="boot_mode=self-test"
export SERENITY_KERNEL_CMDLINE="fbdev=off boot_mode=self-test"
ninja run
```