Kernel: Add option to disable Serial output
This makes all debug output to appear on the TTY
This commit is contained in:
parent
c0bc002ac6
commit
9c31790359
6
iso.sh
6
iso.sh
|
@ -11,8 +11,14 @@ cat > isodir/boot/grub/grub.cfg << EOF
|
||||||
menuentry "banan-os" {
|
menuentry "banan-os" {
|
||||||
multiboot /boot/banan-os.kernel
|
multiboot /boot/banan-os.kernel
|
||||||
}
|
}
|
||||||
|
menuentry "banan-os (no serial)" {
|
||||||
|
multiboot /boot/banan-os.kernel noserial
|
||||||
|
}
|
||||||
menuentry "banan-os (no apic)" {
|
menuentry "banan-os (no apic)" {
|
||||||
multiboot /boot/banan-os.kernel noapic
|
multiboot /boot/banan-os.kernel noapic
|
||||||
}
|
}
|
||||||
|
menuentry "banan-os (no apic, no serial)" {
|
||||||
|
multiboot /boot/banan-os.kernel noapic noserial
|
||||||
|
}
|
||||||
EOF
|
EOF
|
||||||
grub-mkrescue -o banan-os.iso isodir
|
grub-mkrescue -o banan-os.iso isodir
|
||||||
|
|
|
@ -23,6 +23,7 @@ using namespace BAN;
|
||||||
struct ParsedCommandLine
|
struct ParsedCommandLine
|
||||||
{
|
{
|
||||||
bool force_pic = false;
|
bool force_pic = false;
|
||||||
|
bool disable_serial = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
ParsedCommandLine ParseCommandLine()
|
ParsedCommandLine ParseCommandLine()
|
||||||
|
@ -41,6 +42,9 @@ ParsedCommandLine ParseCommandLine()
|
||||||
if (current - start == 6 && memcmp(start, "noapic", 6) == 0)
|
if (current - start == 6 && memcmp(start, "noapic", 6) == 0)
|
||||||
result.force_pic = true;
|
result.force_pic = true;
|
||||||
|
|
||||||
|
if (current - start == 8 && memcmp(start, "noserial", 8) == 0)
|
||||||
|
result.disable_serial = true;
|
||||||
|
|
||||||
if (!*current)
|
if (!*current)
|
||||||
break;
|
break;
|
||||||
start = current + 1;
|
start = current + 1;
|
||||||
|
@ -55,7 +59,10 @@ extern "C" void kernel_main()
|
||||||
{
|
{
|
||||||
DISABLE_INTERRUPTS();
|
DISABLE_INTERRUPTS();
|
||||||
|
|
||||||
Serial::initialize();
|
auto cmdline = ParseCommandLine();
|
||||||
|
|
||||||
|
if (!cmdline.disable_serial)
|
||||||
|
Serial::Initialize();
|
||||||
if (g_multiboot_magic != 0x2BADB002)
|
if (g_multiboot_magic != 0x2BADB002)
|
||||||
{
|
{
|
||||||
dprintln("Invalid multiboot magic number");
|
dprintln("Invalid multiboot magic number");
|
||||||
|
@ -63,8 +70,6 @@ extern "C" void kernel_main()
|
||||||
}
|
}
|
||||||
dprintln("Serial output initialized");
|
dprintln("Serial output initialized");
|
||||||
|
|
||||||
auto cmdline = ParseCommandLine();
|
|
||||||
|
|
||||||
kmalloc_initialize();
|
kmalloc_initialize();
|
||||||
dprintln("kmalloc initialized");
|
dprintln("kmalloc initialized");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue