diff options
author | etaIneLp <33374857+etaIneLp@users.noreply.github.com> | 2020-05-27 10:36:14 -0400 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-05-28 00:50:55 +0200 |
commit | 7bc871ca8dd851605bfd67cb5be1538d009aa56b (patch) | |
tree | 26e7af8afdfd69ef1a7c6e1aad1927fa25349783 | |
parent | eae4843712a87fdbfe2c5aba94c3f3e304935277 (diff) | |
download | serenity-7bc871ca8dd851605bfd67cb5be1538d009aa56b.zip |
Kernel: Stop bootloader from setting video mode with Multiboot
Meta: Update INSTALL.md and grub configs for new boot_mode option
-rw-r--r-- | INSTALL.md | 2 | ||||
-rw-r--r-- | Kernel/Arch/i386/Boot/boot.S | 9 | ||||
-rw-r--r-- | Meta/grub-ebr.cfg | 5 | ||||
-rw-r--r-- | Meta/grub-gpt.cfg | 5 | ||||
-rw-r--r-- | Meta/grub-mbr.cfg | 7 |
5 files changed, 18 insertions, 10 deletions
diff --git a/INSTALL.md b/INSTALL.md index 0998786377..07345f3e2a 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -47,4 +47,4 @@ $ cu -s 57600 -l /dev/ttyUSB0 ## Troubleshooting boot issues without a serial port -Serenity is a graphical OS and thus boots directly to the desktop. If your computer doesn't have a serial port and it fails to boot, you can force Serenity to boot into text mode by editing **Kernel/Arch/i386/Boot/boot.S** and removing **| MULTIBOOT_VIDEO_MODE** from the end of the **multiboot_flags** line before (re)running **make** and **make install**. +Serenity is a graphical OS and thus boots directly to the desktop. If your computer doesn't have a serial port and it fails to boot, you can force Serenity to boot into text mode by selecting the **SerenityOS (text mode)** option in GRUB. diff --git a/Kernel/Arch/i386/Boot/boot.S b/Kernel/Arch/i386/Boot/boot.S index 601a50a7ac..f52db9d726 100644 --- a/Kernel/Arch/i386/Boot/boot.S +++ b/Kernel/Arch/i386/Boot/boot.S @@ -1,8 +1,7 @@ .set MULTIBOOT_MAGIC, 0x1badb002 .set MULTIBOOT_PAGE_ALIGN, 0x1 .set MULTIBOOT_MEMORY_INFO, 0x2 -.set MULTIBOOT_VIDEO_MODE, 0x4 -.set multiboot_flags, MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO | MULTIBOOT_VIDEO_MODE +.set multiboot_flags, MULTIBOOT_PAGE_ALIGN | MULTIBOOT_MEMORY_INFO .set multiboot_checksum, -(MULTIBOOT_MAGIC + multiboot_flags) .section .multiboot @@ -20,12 +19,6 @@ .long 0x00000000 /* bss_end_addr */ .long 0x00000000 /* entry_addr */ -/* for MULTIBOOT_VIDEO_MODE */ -.long 0x00000000 /* mode_type */ -.long 1280 /* width */ -.long 1024 /* height */ -.long 32 /* depth */ - .section .stack, "aw", @nobits stack_bottom: .skip 32768 diff --git a/Meta/grub-ebr.cfg b/Meta/grub-ebr.cfg index 2b351ce72f..f865bb9162 100644 --- a/Meta/grub-ebr.cfg +++ b/Meta/grub-ebr.cfg @@ -5,6 +5,11 @@ menuentry 'SerenityOS (normal)' { multiboot /boot/Kernel root=/dev/hda5 } +menuentry 'SerenityOS (text mode)' { + root=hd0,5 + multiboot /boot/Kernel boot_mode=text root=/dev/hda5 +} + menuentry 'SerenityOS (No ACPI)' { root=hd0,5 multiboot /boot/Kernel root=/dev/hda5 acpi=off diff --git a/Meta/grub-gpt.cfg b/Meta/grub-gpt.cfg index 9de1494daa..13addb2ab8 100644 --- a/Meta/grub-gpt.cfg +++ b/Meta/grub-gpt.cfg @@ -5,6 +5,11 @@ menuentry 'SerenityOS (normal)' { multiboot /boot/Kernel root=/dev/hda2 } +menuentry 'SerenityOS (text mode)' { + root=hd0,2 + multiboot /boot/Kernel boot_mode=text root=/dev/hda2 +} + menuentry 'SerenityOS (No ACPI)' { root=hd0,2 multiboot /boot/Kernel root=/dev/hda2 acpi=off diff --git a/Meta/grub-mbr.cfg b/Meta/grub-mbr.cfg index bbb37ffc66..f5cbf252bc 100644 --- a/Meta/grub-mbr.cfg +++ b/Meta/grub-mbr.cfg @@ -5,12 +5,17 @@ menuentry 'SerenityOS (normal)' { multiboot /boot/Kernel root=/dev/hda1 } +menuentry 'SerenityOS (text mode)' { + root=hd0,1 + multiboot /boot/Kernel boot_mode=text root=/dev/hda1 +} + menuentry 'SerenityOS (No ACPI)' { root=hd0,1 multiboot /boot/Kernel root=/dev/hda1 acpi=off } menuentry 'SerenityOS (with serial debug)' { - root=hd0,1 + root=hd0,1 multiboot /boot/Kernel serial_debug root=/dev/hda1 } |