This is my original operating system running on x64 architecture.
We assume you are in an environment where you can use Docker.
We call this environment the host.
In the host, clone and enter this repository.
And make environment to build and enter the development environment.
/somewhere/in/the/host $ git clone https://github.com/TaiseiIto/HeliOS.git
/somewhere/in/the/host $ cd HeliOS
/somewhere/in/the/host/HeliOS $ make environment
~/HeliOS #
Now you are in the development environment!
On the development environment, make run to run HeliOS on QEMU.
~/HeliOS # make run
This command divides terminal screen left and right by tmux.
The left screen shows a log from COM2 of the QEMU.
The right screen is a terminal of the development environment.
Press Ctrl+t and press h to move from the right screen to the left screen.
Also, press Ctrl+t and press l to move from the left screen to the right screen.
And Connect from a VNC client on the host to localhost:5900 according to RFB protocol to operate HeliOS.
Move to the right screen and make stop to stop HeliOS on QEMU.
~/HeliOS # make stop
On the development environment, make debug to debug HeliOS on QEMU by GDB.
~/HeliOS # make debug
This command divides terminal screen left and right by tmux.
The left screen shows a log from COM2 of the QEMU.
The right screen is a GDB terminal attaching QEMU.
Press Ctrl+t and press h to move from the right screen to the left screen.
Also, press Ctrl+t and press l to move from the left screen to the right screen.
And Connect from a VNC client on the host to localhost:5900 according to RFB protocol to operate HeliOS.
When you finish debugging HeliOS, move to right screen, quit GDB and make stop.
(gdb) quit
~/HeliOS # make stop
On the development environment, make debug_qemu to debug QEMU running HeliOS by GDB.
~/HeliOS # make debug_qemu
This command divides terminal screen left and right by tmux.
The left screen is a GDB terminal debugging QEMU.
The right screen is a general purpose screen.
Press Ctrl+t and press h to move from the right screen to the left screen.
Also, press Ctrl+t and press l to move from the left screen to the right screen.
And Connect from a VNC client on the host to localhost:5900 according to RFB protocol to operate HeliOS.
When you finish debugging QEMU, move to right screen and make stop.
exit the development environment and make on the host to generate Helios, the HeliOS directory tree.
And copy the generated directory to your storage device.
~/HeliOS # exit
/somewhere/in/the/host/HeliOS $ make
/somewhere/in/the/host/HeliOS $ cp -r Helios /your/storage/device/
Then, eject the storage device and connect it to a physical machine. Next, configure BIOS settings of the physical machine to boot up from the storage device according to UEFI. Finally, reboot the physical machine.
Plug in a USB memory including the HeliOS directory tree to GPD MicroPC. And power on GPD MicroPC and push ESC key repeatedly. Then, set as in the example below.
- Security
- Secure Boot
- Secure Boot: [Disable]
- Secure Boot
- Boot
- Quiet Boot: [Disable]
- Fast Boot: [Disable]
- FIXED BOOT ORDER Priorities
- Boot Option #1: [USB Key:UEFI: USB DISK 2.0 PMAP]
- UEFI Hard Disk Drive BBS Priorities
- Boot Option #1: [UEFI OS (P0: BIWIN SSD)]
Save and exit. Then, GPD MicroPC restarts and HeliOS starts.
Power on GPD MicroPC and push ESC key repeatedly. Set as in the example below.
- Security
- Secure Boot
- Secure Boot: [Disable]
- Secure Boot
- Boot
- Quiet Boot: [Enable]
- Fast Boot: [Enable]
- FIXED BOOT ORDER Priorities
- Boot Option #1: [Hard Disk:Windows Boot Manager (P0: BIWIN SSD)]
- UEFI Hard Disk Drive BBS Priorities
- Boot Option #1: [Windows Boot Manager (P0: BIWIN SSD)]
Save and exit. Then, GPD MicroPC restarts and Windows starts.
To get development permission, you need to prepare below.
- A SSH key to push to this repository.
- A
.gnupgdirectory to verify your commits.
And make permission like below.
~/HeliOS # exit
/somewhere/HeliOS $ git config user.email someone@some.domain
/somewhere/Helios $ make permission SSHKEY=/path/to/ssh/key GPGKEY=/path/to/.gnupg
Now you have development permission!