2018-06-10 03:45:05 +03:00
|
|
|
Mobile NixOS
|
|
|
|
============
|
|
|
|
|
2019-09-22 05:46:01 +03:00
|
|
|
*This is expected to be built against the nixos-unstable for now.*
|
2018-06-10 03:45:05 +03:00
|
|
|
|
|
|
|
|
2018-06-10 06:03:24 +03:00
|
|
|
WIP notes
|
|
|
|
---------
|
|
|
|
|
|
|
|
```
|
|
|
|
# Maybe `nix copy ./result --to ssh://another-host`
|
|
|
|
adb wait-for-device && adb reboot bootloader
|
|
|
|
fastboot boot result # or full path
|
|
|
|
# getting adb and fastboot working is left as an exercise to the reader.
|
|
|
|
```
|
|
|
|
|
2018-06-17 02:21:41 +03:00
|
|
|
```
|
2019-09-22 05:46:01 +03:00
|
|
|
nix-build --argstr device asus-z00t -A build.android-bootimg
|
2018-06-17 02:21:41 +03:00
|
|
|
```
|
|
|
|
|
2018-06-18 04:12:04 +03:00
|
|
|
### Booting qemu
|
2018-06-18 04:01:57 +03:00
|
|
|
|
2019-09-22 05:46:01 +03:00
|
|
|
The qemu target has a `vm` build output, which results in a script that will
|
|
|
|
automatically start the "virtual device".
|
|
|
|
|
2018-06-18 04:01:57 +03:00
|
|
|
```
|
2019-09-22 05:46:01 +03:00
|
|
|
nix-build -I --argstr device qemu-x86_64 -A build.vm
|
|
|
|
./result
|
2018-06-18 04:01:57 +03:00
|
|
|
```
|
|
|
|
|
2018-06-19 05:23:02 +03:00
|
|
|
### `local.nix`
|
|
|
|
|
|
|
|
This file can be used to override (possibly with `lib.mkForce`) options on a global
|
|
|
|
scale for your local builds.
|
|
|
|
|
|
|
|
If the file does not exist, it will not fail.
|
|
|
|
|
|
|
|
A sample `local.nix`:
|
|
|
|
|
|
|
|
```
|
|
|
|
{ lib, ... }:
|
|
|
|
|
|
|
|
{
|
|
|
|
mobile.boot.stage-1.splash.enable = false;
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
This will disable splash screens.
|
|
|
|
|
|
|
|
This will be most useful to configure local sensitive stuff like password (hashes)
|
|
|
|
or ssh keys.
|
|
|
|
|
2018-06-10 06:03:24 +03:00
|
|
|
|
2018-06-10 03:45:05 +03:00
|
|
|
Goals
|
|
|
|
-----
|
|
|
|
|
|
|
|
The goal is to get a nix-built operating system, preferably NixOS running on
|
|
|
|
mobile devices, e.g. Android phones.
|
|
|
|
|
2019-08-26 17:31:43 +03:00
|
|
|
This is intended as building blocks, allowing the end-users to configure their
|
|
|
|
systems as desired.
|
2018-06-10 03:45:05 +03:00
|
|
|
|
2019-08-26 17:31:43 +03:00
|
|
|
The amount of targeted devices does not dilute or devalue the work. It's the
|
|
|
|
other way around, it increases the odds that people will start using the project
|
|
|
|
and contribute back.
|
2018-06-10 03:45:05 +03:00
|
|
|
|
|
|
|
|
2019-08-26 17:31:43 +03:00
|
|
|
Prior work
|
|
|
|
----------
|
2018-06-10 03:45:05 +03:00
|
|
|
|
2019-08-26 17:31:43 +03:00
|
|
|
This project initially borrowed and relied on the hard work from the
|
|
|
|
[PostmarketOS project](https://postmarketos.org/). They are forever
|
|
|
|
thanked in their valiant efforts.
|