1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-16 20:21:32 +03:00
Commit Graph

315 Commits

Author SHA1 Message Date
Samuel Dionne-Riel
a96c2b845c boot/init: Add support for FunctionFS on GadgetFS
FunctionFS on GadgetFS requires this to happen in order:

 - (1) preparing the gadget
 - (2) preparing the function
 - (3) mounting the functionfs
 - (4) starting the daemon
 - (5) enabling the device

Doing any of these steps in the wrong order *will* fail. You cannot
mount functionfs if the function name hasn't been allocated yet. You
cannot start the daemon without functionfs being mounted. You cannot
enable the device without the daemon running on the USB endpoints.

This is why the GadgetFS stuff here *has* to know about mounting the
filesystem and starting the daemon.

In fact, the generic library to be written to handle USB gadget mode
**will** have to have that knowledge!

The added TODOs are to be done when extracting as a standalone library.
2021-01-27 22:16:55 -05:00
Samuel Dionne-Riel
6f6940226a modules/adb: ADB works just fine on any usb gadget
(Though it may require fiddling with udev perms)
2021-01-27 22:16:55 -05:00
Samuel Dionne-Riel
4d7bd722a6 modules/adb: Decouple implementation details
The service and mount points are more of an implementation detail of the
GadgetFS handling library and not an implementation detail of the init
library.

In turn, this means that we are decoupling this from the init, follow-up
on the next commit...
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
10fc8bc0bb initrd-shell: Fix job control 2021-01-24 23:38:05 -05:00
Samuel Dionne-Riel
3a48ed5fa1 quirks/wifi: Add quirk to disable MAC address randomization 2021-01-10 21:08:09 -05:00
Samuel Dionne-Riel
62d00f17fc system-types/android: Add odin-specific device-notes fragment 2021-01-09 19:23:21 -05:00
Samuel Dionne-Riel
7381c783a7 system-types/android: Rename fastboot device notes fragment 2021-01-09 19:23:20 -05:00
Samuel Dionne-Riel
2b674af725 system-types/android: Choose the appropriate device-notes fragment 2021-01-09 19:23:20 -05:00
Samuel Dionne-Riel
f5fbeb1b76 system-types/uefi: Add device-notes fragment 2021-01-09 19:23:20 -05:00
Samuel Dionne-Riel
7a4ddb41ff system-types/u-boot: Add device-notes fragment 2021-01-09 19:23:20 -05:00
Samuel Dionne-Riel
ec7a2d120d devices-metadata: Export documentation config
Since *anyway* this is mainly intended to be consuemd by the
documentation.
2021-01-09 19:23:20 -05:00
Samuel Dionne-Riel
8d2af65cc4 modules/documentation: Init 2021-01-09 19:23:20 -05:00
Samuel Dionne-Riel
1a083f8b3e system-types/android: Output different instructions for Odin 2021-01-09 19:22:32 -05:00
Samuel Dionne-Riel
ea684466e5 system-types/android: Allow defining flashing method 2021-01-09 19:22:32 -05:00
Samuel Dionne-Riel
5b81f1d6dd android: Use Exynos dt.img for android bootimg 2021-01-09 16:26:28 -05:00
Samuel Dionne-Riel
6bc8e35681 quirks: Add exynos fb "notify" quirk
Used to "toggle" the framebuffer so the driver starts rendering.
2021-01-09 16:26:28 -05:00
Samuel Dionne-Riel
205d1bbfca exynos: Add Exynos 7880 2021-01-09 16:24:32 -05:00
Samuel Dionne-Riel
179d8b1b70 stage-1/usb-gadget: Add mass storage usb gadget support 2021-01-03 23:08:24 -05:00
Samuel Dionne-Riel
61c6776cb8 stage-1/usb-gadget: Quirk is aware of its path
This will be used for quirks that needs to know where to write more
configuration.
2021-01-03 23:08:24 -05:00
Samuel Dionne-Riel
10c1ccece2 stage-1/usb-gadget: Implement gadgetfs teardown
This way on kexec the device is in a better state, and the kernel that
boots next is able to use the controller.

This was verified to fix an issue with kexec+gadget on the Chuwi Hi10
Pro HQ64 tablet.
2021-01-03 20:23:44 -05:00
Samuel Dionne-Riel
3487b77503 fix build failure by providing kernel filename to internal NixOS option
The update from 29a10085f3 caused the
uncompressed kernel to not be installed anymore into the kernel output.

This meant that building the top-level argument failed as a file assumed
to exist wasn't there anymore.

