Skip to content

hack: support 'devicetree' with systemd-boot + hardware.device-tree#331003

Closed
colemickens wants to merge 2 commits intoNixOS:masterfrom
colemickens:colemickens/systemd-device-tree-hack
Closed

hack: support 'devicetree' with systemd-boot + hardware.device-tree#331003
colemickens wants to merge 2 commits intoNixOS:masterfrom
colemickens:colemickens/systemd-device-tree-hack

Conversation

@colemickens
Copy link
Member

Description of changes

  1. Hack the toplevel derivation to output a /dtb symlink if it's enabled/configured with hardware.device-tree.{enable,name}.
  2. Hack the systemd-boot-builder.py to output the extra appropriate devicetree= line into the config file if it exists in the generation toplevel.

I'm not sure if this supports specialisations. The more appropriate path probably involves trying to get this into bootspec v2 and lanzaboote, but this was easier for now.

I've used this to build make-disk-image.nix for a snapdragon X elite laptop, and booted into initrd (pending stage-2 when some usb/msd/uas issue sorted).

Mostly throwing this out for consideration, I realize it's probably too hacky (and certainlyuntested) to merge as-is. Marking as draft to reflect that.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@colemickens colemickens changed the title consider: hack: support 'devicetree' with systemd-boot + hardware.device-tree hack: support 'devicetree' with systemd-boot + hardware.device-tree Jul 30, 2024
@github-actions github-actions bot added 6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` labels Jul 30, 2024
@ofborg ofborg bot added 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. labels Jul 30, 2024
@ElvishJerricco
Copy link
Contributor

Other implementations of the same: #319422, #330195

@colemickens
Copy link
Member Author

Oh wow, and they both went ahead and used bootspec extensions. Nice. Good work to those authors. Hopefully one takes off. I'll try to review them more, but probably needs feedback from bootspec folks.

@colemickens colemickens deleted the colemickens/systemd-device-tree-hack branch July 31, 2024 23:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: nixos Issues or PRs affecting NixOS modules, or package usability issues specific to NixOS 8.has: module (update) This PR changes an existing module in `nixos/` 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants