Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uefi-x86_64: introduce generic "device" and system type #253

merged 16 commits into from Dec 30, 2020


Copy link

@samueldr samueldr commented Dec 11, 2020

(Built on top of #262)

This replaces the too-specific QEMU system type and device.

The image this produce has not yet been tested on a real-world device. It's probably somewhat wrong because it uses a hapazard collection of kernel modules coming from the previous QEMU device build.

While this introduces the ability to bring-in generic hardware, it's not really the purpose of this PR. We're not going to add every computer under the sun in this project. The goal is to (1) add UEFI support and (2) revisit the QEMU VM.

Any extra device can be added to an "extra-devices" type of repository. I will be doing it soon for the CHUWI Hi10 Pro HQ64, at the very least, as it is a tablet, and it requires a custom-enough kernel that it is worth it to do a custom build.

Fixes #8.


  • Figure out kernel modules to include for generic boot

In the future, a generic AArch64 UEFI device should be added too, where the .vm work as expected, with KVM on AArch64.

@samueldr samueldr marked this pull request as draft December 11, 2020 05:33
@samueldr samueldr force-pushed the feature/uefi-generic-x86_64 branch 4 times, most recently from e54f64f to a21dbfb Compare December 29, 2020 22:59
@samueldr samueldr marked this pull request as ready for review December 29, 2020 23:01
Fixes menuconfig for 5.10 for chuwi hi10 pro
Will be used to pass along extra properties for devies, e.g. libinput
calibration matrix.
This is the minimum viable product.

This builds a disk image that can be booted.
For the time being, this is mostly a copy of the QEMU system.

The QEMU system is slated to be removed, once the UEFI system provides
the necessary tooling to get a VM going easily.

We'll probably want to add other generically-useful modules to that

We'll have to look at NixOS's boot.initrd.availableKernelModules and
boot.initrd.kernelModules options.
This is basically what I think are the minimum requirements for support.
720p display, 2GB of RAM.

Not that it will be a great experience.
This results in a script that launches a QEMU VM.
It is incomplete because it does not use the (not implemented) VM
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!
@samueldr samueldr merged commit 5386b3f into NixOS:master Dec 30, 2020
@samueldr samueldr deleted the feature/uefi-generic-x86_64 branch December 30, 2020 04:39
@samueldr samueldr added the 4. type: port New device port label Dec 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
4. type: port New device port
None yet

Successfully merging this pull request may close these issues.

Add a generic (non-qemu) x86_64 platform for dogfooding...
1 participant