RoverOS is a hobby OS developed by one person that is certain to have some bugs and oversights.
The 'Rover' in RoverOS is taken from my dogs name, and that is where my username comes from as well.
There is no specific goal of this OS/Kernel, it is just for fun and to learn more about OS internals.
Things I will try to add in the next update
- Barebones XHCI support
- MSI/X support
These are things I will likely add/do in the near future
- AHCI support
- Generic USB device drivers
- Reduced amount of C files
- Non UEFI machines
- CSM only UEFI machines
- Non x64 (64 bit) CPUs
- Aarch32 only CPUs
Things needed for both architectures
gcc
or an x86_64 cross compiler in/home/your_username/opt/cross/bin
ld
Make
Tools needed for AMD64
ovmf
(I suggest looking up how to get ovmf for your distro)nasm
mtools
xorriso
gnu-efi
(https://github.com/vathpela/gnu-efi is the default repo)qemu-system-x86_64
Tools needed for Aarch64
arm-none-eabi-as
arm-none-eabi-ld
qemu-system-aarch64
xorriso
Add to the makefile arguments to use them make arch=<target_arch> <arg>=<value>
kvm
set to1
to enable kvm emulatorhdd
set to1
to enable copying to a real hddgdb
set to1
to enable the use of gdb with qemu
Do not include the '' or "" unless specified and avoid adding a space or / after a variable
- set
OVMF_PATH
to where your OVMF.fd file is (This is likely to be in/usr/share/qemu
)
Example:OVMF_PATH = /use/share/qemu
- Ensure all vars are set as required above
- cd to the base of the RoverOS folder (where the Makefile is)
- run
make arch=<target_arch>
to compile and run the EFI application
Replace '<target_arch>' with either 'x86_64' or 'aarch64'. It is case sensitive
- GPT Formatted HDD
- 30 MB FAT32 Partition
- GRUB Bootloader
- Unknown (I do not have a raspberrypi to test with yet)
- set
HDD_PATH
to a FAT32 partition and ensure the partition is mounted
Example:HDD_PATH = /media/rover/C4D3-DC2C
- run
make arch=DESIRED_ARCH hdd=1
- Put the following in your
40_custom
grub file. - set the root to your FAT32 partition
- hd# where # is the HDD/SSD number, gpt# where # is the partition number
menuentry "RoverOS" {
set root='hd#,gpt#'
chainloader /Polarboot.efi
}
This file is at /etc/grub.d/
for Ubuntu
- update grub config via command (Search up how to do it for your distro)
- Reboot and the option 'RoverOS' should be there
make reset
cleans the directory to the default statemake check
checks for compilers and OVMF