We now provide the appropriate filename when we know it.
2020-12-31 16:21:38 -05:00
Samuel Dionne-Riel
7fe40c1817 system-types/uefi: VM outputs logs on serial 2020-12-29 19:22:43 -05:00
Samuel Dionne-Riel
e215099597 system-types/uefi: Use stage-0 2020-12-29 19:22:43 -05:00
Samuel Dionne-Riel
b2790d13d6 qemu-x86_64: Delete device
It's being replaced by the generic uefi-x86_64 device.

Basically, replace the QEMU-specific system type by the totally standard
UEFI system type. This way we're dogfooding it way better!
2020-12-29 19:22:43 -05:00
Samuel Dionne-Riel
1098b55236 system-types/uefi: Introduce the .vm attribute
This results in a script that launches a QEMU VM.
2020-12-29 19:22:43 -05:00
Samuel Dionne-Riel
bec8c7dbd0 system-types/uefi: Init, largely inspired by u-boot
This is the minimum viable product.

This builds a disk image that can be booted.
2020-12-29 19:21:02 -05:00
Samuel Dionne-Riel
a8fbbebfbb initrd: Allow adding extra dev rules
Will be used to pass along extra properties for devies, e.g. libinput
calibration matrix.
2020-12-29 19:21:02 -05:00
Samuel Dionne-Riel
403c4141ce system-types/u-boot: Cleanup file
The same changes have been made in the upcoming UEFI equivalent file.
2020-12-29 18:21:52 -05:00
Samuel Dionne-Riel
dacfa93de9 recovery.nix: Provide generic access to the recovery build 2020-12-29 18:21:52 -05:00
Samuel Dionne-Riel
32f58ada71
Merge pull request #262 from samueldr-wip/feature/stage-0
stage-0: Add ability to boot in generation kernel+initrd
2020-12-29 18:13:24 -05:00
Samuel Dionne-Riel
798ae8526a initrd-kernel: only build kernel into derivation when relevant
If stage-0 is not supported, default to not bundling a kernel into the
derivation.

This way, no useless builds of the kernels only to rebuild.
2020-12-29 17:59:09 -05:00
Samuel Dionne-Riel
f2bebaa5a3 hardware-qualcomm: Add msm8940 2020-12-28 05:59:46 -05:00
Samuel Dionne-Riel
12be2e5f1c stage-0: Disable by default 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
02068b29a9 devices-metadata: Export stage-0 support 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
e533ce8864 modules: Make kernel package nullable
This is to use the value in the documentation.
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
2c007dfb23 system-types/u-boot: Use stage-0 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
6a785b19e5 system-types/depthcharge: Use stage-0 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
9fc322894f system-types/android: Use stage-0 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
0ece77292b stage-0: defaults according to platform and kernel version
AArch64 Linux (arm64) didnd't support kexec up until 4.8
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
f1dd2a69c0 stage-0: init module for stage-0 bootloader build 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
c72fd544e8 initrd-kernel: Disable some NixOS verifications
Not great to outright disable, but we're not always using compatible
kernels :/.
2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
648eb09448 initrd-kernel: Allow disabling kernel for shared rootfs 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
f33b918c69 initrd: Make stage configurable 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
ab8b8af907 initrd: Add kexec tools 2020-12-27 17:50:30 -05:00
Samuel Dionne-Riel
393df47277 initrd: Allow disabling for shared rootfs 2020-12-27 17:38:29 -05:00
Samuel Dionne-Riel
0999683e23 modules: Add shared-rootfs
Used to undo some of the close-knit integration work NixOS does, so we
can cheat an make a more generic rootfs.
2020-12-27 17:38:29 -05:00
Samuel Dionne-Riel
d53c6e9868 nixos-disintegration: Neuter opinionated boot.kernelPackages 2020-12-27 17:38:29 -05:00
Samuel Dionne-Riel
c45582e224 initrd: Fix where logging happens for a message 2020-12-27 17:38:29 -05:00
Andy Chun
692544a5ef Fix attribute 'selectBySystem' missing with lib.systems.elaborate
Closes #252.

This uses the `lib.systems.elaborate` function which builds the
complete attrset as preferred by Nixpkgs by using
`lib.systems.elaborate`, rather than building a partial equivalent.

@noneucat originally implemented it the simplest way possible, re-using
parts of the now unneeded custom functions. We can, instead, simply
pass a system name to `elaborate`, which ends up doing the right thing.

Co-authored-by: Andy Chun <andy@lolc.at>
Co-authored-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
2020-12-24 18:25:13 -05:00