See src/virtualization/docs/README.md
for more general information.
Repeat each of the following steps for ARCH=x64 and ARCH=arm64.
Run the script to build Linux:
$ ./src/virtualization/packages/linux_guest/mklinux.sh \ -l /tmp/linux/source \ -o prebuilt/virtualization/packages/linux_guest/images/${ARCH}/Image \ -b machina-4.18 \ ${ARCH}
Note: -b
specifies the branch of zircon_guest to use. You can modify this value if you need a different version or omit it to use a local version.
Build the sysroot:
$ ./src/virtualization/packages/linux_guest/mksysroot.sh \ -u \ -o prebuilt/virtualization/packages/linux_guest/images/${ARCH}/disk.img \ -d /tmp/toybox \ -s /tmp/dash \ S{ARCH}
Build the tests image:
$ ./src/virtualization/packages/linux_guest/mktests.sh \ -u \ -o prebuilt/virtualization/packages/linux_guest/images/${ARCH}/tests.img \ -d /tmp/linux-tests \ S{ARCH}
Ensure that linux_guest
is working correctly. Then upload the images to CIPD. There is a cipd
binary at .jiri_root/bin/cipd
which can be run via fx cipd
, and cipd auth-login
must be executed once before running the following commands.
Use the git revision hash from zircon-guest.googlesource.com/third_party/ linux
as the kernel_git_revision
tag and from zircon-guest.googlesource.com/linux-tests
as the tests_git_revision
tag.
$ fx cipd create \ -in prebuilt/virtualization/packages/linux_guest/images/${ARCH} \ -name fuchsia_internal/linux/linux_guest-<version>-${ARCH} \ -install-mode copy \ -tag "kernel_git_revision:<git revision>" \ -tag "tests_git_revision:<git revision>"
Then update garnet/tools/cipd_internal.ensure
to point to the new version using the instance ID of the package you created. You can find the instance ID with CIPD like so:
$ fx cipd describe \ fuchsia_internal/linux/linux_guest-<version>-${ARCH} \ -version "kernel_git_revision:<git revision>" \ -version "tests_git_revision:<git revision>"
Create a branch within zircon-guest.googlesource.com/third_party/linux
with naming scheme machina-X.XX
where X.XX
is the kernel version. Make sure to import all the machina defconfig files from the latest branch. Make sure linux_guest
works correctly before updating the images as above. Please also update the instructions above, and in bin/guest/README.md, to use the most recent branch.