feat: add SD card image for ARM
This commit is contained in:
19
flake.nix
19
flake.nix
@@ -76,7 +76,8 @@
|
|||||||
nix.nixPath = [
|
nix.nixPath = [
|
||||||
"nixpkgs=${inputs.nixpkgs}"
|
"nixpkgs=${inputs.nixpkgs}"
|
||||||
]; # <https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md>
|
]; # <https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md>
|
||||||
nixosConfigurations = lib.genAttrs hostDirNames (
|
nixosConfigurations =
|
||||||
|
(lib.genAttrs hostDirNames (
|
||||||
host:
|
host:
|
||||||
nixpkgs.lib.nixosSystem {
|
nixpkgs.lib.nixosSystem {
|
||||||
modules = [ ./hosts/${host} ];
|
modules = [ ./hosts/${host} ];
|
||||||
@@ -84,7 +85,19 @@
|
|||||||
inherit inputs outputs dotsPath;
|
inherit inputs outputs dotsPath;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
);
|
))
|
||||||
|
// {
|
||||||
|
sd-image-aarch64 = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "aarch64-linux";
|
||||||
|
modules = [
|
||||||
|
"${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
|
||||||
|
./images/sd-image-aarch64.nix
|
||||||
|
];
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs outputs dotsPath;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
work = home-manager.lib.homeManagerConfiguration {
|
work = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
@@ -115,5 +128,7 @@
|
|||||||
inputs
|
inputs
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
images.sd-image-aarch64 = self.nixosConfigurations.sd-image-aarch64.config.system.build.sdImage;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -76,6 +76,8 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
cpu.intel.updateMicrocode = true;
|
cpu.intel.updateMicrocode = true;
|
||||||
graphics.enable = true;
|
graphics.enable = true;
|
||||||
|
|||||||
54
images/sd-image-aarch64.nix
Normal file
54
images/sd-image-aarch64.nix
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# see <https://nixos.wiki/wiki/NixOS_on_ARM#Build_your_own_image_natively>
|
||||||
|
# see <https://nixos.wiki/wiki/NixOS_on_ARM/Orange_Pi_Zero2_H616>
|
||||||
|
# ```
|
||||||
|
# nix build .#images.sd-image-aarch64
|
||||||
|
# nix-shell -p zstd --run "zstdcat result/sd-image/*.img.zst | sudo dd of=/dev/sdX bs=4M status=progress conv=fsync"
|
||||||
|
# # add u-boot bootloader (e.g. for Orange Pi Zero2 H616)
|
||||||
|
# sudo dd if=~/dl/u-boot-sunxi-with-spl.bin of=/dev/sdX bs=1024 seek=8
|
||||||
|
# ```
|
||||||
|
|
||||||
|
let
|
||||||
|
username = "h";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../modules/ssh/hardened-openssh.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
ssh.username = username;
|
||||||
|
ssh.authorizedHosts = [
|
||||||
|
"andromache"
|
||||||
|
"astyanax"
|
||||||
|
];
|
||||||
|
|
||||||
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users = {
|
||||||
|
root.initialPassword = "nixos";
|
||||||
|
${username} = {
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" ];
|
||||||
|
initialPassword = "nixos";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo.wheelNeedsPassword = false;
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
# sdImage.postBuildCommands =
|
||||||
|
# let
|
||||||
|
# bootloaderPackage = pkgs.ubootOrangePiZero2;
|
||||||
|
# bootloaderSubpath = "/u-boot-sunxi-with-spl.bin";
|
||||||
|
# in
|
||||||
|
# ''
|
||||||
|
# dd if=${bootloaderPackage}${bootloaderSubpath} of=$img \
|
||||||
|
# bs=8 seek=1024 \
|
||||||
|
# conv=notrunc
|
||||||
|
# '';
|
||||||
|
|
||||||
|
system.stateVersion = "26.05";
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user