Skip to content

Commit

Permalink
Move devicePkgs to the pkgs.nvidia-jetpack package-set and clear up
Browse files Browse the repository at this point in the history
ambiguities with systems compatible for flash/fuse scripts

Instead of maintaining a separate package-set location (outside of
`pkgs`), we can just use regular overlays to apply our changes that are
device-specific (stored under the `pkgs.nvidia-jetpack` scope). An alias
is added to the old locations (`config.system.build.jetsonDevicePkgs`,
`config.hardware.nvidia-jetpack.devicePkgs`, etc.) with a warning to
indicate that users should just use `pkgs.nvidia-jetpack`.

Also included is clearing up the ambiguities of what systems are
compatible with flash/fuse scripts. NVIDIA makes the decision for us as
to what platforms we can run these tools on (x86_64-linux only), so we
shouldn't allow for any flash/fuse derivations to be built for
aarch64-linux.

The rundown:
- a jetson device nixos config's `hostPlatform` _must_ be `aarch64-linux`
- a flash/fuse script's `hostPlatform` _must_ be `x86_64-linux`

What we were doing before was mixing package-sets willy-nilly without
much control over which hostPlatform we were dealing with (leading to
lots of usage of hardcoded `pkgsAarch64` to force a package-set to
aarch64). This change makes a logical separation of what needs to be
built with an aarch64 hostPlatform package-set vs an x86_64 hostPlatform
package-set.
  • Loading branch information
jmbaur committed May 7, 2024
1 parent 2790dd8 commit 9f54678
Show file tree
Hide file tree
Showing 14 changed files with 613 additions and 577 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ Current software version is: 35.2.1
If these versions do not match, you can update your firmware using the UEFI Capsule update mechanism. The procedure to do so is below:

To build a capsule update file, build the
`config.system.build.jetsonDevicePkgs.uefiCapsuleUpdate` attribute from your NixOS build. For the standard devkit configurations supported in this repository, one could also run (for example),
`config.system.build.uefiCapsuleUpdate` attribute from your NixOS build. For the standard devkit configurations supported in this repository, one could also run (for example),
`nix build .#uefi-capsule-update-xavier-nx-emmc-devkit`. This will produce a file that you can scp (no need for `nix copy`) to the device to update.

Once the file is on the device, run:
Expand Down
4 changes: 2 additions & 2 deletions UPGRADE_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
### Updating
- [ ] Update `l4tVersion`, `jetpackVersion`, and `cudaVersion` in default.nix
- [ ] Update `l4tVersion`, `jetpackVersion`, and `cudaVersion` in overlay.nix
- [ ] Update branch/revision/sha256s in:
- [ ] `default.nix`
- [ ] `overlay.nix`
- [ ] `kernel/default.nix`
- [ ] `uefi-firmware.nix`
- [ ] Grep for "sha256 = ", see if there is anything else not covered
Expand Down
214 changes: 0 additions & 214 deletions default.nix

This file was deleted.

Loading

0 comments on commit 9f54678

Please sign in to comment.