1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 08:34:57 +00:00

Everywhere: Get rid of the fbdev kernel boot argument remainders

This commit is contained in:
Liav A 2022-08-12 08:37:23 +03:00 committed by Linus Groh
parent a5cef2c41a
commit 6164729d06
14 changed files with 15 additions and 16 deletions

View file

@ -191,7 +191,7 @@ jobs:
working-directory: ${{ github.workspace }}/Build/${{ matrix.arch }} working-directory: ${{ github.workspace }}/Build/${{ matrix.arch }}
env: env:
SERENITY_QEMU_CPU: "max,vmx=off" SERENITY_QEMU_CPU: "max,vmx=off"
SERENITY_KERNEL_CMDLINE: "fbdev=off panic=shutdown system_mode=self-test" SERENITY_KERNEL_CMDLINE: "graphics_subsystem_mode=off panic=shutdown system_mode=self-test"
SERENITY_RUN: "ci" SERENITY_RUN: "ci"
run: | run: |
echo "::group::ninja run # Qemu output" echo "::group::ninja run # Qemu output"

View file

@ -81,7 +81,7 @@ has set up before booting the Kernel, don't initialize any driver.
* **`system_mode`** - This parameter is not interpreted by the Kernel, and is made available at `/proc/system_mode`. SystemServer uses it to select the set of services that should be started. Common values are: * **`system_mode`** - This parameter is not interpreted by the Kernel, and is made available at `/proc/system_mode`. SystemServer uses it to select the set of services that should be started. Common values are:
- **`graphical`** (default) - Boots the system in the normal graphical mode. - **`graphical`** (default) - Boots the system in the normal graphical mode.
- **`self-test`** - Boots the system in self-test, validation mode. - **`self-test`** - Boots the system in self-test, validation mode.
- **`text`** - Boots the system in text only mode. (You may need to also set **`fbdev=off`**.) - **`text`** - Boots the system in text only mode. (You may need to also set **`graphics_subsystem_mode=off`**.)
* **`time`** - This parameter expects one of the following values. **`modern`** - This configures the system to attempt * **`time`** - This parameter expects one of the following values. **`modern`** - This configures the system to attempt
to use High Precision Event Timer (HPET) on boot. **`legacy`** - Configures the system to use the legacy programmable interrupt to use High Precision Event Timer (HPET) on boot. **`legacy`** - Configures the system to use the legacy programmable interrupt

View file

