This is a guide for developers, integrators and testers working on EOS7, documenting how to test in-development versions.
See TEST_MATRIX.md for a formal list of the deployment scenarios we test for EOS7.
It's possible to test in a virtual machine and on real hardware. Specific guidance for virtual machines is written up separately here:
You will need the following.
-
A machine running EOS6 or EOS7
-
A machine serving the eos7 ostree that you want to test.
- For automated builds, the Endless OSTree server (
https://ostree.endlessm.com) has the tree. - For local builds, use the eos-build-meta
make ostree-servetarget.
- The GPG key which signed the eos7 ostree
- For automated builds, this is an Endless OSTree signing key, which should already be a trusted key for the remote in EOS6 and EOS7.
- For local builds, this is found in
files/ostree-config/eos.gpg.
For automated builds from eos-build-meta's 'main' branch, use the existing
eos remote, and follow the instructions at
"Endless OS master development version".
If it's a local build, add a new local OSTree remote in the target machine as
follows:
# Replace `server` with address or hostname of the machine serving the repo.
sudo ostree remote add local http://server:8000
# Paste in public key from `files/ostree-config/eos.gpg`, then CTRL-D.
sudo ostree remote gpg-import local --stdin
Then deploy the new tree:
sudo ostree pull local os/eos/amd64/master
sudo ostree admin deploy os/eos/amd64/master
Reboot the machine to start the new version of EOS7.
The make ostree-serve target runs utils/run-local-repo.sh. By default this
uses a slow webserver built into Python. If caddy is available it'll use that
and things will go much faster.
For testing in a VM, see: doc/howto/vm.md.
-
Boot the disk image.
-
If necessary, enrol the 'snakeoil' certificate in the chain of trust. (See below).
-
Run through initial setup to create a user.
-
Ensure the desktop works as you expect.
Official builds of Endless OS are signed with a secret key that is signed by Microsoft. You shouldn't need any extra setup in this case, assuming the machine firmware has the default Microsoft chain of trust set up.
Local builds sign the boot components with an untrusted 'snakeoil' key that anyone can use to sign software. When testing local builds, you can enrol the corresponding certificate as a Machine Owner Key on first boot.
NOTE: This bypasses any security guarantees you might get from Secure Boot. As always, don't keep valuable data on machines that you use for testing software.
The 'snakeoil' certificate is included in the EFI System Partition in local
builds, at EFI/VENDOR-snakeoil.dep. Here's how to enrol it in the chain of
trust:
-
Boot the machine. You should see the Shim "fallback" bootloader, followed by a "Verification failed" error from Shim itself.
-
Press "Enter" to continue, then press "Enter" again to open Mokmanager.
-
In the main "Perform MOK management" menu, select "Enroll key from disk".
-
Navigate to
EFI/VENDOR-snakeoil.dirand select it. -
Select "Continue" to reach the "Enrol the key?" menu. Then select "Yes".
-
Select "Reboot".
There is a video available showing the process: test-enrol-snakeoil-cert.webm.
For an overview of the components involved in booting Endless OS, see:
doc/overview/boot.md.