1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-14 18:21:41 +03:00
mobile-nixos/doc/boot_process.adoc
2020-03-01 17:33:25 -05:00

71 lines
1.9 KiB
Plaintext

= Boot Process
include::_support/common.inc[]
“How does Mobile NixOS boot?”
This is what this documentation topic tries to describe. This is for end-users.
For developers, see in-depth topics.
== Booting Mobile NixOS
Most devices targeted by Mobile NixOS are intended to boot only one kernel at
a time, with one stage-1, and one system.
NixOS, in turn, shines when a system can choose a _generation_, which has its
own kernel, stage-1, and system build.
Mobile NixOS, at this point in time, sits on the halfway point. The user cannot
choose which generation a kernel and stage-1 comes from, but can boot a
specific generation.
== Booting a specific generation
This is done through booting in "recovery mode". This will stop the stage-1
process before it jumps into the default generation, and will allow you to
select a system to boot into.
The method to enter recovery mode depends on your device
=== Android-based devices
Android-based devices can be booted in their respective recovery mode.
When the device is a _"Boot as recovery"_ system, no other setup than flashing
the boot partition is required. _"Boot as recovery"_ systems are generally newer
Android-based devices.
When the device is not a _"Boot as recovery"_, or still uses a recovery
partition, you will need to flash a recovery image to the recovery partition.
....
$ nix-build --argstr device $DEVICE -A build.android-recovery
$ fastboot flash recovery result
....
=== All other devices
_Including the default boot partition for Android-based devices._
When the boot process is about to switch to the system, if any of the following
keys are held, it will instead show the recovery menu.
* Volume up
* Volume down
* Left shift
* Right shift
* Left control
* Right control
* Escape
== Testing the boot GUI
The simulator can be launched using the following commands:
....
$ nix-build --argstr device qemu-x86_64 -A pkgs.boot-gui-simulator
$ result/bin/simulator --resolution 1080x1920
....