theseus-os / Theseus

Theseus is a modern OS written from scratch in Rust that explores 𝐢𝐧𝐭𝐫𝐚𝐥𝐢𝐧𝐠𝐮𝐚𝐥 𝐝𝐞𝐬𝐢𝐠𝐧: closing the semantic gap between compiler and hardware by maximally leveraging the power of language safety and affine types. Theseus aims to shift OS responsibilities like resource management into the compiler.
https://www.theseus-os.com/
MIT License
2.9k stars 173 forks source link

Does not get as far as shell prompt on AArch64 #1049

Open egrimley-arm opened 1 year ago

egrimley-arm commented 1 year ago

I'm running make ARCH=aarch64 iso in Docker, then make ARCH=aarch64 orun host=no outside Docker. In the terminal it gets as far as drop(): bootstrap_task_cleanup, same as on Intel, but in the graphical QEMU window the last thing I see is INFO : about to jump to kernel: ffff80000000.

For a fair comparison I also did exactly the same with ARCH=x86_64 instead of ARCH=aarch64: then I get Theseus Terminal Emulator and can run ls and ps.

(Sorry if this is expected behaviour. From #702 I got the impression that AArch64 is mostly working.)

kevinaboos commented 1 year ago

Thanks for the report! We haven't tried using Docker for aarch64 builds, but I can try it out when I return from a conference. In the meantime @NathanRoyer ought to be able to give a brief update on expected behavior on aarch64; I know we're in the midst of some changes that may have temporarily disabled interactive IO.

NathanRoyer commented 1 year ago

While most of the core blocks of Theseus have been ported to AArch64, the framebuffer (and the rest of the graphics stack) hasn't fully been; the bootloader is responsible for what you see in the graphical QEMU window.

You can start a console via the serial port (by sending any character), but this console is currently limited to statically linked applications.

egrimley-arm commented 1 year ago

Thanks! I can confirm that the serial port console does work for me: I get the shell history and cd, at least!

NathanRoyer commented 1 year ago

Great, happy to hear that :ok_hand:

kevinaboos commented 1 year ago

Thanks @egrimley-arm; i do agree that the current state of the aarch64 build is confusing when you see that partially-complete list of displayed logs on the screen. We'll work on that this week to make regular graphical displays work on aarch64 such that you see something more "normal" on the display.

kevinaboos commented 1 year ago

I'll update this issue once that's done 👍

kevinaboos commented 1 year ago

Some to-do items for me to get this working:

phansel commented 1 month ago

Running make ARCH=aarch64 orun on Asahi Fedora Remix (as of these fixes) results in the same QEMU page stuck on INFO : about to jump to kernel: ffff80000000.

fabracht commented 1 week ago

Running make ARCH=aarch64 run on my Apple M2 Max Sonoma 14.6.1 results in the same page stuck on: INFO : about to jump to kernel: ffff80000000