diff options
Diffstat (limited to 'makefu')
| -rw-r--r-- | makefu/1systems/firecracker/config.nix | 25 | ||||
| -rw-r--r-- | makefu/1systems/firecracker/hardware-config.nix | 30 | ||||
| -rw-r--r-- | makefu/1systems/firecracker/source.nix | 4 | ||||
| -rw-r--r-- | makefu/1systems/sdcard/config.nix | 40 | ||||
| -rw-r--r-- | makefu/1systems/sdcard/kernel.nix | 15 | ||||
| -rw-r--r-- | makefu/1systems/sdcard/source.nix | 3 | 
6 files changed, 117 insertions, 0 deletions
diff --git a/makefu/1systems/firecracker/config.nix b/makefu/1systems/firecracker/config.nix new file mode 100644 index 000000000..87f500287 --- /dev/null +++ b/makefu/1systems/firecracker/config.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, ... }: +let +  primaryInterface = "eth0"; +in { +  imports = [ +    <stockholm/makefu> +    ./hardware-config.nix +    # <stockholm/makefu/2configs/tools/core.nix> +    { environment.systemPackages = with pkgs;[ rsync screen curl git ];} +    <stockholm/makefu/2configs/binary-cache/nixos.nix> +    #<stockholm/makefu/2configs/support-nixos.nix> +# configure your hw: +# <stockholm/makefu/2configs/save-diskspace.nix> +  ]; +  krebs = { +    enable = true; +    tinc.retiolum.enable = true; +    build.host = config.krebs.hosts.firecracker; +  }; +  networking.firewall.trustedInterfaces = [ primaryInterface ]; +  documentation.info.enable = false; +  documentation.man.enable = false; +  services.nixosManual.enable = false; +  sound.enable = false; +} diff --git a/makefu/1systems/firecracker/hardware-config.nix b/makefu/1systems/firecracker/hardware-config.nix new file mode 100644 index 000000000..b821a3375 --- /dev/null +++ b/makefu/1systems/firecracker/hardware-config.nix @@ -0,0 +1,30 @@ +{ pkgs, lib, ... }: +{ +  boot.kernelParams = lib.mkForce ["console=ttyS2,1500000n8" "earlycon=uart8250,mmio32,0xff1a0000" "earlyprintk"]; +  boot.loader.grub.enable = false; +  boot.loader.generic-extlinux-compatible.enable = true; +  boot.loader.generic-extlinux-compatible.configurationLimit = 1; +  boot.loader.generationsDir.enable = lib.mkDefault false; +  boot.supportedFilesystems = lib.mkForce [ "vfat" ]; + +  boot.tmpOnTmpfs = lib.mkForce false; +  boot.cleanTmpDir = true; +  hardware.enableRedistributableFirmware = true; + +  ## wifi not working, will be fixed with https://github.com/NixOS/nixpkgs/pull/53747 +  boot.kernelPackages = pkgs.linuxPackages_latest; +  networking.wireless.enable = true; +  # File systems configuration for using the installer's partition layout +  swapDevices = [ { device = "/var/swap"; size = 4096; } ]; +  fileSystems = { +    "/boot" = { +      device = "/dev/disk/by-label/NIXOS_BOOT"; +      fsType = "vfat"; +    }; +    "/" = { +      device = "/dev/disk/by-label/NIXOS_SD"; +      fsType = "ext4"; +    }; +  }; + +} diff --git a/makefu/1systems/firecracker/source.nix b/makefu/1systems/firecracker/source.nix new file mode 100644 index 000000000..22c40039e --- /dev/null +++ b/makefu/1systems/firecracker/source.nix @@ -0,0 +1,4 @@ +{ +  name="cake"; +  full = true; +} diff --git a/makefu/1systems/sdcard/config.nix b/makefu/1systems/sdcard/config.nix new file mode 100644 index 000000000..4e3c22a30 --- /dev/null +++ b/makefu/1systems/sdcard/config.nix @@ -0,0 +1,40 @@ +{ config, pkgs, lib, ... }: +let +  kernel = pkgs.callPackage ./kernel.nix { +      kernelPatches = with pkgs.kernelPatches; [ +      #  kernelPatches.bridge_stp_helper +      #  kernelPatches.modinst_arg_list_too_long +      ]; +    }; +in +{ +  imports = [ +    <nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix> +    # <stockholm/makefu/2configs/minimal.nix> +  ]; +  # TODO: NIX_PATH and nix.nixPath are being set by default.nix right now +  # cd ~/stockholm ; nix build config.system.build.sdImage -I  nixos-config=makefu/1systems/sdcard/config.nix -f /home/makefu/nixpkgs/nixos + +  boot.kernelParams = ["console=ttyS2,1500000" "earlycon=uart8250,mmio32,0xff1a0000"]; +  # boot.kernelPackages = pkgs.linuxPackages_latest; +  boot.kernelPackages = pkgs.linuxPackagesFor kernel; +  boot.supportedFilesystems = lib.mkForce [ "vfat" "f2fs" "xfs" "ntfs" "cifs" ]; + +  # krebs.hidden-ssh.enable = true; +  environment.systemPackages = with pkgs; [ +    aria2 +    ddrescue +  ]; +  environment.extraInit = '' +    EDITOR=vim +  ''; +  # iso-specific +  services.openssh = { +    enable = true; +    hostKeys = [ +      { bits = 8192; type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; } +    ]; +  }; +  # enable ssh in the iso boot process +  systemd.services.sshd.wantedBy = lib.mkForce [ "multi-user.target" ]; +} diff --git a/makefu/1systems/sdcard/kernel.nix b/makefu/1systems/sdcard/kernel.nix new file mode 100644 index 000000000..df5e7ada9 --- /dev/null +++ b/makefu/1systems/sdcard/kernel.nix @@ -0,0 +1,15 @@ +{ fetchFromGitLab, buildLinux, ... } @ args: +buildLinux (args // rec { +  version = "4.4.55"; +  modDirVersion = "4.4.55"; +  extraMeta.branch = "4.4"; +  defconfig = "firefly_linux_defconfig"; + +  src = fetchFromGitLab { +    owner = "TeeFirefly"; +    repo = "linux-kernel"; +    rev = "firefly_0821_release"; +    sha256 = "1fwj9cm5ysz286znrr3fyrhfn903m84i7py4rv3y3h9avxb3zl1r"; +  }; +  extraMeta.platforms = [ "aarch64-linux" ]; +} // (args.argsOverride or {})) diff --git a/makefu/1systems/sdcard/source.nix b/makefu/1systems/sdcard/source.nix new file mode 100644 index 000000000..6bef8ada9 --- /dev/null +++ b/makefu/1systems/sdcard/source.nix @@ -0,0 +1,3 @@ +{ +  name="iso"; +}  | 
