Samuel Dionne-Riel
b05c4a7e29
lvgui: Bind more
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
aff5df2cb8
lvgui: Add MobileNixOS namespace
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
cee29f9a05
lvgui: Add initialization hook to BaseWindow
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
e3e1ce9191
lvgui: Add header hook to base window
...
This allows any uses of BaseWindow to add something to the flow at the
location the header bar would be.
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
bf3cc95968
lvgui: Add header bar
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
3c6c72d0d6
lvgui: Add Placeholder widget
...
Used to replace something while the other thing is not available...
(wow, such clarity)
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
3419dd6035
lvgui: Move general stuff in __init
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
aae04ccd45
lvgui: Use correct fonts for status bar
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
3d032921fa
lvgui: Extract status_bar
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
604e46a1b8
lvgui: extract clock
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
93c9a3d35d
lvgui: extract back button
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
30dd4a0ce2
lvgui: Rework back button a bit
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
f8fd4bd919
lvgui: Extract button
...
As it's meant to be inherited from inside of LVGUI too, prefix it with
an underscore so it's lexicographilcally preferred :/
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
a1934c41a8
lvgui: Extract horizontal separator
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
ff9464c947
lvgui: Extract battery
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
90f629e309
lvgui: Extract page
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
1127cee44f
lvgui: Extract the base widget
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
8f41fa751a
lvgui: Extract screen in a file
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
2fee791301
lvgui: Extract toolbar in a file
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
505f58e8f7
lvgui: Define scalable sizes
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
f9e13d3e06
lvgui: header -> status bar
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
cd27836faf
lvgui: Use the NixOS theme
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
bad1f0566d
lvgui: Add colors
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
2d2e852b58
lvgui: Export LVGL 'DPI'
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
1a66222e0b
lvgui: 2021-02-20 -> 2021-07-19
2021-07-19 15:50:06 -04:00
Samuel Dionne-Riel
b4e6f98fc6
boot/lib: Make reboot modes HAL more robust
...
Allows running in the simulator.
2021-07-15 18:16:47 -04:00
Samuel Dionne-Riel
2410994f17
boot/lib: Be a bit more resilient outside of stage-1
...
Mainly allows using the simulator with the error applet
2021-07-15 18:16:47 -04:00
Samuel Dionne-Riel
29e2940ca2
boot/lib: init xdg.rb
2021-07-15 18:16:47 -04:00
Samuel Dionne-Riel
98e2ab907f
Merge pull request #305 from samueldr-wip/feature/lvgui-pan
...
lvgui: "pan" framebuffers
2021-02-23 20:59:51 -05:00
Samuel Dionne-Riel
d82733b13e
Merge pull request #306 from samueldr-wip/fix/armv7l
...
armv7: Misc. fixes
2021-02-23 20:59:28 -05:00
Samuel Dionne-Riel
fb11c6f3fe
boot/script-loader: Strip store path hashes
...
This is required otherwise nuke-refs will destroy the irep.
2021-02-20 17:23:01 -05:00
Samuel Dionne-Riel
072325ce00
boot/script-loader: Fix for new mruby.builder
2021-02-20 17:23:01 -05:00
Samuel Dionne-Riel
441701d215
lvgui: Update native fragment
2021-02-20 16:41:23 -05:00
Samuel Dionne-Riel
32f86364a1
boot/init: Make udev a dependency for the switch root target
...
In some instances, e.g. really slow CPU, udev might not have run, and
libinput will not be able to work appropriately.
That is because uevent files will be missing.
2021-02-20 16:40:38 -05:00
Samuel Dionne-Riel
7332254db2
Merge pull request #298 from MetaDark/fix-libxkbcommon
...
boot/lib/lvgui: fix libxkbcommon after nixpkgs#108004
2021-02-15 17:22:37 -05:00
Samuel Dionne-Riel
f0a7e33767
boot/init: switch root forwards FDT properties as needed
2021-02-11 18:15:34 -05:00
Samuel Dionne-Riel
b667d2298f
boot/init: kexec now uses generation DTB if possible
...
Fixes #264
2021-02-11 18:15:23 -05:00
Samuel Dionne-Riel
2a46962d76
boot/init: Honor skipping kexec
2021-02-11 18:14:30 -05:00
Samuel Dionne-Riel
aea3b46d13
boot/recovery-menu: Add option to skip kexec
...
But why?
Multiple reasons:
- generation kernel does not work as expected
- booting a boot.img with an experimental kernel
I'm sure there's other reasons too.
Fixes #266
2021-02-11 18:14:30 -05:00
Samuel Dionne-Riel
5d50144468
boot/recovery-menu: Pass data around using JSON
2021-02-11 18:14:30 -05:00
Kira Bruneau
7beb26204f
boot/lib/lvgui: fix libxkbcommon after nixpkgs#108004
2021-02-09 17:55:57 -05:00
Samuel Dionne-Riel
225ed39dad
Fix stdenv.lib being removed
...
Deals with https://github.com/NixOS/nixpkgs/pull/111284
2021-02-02 05:51:18 -05:00
Samuel Dionne-Riel
76b5e79ca5
boot/init: Add System.umount()
2021-01-27 19:09:07 -05:00
Samuel Dionne-Riel
5ba41dd963
boot/init: Fix shellOnFail
...
- It was running too late.
- Wasn't actually using `shellOnFail` config
2021-01-27 19:09:07 -05:00
Samuel Dionne-Riel
ba2873771d
lvgui: 2020-11-20 -> 2021-01-23
2021-01-25 18:40:54 -05:00
Samuel Dionne-Riel
7a0f906571
boot/lib/lvgui: Add add_select
helper
2021-01-25 18:40:54 -05:00
Samuel Dionne-Riel
919e1b2ab1
boot/lib/lvgui: Better explain event handler in impl.
2021-01-25 18:40:54 -05:00
Samuel Dionne-Riel
0f0625d359
boot/lib/lvgui: Add option selector
...
A bit like a "drop down" select
2021-01-25 18:40:54 -05:00
Samuel Dionne-Riel
6d85c00ce0
boot/lib/lvgui: Add a debug styles helper
...
This way it's easy to just colour an element when visualizing its
metrics.
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
562c8ab081
boot/lib/lvgui: Add HorizontalSeparator
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
8d4a660526
boot/lib/lvgui: Use dummy object in base window
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
e23870f2af
boot/lib/lvgui: Add a dummy object
...
It was found, through some debugging, that we were adding a
non-invisible dummy object for focus group handling. With this change
we have a common dummy object to use for this purpose.
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
1b8e5f2844
boot/lib/lvgui: Focus stack push/pop also works for event handlers
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
029938e6f1
boot/lib/lvgui: Add focus group "stacks"
...
This probably should not have been added straight onto LVGL bindings,
but that's where they're the easiest to implement safely.
This allows a widget to take control of the focus group, while allowing
the previous content to be re-added properly.
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
2c06866f2e
boot/lib/lvgui: Add accessors for built-in layers
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
c4eb57f4cf
boot/lib/lvgui: Bind color maths helper
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
0c4b3e9580
boot/lib/lvgui: Bind more for scrollable pages
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
9aff7f666b
boot/lib/lvgui: Add button style accessors
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
7fb3f2b377
boot/lib/lvgui: Add add_switch
helper
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
eebb09e790
boot/lib/lvgui: Add BaseUIElements mixin
...
Where more generic one-off helpers will be added
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
1cb820a9ac
boot/lib/lvgui: Add SwitchLine control
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
99a7262a24
boot/lib/lvgui: Add toggle switch basic bindings
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
995f32a30e
boot/lib/lvgui: Add display driver to introspection
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
78f6798175
boot/init: Graphics can also mean DRM
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
fe77a60ff3
boot/lib/lvgui: Add libdrm
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
4ea165c2fb
boot/lib/lvgui: Add libinput
2021-01-25 18:40:50 -05:00
Samuel Dionne-Riel
2145e68e7d
Merge pull request #288 from samueldr-wip/master
...
boot/init: Work around gadget teardown errors
2021-01-25 16:58:52 -05:00
Samuel Dionne-Riel
edf2e83a20
boot/init: Work around gadget teardown errors
...
Those errors are non-issues.
Tear-down should, anyway, be implemented in a library to be used in
other tools like target disk mode and a stage-2 gadget utility.
2021-01-24 23:38:54 -05:00
Samuel Dionne-Riel
6e274d86bd
boot/error: Fix by adding missing dependency
2021-01-24 23:36:34 -05:00
Samuel Dionne-Riel
badb5c635b
boot/init: Add System.symlink
...
Same as File.symlink, but logged.
(Also fixes logging of System.write)
2021-01-03 23:08:24 -05:00
Samuel Dionne-Riel
b4c603bc56
boot/init: Tear down usb gadget on kexec
...
Yikes, specialized code in the kexec codepath... though this is okay for
now. Let's not over-generalize when we don't know what will be required
in the future for abstraction.
2021-01-03 20:23:44 -05:00
Samuel Dionne-Riel
2d3ba8d21d
boot/init: Add System.delete() to delete files or directories
2021-01-03 20:23:44 -05:00
Samuel Dionne-Riel
19ff65e821
boot/lib: Remove accidentally left puts
2021-01-02 00:55:21 -05:00
Samuel Dionne-Riel
2fefc0ae5b
boot/splash: Fixes for extracted libs
...
And additionally review how it's built.
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
dc809d47bd
boot/lib: Import splash components in lvgui
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
7cd9acd991
boot/splash: Remove useless var
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
966f000c5d
boot/error: Use extracted reboot mode hal
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
562ddc1272
boot/recovery-menu: Use extracted reboot mode hal
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
50a2a08e09
boot/lib: Extract reboot modes lib
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
a12e4314dc
boot/recovery-menu: Use extracted configuration lib
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
d0ad7a8a20
boot/init: Use extracted configuration lib
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
af9912ef81
boot/lib: Import init configuration lib
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
3cde402440
boot/init: Use extracted monkey patches
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
e6e4e228a4
boot/lib: Move init monkey patches
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
b50024f29b
boot/error: describe libraries used
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
45a4835ebe
boot/recovery-menu: describe libraries used
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
bec41be25b
boot/splash: describe libraries used
2021-01-01 21:37:30 -05:00
Samuel Dionne-Riel
6ca59e8cfb
boot/init: Describe specific libraries to include
2021-01-01 21:37:29 -05:00
Samuel Dionne-Riel
4b0a275cc1
boot/splash: Fixes for script-loader changes
2021-01-01 21:37:29 -05:00
Samuel Dionne-Riel
74498792ee
boot/recovery-menu: Fixes for script-loader changes
2021-01-01 21:37:29 -05:00
Samuel Dionne-Riel
d18d3615e6
boot/script-loader: Use the mruby-lvgui-native-fragment
2021-01-01 21:37:29 -05:00
Samuel Dionne-Riel
447d8d59e7
boot/script-loader: Add mruby-lvgui-native-fragment
2021-01-01 21:37:29 -05:00
Samuel Dionne-Riel
ffc4a12fa1
boot/lib: Import lvgui ruby implementation
2021-01-01 21:37:29 -05:00
Samuel Dionne-Riel
b88d2565ee
boot/lib: Stash evdev lib in a folder
2021-01-01 21:37:29 -05:00
Samuel Dionne-Riel
b33afce1a0
boot/init: Re-format mrbc invocation
2021-01-01 21:37:29 -05:00
Samuel Dionne-Riel
e88ace2a3e
boot/init: switch_root keeps selected generation in stage-0
2020-12-29 17:59:09 -05:00
Samuel Dionne-Riel
e9dba7afb9
boot/init: Fix logic in symlink resolution
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
ebd095e019
boot/init: AutoResize only if needed
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
22ba517ac8
boot/init: Control the splash fades for kexec
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
fa4804e67d
boot/init: Add kernel cmdline helper
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
cb0d21d2fc
boot/init: booting from kexec communicated using cmdline
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
200e5aac1b
boot/init: Kexecing keeps the splash as-is
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
b82492a565
boot/init: Use kexec only in stage-0.
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
eed796865e
boot/init: Use configurable stage value
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
6ad92214da
boot/init: switch_root can and will kexec
...
This is partly complete; we need to handle the situation where **only**
stage-0 should kexec into the next system.
This is yet to be implemented, but will be done through a configuration
that transforms the current bootloader-launched stage-1 into a stage-0,
while keeping the on-disk stage-1 stage-1.
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
812b02dd32
boot/init: Fix partial teardown for splash
...
`#quit` would leave the `@pid` variable around, which in turn meant that
calling `#kill` after would fail since the process was already gone.
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
ad4efeff2f
boot/splash: Allow skipping fade-out (sticky)
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
bece0564d8
boot/splash: Allow skipping fade-in
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
2ab969db37
boot: LUKS errors are "controlled"
...
This means that we shouldn't raise an exception, but rather fail
outright. The background being black means that things *failed
successfully*, as expected.
2020-11-30 20:45:03 -05:00
Samuel Dionne-Riel
fd0a9856bd
boot/init: publish desire for recovery mode
2020-11-22 16:53:03 -05:00
Samuel Dionne-Riel
67957f4972
boot/init: Move recovery detection to an abstraction layer
2020-11-22 16:53:03 -05:00
Samuel Dionne-Riel
ff9d66713e
boot/splash: Update UI before executing commands
...
Otherwise we might miss the last message, which may include things to
present to the user, e.g. the label "Continuing to ..."
2020-11-22 16:53:03 -05:00
Samuel Dionne-Riel
cfba499677
boot/splash: Add recovery notification support
...
To be shown, the publisher has to publish the `recovery` value.
2020-11-22 16:53:03 -05:00
Samuel Dionne-Riel
841b835b05
boot/init: update comments in switch_root
...
It better describes the reasoning for the keys than the previous
"off-the-cuff" comment I left myself.
2020-11-22 16:48:32 -05:00
Samuel Dionne-Riel
ae9ce35a90
boot/lib: Implement evdev query through FFI
2020-11-22 16:48:32 -05:00
Samuel Dionne-Riel
5928902108
boot/lib: add generated linux input event codes
...
This could be done a build-time, but it's not like we actually need it
to be the freshest ever.
We're free to update it whenever.
2020-11-22 16:48:32 -05:00
Samuel Dionne-Riel
65d570144f
boot/misc: Add script to generate linux input event codes
2020-11-22 16:48:32 -05:00
Samuel Dionne-Riel
0037614821
boot/init: Use the new evdev library
...
It still uses evdev internally, but first let's change the interface,
*then* change the implementation details.
2020-11-22 16:48:32 -05:00
Samuel Dionne-Riel
f2d1cf95b2
boot/applets: Remove last applet (key-held)
...
It'll be, at first, bundled-in as-is in a library, then re-done through
evdev ffi.
2020-11-22 16:48:32 -05:00
Samuel Dionne-Riel
b2a54941de
boot/splash: Focus on the text area
...
This allows keyboard input to be sent to it, thus supporting passphrase
input using a physical keyboard.
Additionally, don't show the focus ring on the only element.
2020-11-22 16:45:25 -05:00
Samuel Dionne-Riel
263d6713c9
boot/error: Give a choice for the next action to the end-user
2020-11-13 19:46:44 -05:00
Samuel Dionne-Riel
8d182d07d2
boot/error: Rework UI for better reporting
...
First, right now we're putting the full error message front and center,
rather than the sad phone.
We're keeping the sad face though, but only as an accent icon.
Finally, not part of this PR, we'll add actions to abort a total crash.
2020-11-13 19:46:44 -05:00
Samuel Dionne-Riel
dbfbdf385b
boot/init: Add error title in addition to code
2020-11-12 23:13:20 -05:00
Samuel Dionne-Riel
889ebd4700
boot/error: Add time left for the delay
2020-11-12 23:13:20 -05:00
Samuel Dionne-Riel
bb6a7ddc5f
boot/error: Add a tangible derivation
...
This also allows us to add library files.
2020-11-12 23:13:20 -05:00
Samuel Dionne-Riel
407ff11b26
boot/error: Minimal viable changes for structured data
...
The applet isn't any more graceful yet, but this is where things can
finally get interesting.
2020-11-12 23:13:20 -05:00
Samuel Dionne-Riel
03022f2745
boot/init: Pass structured data through a file to crash handler
...
The command-line arguments are not great for structured data.
2020-11-12 23:13:20 -05:00
Samuel Dionne-Riel
aa1c2f3744
boot/init: Harmonized failure methods
...
- Code is now more of a title
- Only one code path exists to the applet
2020-11-12 23:13:20 -05:00
Samuel Dionne-Riel
e6778f8370
boot/recovery-menu: extract reboot modes
2020-11-12 23:13:20 -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
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
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
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
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
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
Samuel Dionne-Riel
1c720aa1b1
boot/gui: Use HAL configs for reboot options
...
This way we can clean up the recovery menu from useless options.
Furthermore, if a device in the future gives us more option, we can
implement them.
2020-10-15 22:08:25 -04:00
Samuel Dionne-Riel
b42063fe70
boot/gui: Fix for new back button implementation
2020-07-25 21:56:50 -04:00
Samuel Dionne-Riel
55938bab90
boot/gui: Rely on the GUI builder
2020-07-23 19:21:50 -04:00
Samuel Dionne-Riel
659b627d6e
script-loader: ensure anything lvgui needs is provided...
...
...by loading it last
2020-07-23 18:07:45 -04:00
Samuel Dionne-Riel
9f50617ba7
boot/gui: Fix cross-compilation breakage
...
Turns out that `mruby`'s require looks at the actual file name (not the
link) when deciding between loading bytecode or ruby code.
Cross-compilation appends the system to derivation names.
Fun ensues.
This fixes the issue by using `runCommand`, for which it doesn't happen.
2020-06-26 17:38:12 -04:00
Samuel Dionne-Riel
b38caeec1a
boot/init: Fixup for $PROGRAM_NAME now pointing to the applet
...
We know that the loader is at "/loader" in our initrd. Use that
knowledge.
2020-05-31 18:54:07 -04:00
Samuel Dionne-Riel
6d6df159ef
boot/script-loader: Add environment support to wrapper
2020-05-31 18:54:07 -04:00
Samuel Dionne-Riel
dfedfda949
boot/script-loader: Provide appropriate $0 and $PROGRAM_NAME
2020-05-31 18:54:07 -04:00
Samuel Dionne-Riel
d617424ded
boot/gui: review build with a proper derivation
...
Then, the simulator is re-tooled to use it, and the new wrapper thingy.
2020-05-31 18:54:07 -04:00
Samuel Dionne-Riel
21b17451b2
boot/init: add wrap
to script-loader
...
This allows wrapping an applet into a script that will start it.
2020-05-31 18:54:07 -04:00
Samuel Dionne-Riel
ba9a9852af
boot/init: Remove unused variable
2020-05-23 01:43:12 -04:00
Samuel Dionne-Riel
3e50ec600f
boot/gui: review simulator build
...
Can be launched with `DEBUGGER="gdb --args" ./result/bin/simulator`.
2020-05-23 01:43:12 -04:00
Samuel Dionne-Riel
528c8b8bdb
boot/gui: Further fix applets for LVNanoSVG namespace change
2020-05-21 18:15:21 -04:00
Samuel Dionne-Riel
aa2deb72b6
boot/gui: Fix with added introspection
2020-05-19 23:27:36 -04:00
Samuel Dionne-Riel
cc1a2e75e5
boot/gui: Moving LVNanoSVG hacks under the hacks namespace
2020-05-18 21:49:04 -04:00
Samuel Dionne-Riel
6692f6d6f4
boot/init: Use the new error reporting applet
2020-03-09 19:45:49 -04:00
Samuel Dionne-Riel
b2f4aecdd4
boot/error: Init error reporting applet
2020-03-09 19:44:27 -04:00
Samuel Dionne-Riel
c35116cdcd
boot/init: Use the new boot/splash applet
2020-03-09 17:34:31 -04:00
Samuel Dionne-Riel
426f31113d
boot/splash: Init splash applet
2020-03-09 17:31:03 -04:00
Samuel Dionne-Riel
8fad3b296e
boot/gui: Use mruby that will splice
...
Using `loader.mruby` will not splice :(
2020-03-08 17:05:15 -04:00
Samuel Dionne-Riel
9c8e1f7d17
boot/gui: Fix console restoring on exit
2020-03-08 17:05:15 -04:00
Samuel Dionne-Riel
a083acef55
boot/gui: Use newly split script loader in simulator
2020-03-01 23:27:56 -05:00
Samuel Dionne-Riel
12c9d29f58
boot/init: Use the newly split script-loader
2020-03-01 23:27:56 -05:00
Samuel Dionne-Riel
11897bcdb6
boot/script-loader: Split into its distinct package
2020-03-01 22:21:31 -05:00
Samuel Dionne-Riel
8594a19538
boot/gui: Use the loader's mruby build
...
It doesn't change the mrbc end-result.
2020-03-01 22:02:45 -05:00
Samuel Dionne-Riel
e1e1333669
boot/gui: Workaround unexplained issue
...
It seems that `mruby-time-strftime` here is causing the garbage
collector to fail in strange ways *only* in the simulator.
It's all fine in QEMU and on hardware.
2020-03-01 22:02:19 -05:00
Samuel Dionne-Riel
804182854a
boot/gui: Properly dry run commands on simulator
2020-03-01 17:29:30 -05:00
Samuel Dionne-Riel
660804cdf7
boot-gui-simulator: init package
2020-03-01 17:28:50 -05:00
Samuel Dionne-Riel
5e88e7efcf
boot/gui: Allow running without generations file
...
This should *maybe* remove the Generations tab, as it's empty.
2020-03-01 16:58:39 -05:00
Samuel Dionne-Riel
ac95c64c92
boot/gui: Fix bad arguments handling for simulator
2020-03-01 16:58:07 -05:00
Samuel Dionne-Riel
20f2cbcc56
init: Interrupt boot when some keys are held.
2020-02-29 16:10:00 -05:00
Samuel Dionne-Riel
2b2d2ad7ea
boot/applets: Add key-held utility
2020-02-29 16:10:00 -05:00
Samuel Dionne-Riel
d79466747d
boot/init: Launch boot GUI when asked
2020-02-29 16:10:00 -05:00
Samuel Dionne-Riel
584c484d0c
boot/gui: Init boot GUI
2020-02-28 23:14:09 -05:00
Samuel Dionne-Riel
3b9d04d3bd
stage-1: workaround issue with e2fsck successfully failing
2020-02-28 23:14:09 -05:00
Samuel Dionne-Riel
26b4215547
boot/init: Add newly required dependencies
2020-02-28 23:14:09 -05:00
Samuel Dionne-Riel
68e4c2b7f3
boot/init: Split interpreter from script
...
This needs the following commits where the init script will now tell the
loader to load init.mrb
2020-02-28 23:14:09 -05:00
Samuel Dionne-Riel
95016e1250
boot/init: Add autoResize support
2020-02-03 21:58:22 -05:00
Samuel Dionne-Riel
7e9a7875ac
boot/init: Mark as 0.1
2020-02-03 21:58:22 -05:00
Samuel Dionne-Riel
c4f76db65f
boot/init: Handle remounting existing mounts
...
This is used to ensure mount points are mounted with the right options,
if for some reason they were already mounted.
Reasons they could be mounted? They could have been required for things
like logging the boot.
2020-02-03 21:58:21 -05:00
Samuel Dionne-Riel
8962b595f5
boot/init: brown sad phone on main failure
2020-02-03 16:19:10 -05:00
Samuel Dionne-Riel
d349e66554
boot/init: Use System#shell
if available on failure
...
When it is available, it is assumed it is okay to use.
2020-02-03 16:19:10 -05:00