blob: 948524e73656448d74f3b55e866d46d0cdf51319 [file] [log] [blame] [view]
# Linux Guest
See `src/virtualization/docs/README.md` for more general information.
## Updating Linux image
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>"
```
## Updating the Linux kernel version
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.