@ -56,7 +56,6 @@ 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 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. adding **| MULTIBOOT_VIDEO_MODE** to the end of the **multiboot_flags** before building Serenity.
Setting a boot argument of `fbdev=off` will force the kernel to not initialize any framebuffer devices, hence allowing the system Setting a boot argument of `graphics_subsystem_mode=limited` 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`.
to boot into console-only mode as `SystemServer` will detect this condition and will not initialize `WindowServer`.
If you do not see any output, it's possible that the Kernel panics before any video is initialized. In that case, you might try debugging the init sequence with the PC speaker to see where it gets stuck. If you do not see any output, it's possible that the Kernel panics before any video is initialized. In that case, you might try debugging the init sequence with the PC speaker to see where it gets stuck.

View file

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

View file

@ -116,6 +116,6 @@ the default value `halt` keeps qemu around, which allows you to inspect the stat
```sh ```sh
export SERENITY_RUN=ci export SERENITY_RUN=ci
export SERENITY_KERNEL_CMDLINE="fbdev=off system_mode=self-test" export SERENITY_KERNEL_CMDLINE="graphics_subsystem_mode=off system_mode=self-test"
ninja run ninja run
``` ```

View file

@ -49,7 +49,7 @@ UNMAP_AFTER_INIT void CommandLine::initialize()
// I know, we don't do legacy, but even though I eliminated 'boot_mode' from the codebase, there // I know, we don't do legacy, but even though I eliminated 'boot_mode' from the codebase, there
// is a good chance that someone's still using it. Let's be nice and tell them where to look. // is a good chance that someone's still using it. Let's be nice and tell them where to look.
// TODO: Remove this in 2022. // TODO: Remove this in 2022.
PANIC("'boot_mode' is now split into panic=[halt|shutdown], fbdev=[on|off], and system_mode=[graphical|text|selftest]."); PANIC("'boot_mode' is now split into panic=[halt|shutdown], graphics_subsystem_mode=[on|limited|off], and system_mode=[graphical|text|selftest].");
} }
} }

View file

@ -90,7 +90,7 @@ jobs:
timeoutInMinutes: 60 timeoutInMinutes: 60
env: env:
SERENITY_QEMU_CPU: 'max,vmx=off' SERENITY_QEMU_CPU: 'max,vmx=off'
SERENITY_KERNEL_CMDLINE: 'fbdev=off panic=shutdown system_mode=self-test' SERENITY_KERNEL_CMDLINE: 'graphics_subsystem_mode=off panic=shutdown system_mode=self-test'
SERENITY_RUN: 'ci' SERENITY_RUN: 'ci'
- script: | - script: |

View file

@ -49,7 +49,7 @@ fi
echo "Using 'ninja run' to generate manpages ..." echo "Using 'ninja run' to generate manpages ..."
export SERENITY_RUN="ci" export SERENITY_RUN="ci"
export SERENITY_KERNEL_CMDLINE="fbdev=off panic=shutdown system_mode=generate-manpages" export SERENITY_KERNEL_CMDLINE="graphics_subsystem_mode=off panic=shutdown system_mode=generate-manpages"
# The 'sed' gets rid of the clear-screen escape sequence. # The 'sed' gets rid of the clear-screen escape sequence.
ninja -C "$BUILD_DIR" -- run | sed -re 's,''c,,' ninja -C "$BUILD_DIR" -- run | sed -re 's,''c,,'
echo echo

View file

@ -13,7 +13,7 @@ LABEL SerenityOS
LABEL SerenityOSText LABEL SerenityOSText
MENU LABEL SerenityOS (text mode) MENU LABEL SerenityOS (text mode)
KERNEL mboot.c32 KERNEL mboot.c32
APPEND ../Prekernel root=/dev/hda1 fbdev=off --- ../Kernel APPEND ../Prekernel root=/dev/hda1 graphics_subsystem_mode=off --- ../Kernel
LABEL SerenityOSNoACPI LABEL SerenityOSNoACPI
MENU LABEL SerenityOS (No ACPI) MENU LABEL SerenityOS (No ACPI)

View file

@ -8,7 +8,7 @@ menuentry 'SerenityOS (normal)' {
menuentry 'SerenityOS (text mode)' { menuentry 'SerenityOS (text mode)' {
root=hd0,5 root=hd0,5
multiboot /boot/Prekernel fbdev=off root=/dev/hda4 multiboot /boot/Prekernel graphics_subsystem_mode=off root=/dev/hda4
module /boot/Kernel module /boot/Kernel
} }

View file

@ -8,7 +8,7 @@ menuentry 'SerenityOS (normal)' {
menuentry 'SerenityOS (text mode)' { menuentry 'SerenityOS (text mode)' {
root=hd0,2 root=hd0,2
multiboot /boot/Prekernel fbdev=off root=/dev/hda2 multiboot /boot/Prekernel graphics_subsystem_mode=off root=/dev/hda2
module /boot/Kernel module /boot/Kernel
} }

View file

@ -8,7 +8,7 @@ menuentry 'SerenityOS (normal)' {
menuentry 'SerenityOS (text mode)' { menuentry 'SerenityOS (text mode)' {
root=hd0,1 root=hd0,1
multiboot /boot/Prekernel fbdev=off root=/dev/hda1 multiboot /boot/Prekernel graphics_subsystem_mode=off root=/dev/hda1
module /boot/Kernel module /boot/Kernel
} }

View file

@ -8,7 +8,7 @@ MODULE_PATH=boot://2/boot/Kernel
:SerenityOS (text mode) :SerenityOS (text mode)
PROTOCOL=multiboot1 PROTOCOL=multiboot1
CMDLINE=fbdev=off root=/dev/hda2 CMDLINE=graphics_subsystem_mode=off root=/dev/hda2
KERNEL_PATH=boot://2/boot/Prekernel KERNEL_PATH=boot://2/boot/Prekernel
MODULE_PATH=boot://2/boot/Kernel MODULE_PATH=boot://2/boot/Kernel

View file

@ -433,7 +433,7 @@ if [[ "$CMD" =~ ^(build|install|image|copy-src|run|gdb|test|rebuild|recreate|kad
build_image build_image
# In contrast to CI, we don't set 'panic=shutdown' here, # In contrast to CI, we don't set 'panic=shutdown' here,
# in case the user wants to inspect qemu some more. # in case the user wants to inspect qemu some more.
export SERENITY_KERNEL_CMDLINE="fbdev=off system_mode=self-test" export SERENITY_KERNEL_CMDLINE="graphics_subsystem_mode=off system_mode=self-test"
export SERENITY_RUN="ci" export SERENITY_RUN="ci"
build_target run build_target run
fi fi