mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 10:40:00 +00:00
1.9 KiB
1.9 KiB
CLeonOS Stage1
Stage Goal
- Bring up Limine boot path and CLKS kernel skeleton.
- Support x86_64 and aarch64 build targets in one Makefile.
- Initialize serial log channel and framebuffer + virtual TTY output.
- Build ISO with ramdisk root layout module.
Acceptance Criteria
- Kernel starts via Limine and reaches
clks_kernel_main. - Serial output shows boot logs and architecture banner.
- Framebuffer renders TTY text output for kernel logs.
make ARCH=x86_64 isoandmake ARCH=aarch64 isoproduce architecture-specific ISO paths.- Ramdisk archive is generated from
/ramdiskand packed into boot image.
Build Targets
make setupmake setup LIMINE_REF=<branch-or-tag>make ARCH=x86_64 kernelmake ARCH=x86_64 isomake ARCH=x86_64 runmake ARCH=x86_64 debugmake ARCH=aarch64 kernelmake ARCH=aarch64 isomake ARCH=aarch64 run AARCH64_EFI=/path/to/QEMU_EFI.fd
QEMU Commands
- x86_64:
qemu-system-x86_64 -M q35 -m 1024M -cdrom build/CLeonOS-x86_64.iso -serial stdio
- aarch64:
qemu-system-aarch64 -M virt -cpu cortex-a72 -m 1024M -bios QEMU_EFI.fd -cdrom build/CLeonOS-aarch64.iso -serial stdio
Common Bugs and Debugging
- No boot entry in Limine menu:
- Check
configs/limine.confcopy path and ISO folder layout under/boot/limine.
- Check
- Black screen but serial has output:
- Verify framebuffer request response exists; inspect
[WARN][VIDEO]line in serial.
- Verify framebuffer request response exists; inspect
- No serial output:
- x86_64: ensure QEMU uses
-serial stdioand COM1 init path is active. - aarch64: ensure
virtmachine and PL011 MMIO base0x09000000are used.
- x86_64: ensure QEMU uses
- Linker errors for wrong architecture:
- Confirm
ARCHvalue and matching cross toolchain (x86_64-elf-*oraarch64-elf-*).
- Confirm
- Setup fails while cloning Limine:
- Check network/proxy and try
make setup LIMINE_REF=<available-ref>.
- Check network/proxy and try
- ISO generation failure:
- Ensure
limineartifacts exist andLIMINE_DIRpoints to valid files.
- Ensure