Building ArkOS is acheived through the
build script. Here is an example of building the generic
image (suitable for running in QEMU, or dd-ing onto a flash drive):
~/ark$ ./ark/arkos/build -c ark/arkos/configs/generic --organization 2ea25035-6aa4-42fb-9955-92288ea1b972 -o ~/arkos-image
This will build the system, and you can find the base disk image in the
~/arkos-image/final_artifacts/disk.img file. It
will assume the resulting ArkOS image is intended for the organization at
is the TBD public organization. You should substitute in your company’s organization ID.
The generic configuration will launch the platform supervisor by default. This will be included
automatically into your image. You can view the configuration in the
file within your repository.
The ArkOS build system is capable of caching intermediate steps. By default, it will clean
and rebuild everything each time you run the build process. You can use the
line option to clean only a portion of cache, if you are just iterating on that (for example, the
All ArkOS images are required to be signed. It’s not possible to boot or deploy an unsigned operating system. Right now, you must create a key in the catalog and make use of that.
~/ark$ ./build/ark-signature-tool --organization <my-organization-identifier> --generate-rsa 'my-key-name'
This will generate a key called “my-key-name” which can be used to sign ArkOS or software releases. See the section on configuration to determine where to list this name.
You can test your new disk image by booting it in QEMU:
sudo qemu-system-x86_64 -bios /usr/share/ovmf/OVMF.fd -drive file=~/arkos-image/final_artifacts/disk.img,if=virtio,format=raw -smp 2 -m 2048 -enable-kvm
You will need the QEMU and ovmf packages installed (
ovmf on Ubuntu) in order to test this.
This will boot the UEFI image, with a dual-core machine and 2GB of RAM. Feel free to play with or adjust options.
If you omit the
enable-kvm flag, you don’t need to run it under
Building a USB Drive
You can simply dd the
~/arkos-image/final_artifacts/disk.img file onto a USB drive, and it should become bootable into
your instance of ArkOS. The disk image has all of the partition and boot loader information set.