1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-18 05:21:47 +03:00
Commit Graph

1185 Commits

Author SHA1 Message Date
Samuel Dionne-Riel
fcd8f6ce4b asus-flo: Set CONFIG_PANIC_TIMEOUT to 1 2020-11-08 18:37:13 -05:00
Samuel Dionne-Riel
125aaeb09e asus-dumo: Set CONFIG_PANIC_TIMEOUT to 1 2020-11-08 18:37:13 -05:00
Samuel Dionne-Riel
ca5c116f4c
Merge pull request #237 from samueldr-wip/fix/pinephone-encryption
Misc. fixes for Pinephone build and encryption
2020-11-07 21:50:08 -05:00
Samuel Dionne-Riel
13d73a7115 u-boot: Use types.lines for additional commands 2020-11-07 20:25:49 -05:00
Samuel Dionne-Riel
efd902736b pine64-pinephone: review kernel config for cryptsetup 2020-11-07 20:23:31 -05:00
Samuel Dionne-Riel
61566f3c8c
Merge pull request #236 from samueldr-wip/feature/stage-1-hung-tasks
stage-1: Detect hung tasks and abort boot
2020-11-07 20:18:47 -05:00
Samuel Dionne-Riel
00f81fa95c boot/init: Handle hung tasks
The way we're handling them is to have a global timer that is reset at
any point a task is ran.

This gives a maximum amount of chances to any task to have its
dependencies resolve.

A minimum of 60s is given, but in reality the chances are the conditions
for trying to resolve were already present before the timeout started
counting towards that particular dependency.

Note that a long running task, when successfully ran, does not cause the
timeout to be reached.

E.g. at 10s of timeout a task is started, the loop is not executed until
the task exits. When it exits the branch followed is for a task that
ran, which means that even if the task took 70s total (which gives us 80
seconds) a timeout of 60s wouldn't apply here.

Though, please, don't make your tasks take that much time to run!
2020-11-07 20:13:31 -05:00
Samuel Dionne-Riel
d41c454514 boot/init: Add Devices dependency type
It's a Files dependency, but with just a bit more user friendliness when
used in an error message.
2020-11-07 20:13:31 -05:00
Samuel Dionne-Riel
31f45c5baa boot/init: Add user-friendlier names to dependencies 2020-11-07 20:13:31 -05:00
Samuel Dionne-Riel
a819a8930e boot/init: Cleanup failure
- exit after everything happened, just in case
 - exit the progress display
 - allow a custom delay to be set
