Initial firmware infra
This commit is contained in:
		
							
								
								
									
										1
									
								
								firmware/.envrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								firmware/.envrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					use flake ..#firmware --override-input rootdir "file+file://"<(printf %s "$PWD")
 | 
				
			||||||
							
								
								
									
										1
									
								
								firmware/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								firmware/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					/result
 | 
				
			||||||
							
								
								
									
										19
									
								
								firmware/base.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								firmware/base.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					{ lib, ... }:
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  inherit (lib) mkOption;
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  options.my.build = {
 | 
				
			||||||
 | 
					    image = mkOption {
 | 
				
			||||||
 | 
					      description = "Final output image for distribution.";
 | 
				
			||||||
 | 
					      type = lib.types.unspecified;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config = {
 | 
				
			||||||
 | 
					    system = {
 | 
				
			||||||
 | 
					      stateVersion = "24.11";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								firmware/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								firmware/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					{ inputs, ... }:
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  mkSystem = target: inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
 | 
					    modules = [
 | 
				
			||||||
 | 
					      ./base.nix
 | 
				
			||||||
 | 
					      target
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  flake.nixosConfigurations = {
 | 
				
			||||||
 | 
					    qclk-rpi3 = mkSystem target/rpi3.nix;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  perSystem = { libMy, pkgs, ... }: {
 | 
				
			||||||
 | 
					    devenv.shells.firmware = libMy.withRootdir {
 | 
				
			||||||
 | 
					      packages = with pkgs; [
 | 
				
			||||||
 | 
					        nixos-rebuild
 | 
				
			||||||
 | 
					        nixVersions.latest
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      scripts = {
 | 
				
			||||||
 | 
					        build.exec = ''
 | 
				
			||||||
 | 
					          nix build "..#nixosConfigurations.qclk-$1.config.system.build.toplevel"
 | 
				
			||||||
 | 
					        '';
 | 
				
			||||||
 | 
					        build-image.exec = ''
 | 
				
			||||||
 | 
					          nix build "..#nixosConfigurations.qclk-$1.config.my.build.image"
 | 
				
			||||||
 | 
					        '';
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								firmware/target/rpi3.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								firmware/target/rpi3.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{ pkgs, modulesPath, config, ... }: {
 | 
				
			||||||
 | 
					  imports = [
 | 
				
			||||||
 | 
					    "${modulesPath}/installer/sd-card/sd-image-aarch64.nix"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nixpkgs.system = "aarch64-linux";
 | 
				
			||||||
 | 
					  my.build.image = config.system.build.sdImage;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user