Building UOS from Clear Linux OS¶
This document builds on the Try using ACRN, and explains how to build UOS from Clear Linux OS.
Build UOS image in Clear Linux OS¶
Follow these steps to build a UOS image from Clear Linux OS:
In Clear Linux OS, install
ister
(a template-based installer for Linux) included in the Clear Linux OS bundleos-installer
. For more information aboutister
, please visit https://github.com/bryteise/ister.$ sudo swupd bundle-add os-installer
After installation is complete, use
ister.py
to generate the image for UOS with the configuration inuos-image.json
:$ cd ~ $ sudo ister.py -t uos-image.json
An example of the configuration file
uos-image.json
:{ "DestinationType" : "virtual", "PartitionLayout" : [ { "disk" : "uos.img", "partition" : 1, "size" : "512M", "type" : "EFI" }, { "disk" : "uos.img", "partition" : 2, "size" : "1G", "type" : "swap" }, { "disk" : "uos.img", "partition" : 3, "size" : "8G", "type" : "linux" } ], "FilesystemTypes" : [ { "disk" : "uos.img", "partition" : 1, "type" : "vfat" }, { "disk" : "uos.img", "partition" : 2, "type" : "swap" }, { "disk" : "uos.img", "partition" : 3, "type" : "ext4" } ], "PartitionMountPoints" : [ { "disk" : "uos.img", "partition" : 1, "mount" : "/boot" }, { "disk" : "uos.img", "partition" : 3, "mount" : "/" } ], "Version": "latest", "Bundles": ["bootloader", "editors", "kernel-iot-lts2018", "network-basic", "os-core-update", "os-core", "openssh-server", "sysadmin-basic"] }
Note
To generate the image with a specified version, please modify the
"Version"
argument, and we can set"Version": 26550
instead of"Version": "latest"
for example.Here we will use
"Version": 26550
for example, and the UOS image calleduos.img
will be generated after successful installation. An example output log is:Reading configuration Validating configuration Creating virtual disk Creating partitions Mapping loop device Creating file systems Setting up mount points Starting swupd. May take several minutes Installing 9 bundles (and dependencies)... Verifying version 26550 Downloading packs... Extracting emacs pack for version 26550 Extracting vim pack for version 26550 ... Cleaning up Successful installation
On your target device, boot the system and select “The ACRN Service OS”, as shown below:
=> The ACRN Service OS Clear Linux OS for Intel Architecture (Clear-linux-iot-lts2018-4.19.0-19) Clear Linux OS for Intel Architecture (Clear-linux-iot-lts2018-sos-4.19.0-19) Clear Linux OS for Intel Architecture (Clear-linux-native.4.19.1-654) EFI Default Loader Reboot Into Firmware Interface
Start the User OS (UOS)¶
Mount the UOS image and check the UOS kernel:
# losetup -r -f -P --show ~/uos.img # mount /dev/loop0p3 /mnt # ls -l /mnt/usr/lib/kernel/ cmdline-4.19.0-26.iot-lts2018 config-4.19.0-26.iot-lts2018 default-iot-lts2018 -> org.clearlinux.iot-lts2018.4.19.0-26 install.d org.clearlinux.iot-lts2018.4.19.0-26
Adjust the
/usr/share/acrn/samples/nuc/launch_uos.sh
script to match your installation. These are the couple of lines you need to modify:-s 3,virtio-blk,~/uos.img \ -k /mnt/usr/lib/kernel/default-iot-lts2018 \
Note
UOS image
uos.img
is in the directory~/
and UOS kerneldefault-iot-lts2018
is in/mnt/usr/lib/kernel/
.You are now all set to start the User OS (UOS):
$ sudo /usr/share/acrn/samples/nuc/launch_uos.sh
You are now watching the User OS booting up!