2020-11-07 20:13:31 -05:00
Samuel Dionne-Riel
63d49f51ad
Merge pull request #234 from samueldr-wip/feature/stage-1-passphrase
stage-1: Add interactive LUKS decrypting
2020-11-07 20:10:21 -05:00
Samuel Dionne-Riel
a1813efdfb testing/qemu-cryptesetup: Add a test system for LUKS 2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
3f8c115ee4 examples/testing: Add subdirectory for feature testing systems 2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
36aa305f27 boot/init: Add LUKS device support 2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
f45b5b301c boot/init: Implement asking user 2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
eaf8fa9dde boot/init: Long running tasks can export a label
With the same tooling we will be able to ask for a throbber or some
other kind of work indicator.
2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
c80476a047 boot/init: Rework Progress into a "state stash"
This way we really only update the current state bit we want to affect.
2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
e891e2f752 boot/init: Minimal changes required to continue working
These changes implement the different protocol changes.
2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
7b477b9ca5 boot/splash: Allow textual questions to be asked
For now, extremely assumed to be passphrase input.
2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
665d58a7cd boot/splash: Add textarea and keyboard, allowing text input
The following commit will plug it into the messages queue.
2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
1f93066e89 boot/splash: Ensure no funny business if given bogus progress bar values 2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
5755438dfa boot/splash: Add wrappers around text area and keyboard
They will, at some point, be promoted into LVGUI. For the time being
they are local as they have only been verified to work in a useful
manner for this limited use case.
2020-11-07 19:22:33 -05:00
Samuel Dionne-Riel
71149eb01d boot/splash: Ensure cover doesn't intercept events 2020-11-07 18:26:47 -05:00
Samuel Dionne-Riel
f66c31fd7e mrbgems: mruby-lvgui: Update with latest changes 2020-11-07 18:26:47 -05:00
Samuel Dionne-Riel
a28cd3a293 modules/luks: Init
This, with the upcoming luks task allows encrypted drives to work!
2020-11-07 18:26:47 -05:00
Samuel Dionne-Riel
8a47b7913b mkExtraUtils: Allow specifying specific binaries 2020-11-07 18:26:47 -05:00
Samuel Dionne-Riel
1fb62bdf63 generated-filesystems: Allow passing raw images
This will be useful for some tests.
2020-11-07 18:26:47 -05:00
Samuel Dionne-Riel
c1e581d8be
Merge pull request #233 from samueldr-wip/feature/stage-1-progress
stage-1: Add progress tracking in splash
2020-11-07 15:51:11 -05:00
Samuel Dionne-Riel
a50f838e13 boot/recovery-menu: Add missing file 2020-11-06 16:30:22 -05:00
Samuel Dionne-Riel
d929d798fe boot/init: auto-resize task shows a message 2020-11-06 16:30:22 -05:00
Samuel Dionne-Riel
bd030cbe73 boot/init: Add required plumbing to control the forked process 2020-11-06 16:30:22 -05:00
Samuel Dionne-Riel
9b85943be1 boot/init: Add progress tracking 2020-11-06 16:30:22 -05:00
Samuel Dionne-Riel
95b1c7b2bb boot/splash: Fix build as it is now a proper applet 2020-11-06 16:30:22 -05:00
Samuel Dionne-Riel
6cd2985bc1 boot/splash: Implement progress status display
The splash is now an application that should be started and forked from.
Once started, it will listen for messages on a ZeroMQ socket reporting
progress.

The current protocol is extremely simple, reporting (optional) label,
and reporting a progress amount.

Additionally, it responds to a string commant ("quit") to quit as
needed.
2020-11-06 16:30:22 -05:00
Samuel Dionne-Riel
d6982bb82b mruby-lvgui: Update bindings and implementation to latest version 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
a779e28e49 mruby-builder: Fix double error messages print in stub 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
fb4984cb90 s/boot-gui/boot-recovery-menu/g
The applet is specifically written to show what we call the "recovery
menu". Yes, it's also the boot selection, but it will get confusing with
the upcoming boot tracking splash UI that's upcoming.
2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
16b96cb5fb boot/script-loader: Add mruby-zmq
This will be used by the upcoming progress-tracking feature.
2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
2b57dd33e3 mrbgems: Add mruby-zmq 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
efd31433ba mrbgems: Add mruby-simplemsgpack 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
0a458bfcde mrbgems: Add mruby-proc-irep-ext 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
05d7446384 mrbgems: Add mruby-pack 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
ef436a64b1 boot/init: More verbose tasks loop in DEBUG 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
99a7671769 boot/init: Ensure graphics setup is also a UX priority 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
0365079e1f boot/init: Tasks restart the queue
This is to ensure "UX-friendly" tasks gets run ASAP.

Quickly explained, this makes sure that the top tasks (e.g. Splash) gets
ran as soon as possible.

Given the list:

 - Splash
 - Graphics
 - AAA
 - BBB
 - CCC

If `Graphics` ends up running, and AAA, BBB and CCC can too, Splash will
have to wait until all those tasks got ran once!

Not ideal for UX, if e.g. BBB takes time to *run* and we can't show the
progress to users!

The added cost of restarting the queue is minimal with tests I ran. It
was not more than a tenth of a second, and could even be rounding
errors.
2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
2542487348 boot/init: Improve Task#to_s for better inspection 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
cf84880e87 boot/init: clean-up logger initialization 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
1cee1c681b boot/init: Log offset from logger init
This gives us a better idea, relatively, when things happen to be
logged.
2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
cf49659fe3 boot/init: Add CLOCK_MONOTONIC output at boot 2020-10-27 15:23:40 -04:00
Samuel Dionne-Riel
2f87df4121 init: Add mruby-process-clock_gettime to script-loader 2020-10-27 15:23:40 -04:00