From 40fe8f62bcb99bddeba63a4796db4aa3c616f76b Mon Sep 17 00:00:00 2001 From: Tao Tien <29749622+taotien@users.noreply.github.com> Date: Thu, 22 May 2025 16:14:59 -0700 Subject: [PATCH] bangermachine --- extras/dev.nix | 212 ++++++++++++++++++++--------------------- flake.nix | 9 ++ systems/BASED.nix | 5 +- systems/NObangers.nix | 29 ++++++ systems/NOlaptop.nix | 216 +++++++++++++++++++++--------------------- 5 files changed, 255 insertions(+), 216 deletions(-) create mode 100644 systems/NObangers.nix diff --git a/extras/dev.nix b/extras/dev.nix index 58306f5..d60e5d1 100644 --- a/extras/dev.nix +++ b/extras/dev.nix @@ -1,118 +1,118 @@ {pkgs, ...}: { - # services.globalprotect = { - # enable = true; - # settings = { - # "vpn1.usfca.edu" = { - # openconnect-args = ""; - # }; - # }; - # }; + # services.globalprotect = { + # enable = true; + # settings = { + # "vpn1.usfca.edu" = { + # openconnect-args = ""; + # }; + # }; + # }; - environment.systemPackages = with pkgs; [ - # (llm.withPlugins (ps: with ps; [llm-openrouter])) - # bash-language-server - # digital - # etcher - # fontforge - # freecad - # llm - # lychee # link checker - # quickemu - # radicle-node - # vulkan-loader - # act - # aichat - # aider-chat - # asm-lsp - b3sum - devenv - direnv - gh - # git-cliff - hyperfine - jujutsu - just - lldb - # lua-language-server - # markdown-oxide # markdown lsp - qFlipper - qemu - sd - sshfs - taplo # toml lsp - tio - tokei # repo code stats - typos + environment.systemPackages = with pkgs; [ + # (llm.withPlugins (ps: with ps; [llm-openrouter])) + # bash-language-server + # digital + # etcher + # fontforge + # freecad + # llm + # lychee # link checker + # quickemu + # radicle-node + # vulkan-loader + # act + # aichat + # aider-chat + # asm-lsp + b3sum + devenv + direnv + gh + # git-cliff + hyperfine + jujutsu + just + lldb + # lua-language-server + # markdown-oxide # markdown lsp + qFlipper + qemu + sd + sshfs + taplo # toml lsp + tio + tokei # repo code stats + typos - # # databases - # sqlite - # sqls - # sqlx-cli - # sea-orm-cli - # rainfrog + # # databases + # sqlite + # sqls + # sqlx-cli + # sea-orm-cli + # rainfrog - # # arduino - # arduino-language-server - # arduino-cli - # pkgsCross.avr.buildPackages.gcc - # avrdude - # ravedude + # # arduino + # arduino-language-server + # arduino-cli + # pkgsCross.avr.buildPackages.gcc + # avrdude + # ravedude - # c - clang - clang-tools - gcc - gdb - gnumake + # c + clang + clang-tools + gcc + gdb + gnumake - # nix - nil - alejandra + # nix + nil + alejandra - # python - # pypy3 - python3 - # (python3.withPackages (ps: - # with ps; [ - # llm - # # llm-openrouter - # ])) - # python310Packages.python-lsp-server - uv - ruff + # python + # pypy3 + python3 + # (python3.withPackages (ps: + # with ps; [ + # llm + # # llm-openrouter + # ])) + # python310Packages.python-lsp-server + uv + ruff - # rust - cargo-binstall - bacon - cargo-expand - cargo-feature - cargo-generate - cargo-watch - elf2uf2-rs - flip-link - mdbook - mold-wrapped - probe-rs - rustup - sccache - trunk - wasm-bindgen-cli - ]; + # rust + cargo-binstall + bacon + cargo-expand + cargo-feature + cargo-generate + cargo-watch + elf2uf2-rs + flip-link + mdbook + mold-wrapped + probe-rs + rustup + sccache + trunk + wasm-bindgen-cli + ]; - hardware.flipperzero.enable = true; + hardware.flipperzero.enable = true; - services.udev.extraRules = '' - SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb" - SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg" - ''; + services.udev.extraRules = '' + SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic GDB Server", SYMLINK+="ttyBmpGdb" + SUBSYSTEM == "tty", GROUP="dialout", ATTRS{interface}=="Black Magic UART Port", SYMLINK+="ttyBmpTarg" + ''; - # virtualisation.docker = { - # enable = true; - # storageDriver = "btrfs"; - # }; - # virtualisation.docker.rootless = { - # enable = true; - # setSocketVariable = true; - # }; - # users.extraGroups.docker.members = ["tao"]; + # virtualisation.docker = { + # enable = true; + # storageDriver = "btrfs"; + # }; + # virtualisation.docker.rootless = { + # enable = true; + # setSocketVariable = true; + # }; + # users.extraGroups.docker.members = ["tao"]; } diff --git a/flake.nix b/flake.nix index 0bd31bc..da88eab 100644 --- a/flake.nix +++ b/flake.nix @@ -125,6 +125,15 @@ ./extras/uwuraid.nix ]; }; + NObangers = nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + specialArgs = {inherit inputs;}; + modules = [ + nixos-hardware.nixosModules.raspberry-pi-4 + ./systems/BASED.nix + ./systems/NObangers.nix + ]; + }; NOserver-minecraft = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit inputs;}; diff --git a/systems/BASED.nix b/systems/BASED.nix index 3e02bb8..eb6dea8 100644 --- a/systems/BASED.nix +++ b/systems/BASED.nix @@ -21,6 +21,7 @@ helix inputs.agenix.packages.${pkgs.system}.default inputs.zen-browser.packages."${system}".default + jujutsu mesa mpv ouch @@ -87,7 +88,7 @@ programs.ssh.startAgent = true; services.printing.enable = lib.mkDefault true; - services.printing.drivers = with pkgs; [gutenprint gutenprintBin]; + services.printing.drivers = with pkgs; lib.mkDefault [gutenprint gutenprintBin]; services.avahi = { enable = true; nssmdns4 = true; @@ -120,7 +121,7 @@ security.sudo-rs.enable = true; security.sudo.enable = false; - i18n.inputMethod = { + i18n.inputMethod = lib.mkDefault { enable = true; type = "fcitx5"; fcitx5.addons = with pkgs; [ diff --git a/systems/NObangers.nix b/systems/NObangers.nix new file mode 100644 index 0000000..b5c9a71 --- /dev/null +++ b/systems/NObangers.nix @@ -0,0 +1,29 @@ +{ + config, + pkgs, + lib, + ... +}: { + environment.systemPackages = with pkgs; []; + programs.partition-manager.enable = false; + + services.printing.enable = false; + i18n.inputMethod = {}; + + services.xserver.enable = false; + services.desktopManager.plasma6.enable = false; + + boot.loader.systemd-boot.enable = false; + boot.loader.efi.canTouchEfiVariables = false; + + fileSystems = { + "/" = { + device = "/dev/disk/by-label/NIXOS_SD"; + fsType = "ext4"; + options = ["noatime"]; + }; + }; + + nixpkgs.hostPlatform = "aarch64-linux"; + system.stateVersion = "23.11"; +} diff --git a/systems/NOlaptop.nix b/systems/NOlaptop.nix index f2cc496..e95dd8c 100644 --- a/systems/NOlaptop.nix +++ b/systems/NOlaptop.nix @@ -1,121 +1,121 @@ { - lib, - config, - pkgs, - ... + lib, + config, + pkgs, + ... }: { - hardware.opengl.extraPackages = with pkgs; [ - amdvlk - ]; - hardware.opengl.extraPackages32 = with pkgs; [ - driversi686Linux.amdvlk - ]; - services.xserver.videoDrivers = [ - "amdgpu" - ]; + hardware.opengl.extraPackages = with pkgs; [ + amdvlk + ]; + hardware.opengl.extraPackages32 = with pkgs; [ + driversi686Linux.amdvlk + ]; + services.xserver.videoDrivers = [ + "amdgpu" + ]; - # services.pipewire.wireplumber.extraConfig = { - # "wireplumber.settings" = { - # "device.routes.default-source-volume" = 0.42; - # }; - # }; + # services.pipewire.wireplumber.extraConfig = { + # "wireplumber.settings" = { + # "device.routes.default-source-volume" = 0.42; + # }; + # }; - services.rsyslogd = { - enable = true; - extraConfig = '' - module(load="imudp") - input(type="imudp" port="514") + services.rsyslogd = { + enable = true; + extraConfig = '' + module(load="imudp") + input(type="imudp" port="514") - THENAS.* -/var/log/THENAS + THENAS.* -/var/log/THENAS + ''; + }; + + # boot.kernelPatches = [ + # (lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "6.11") + # { + # name = "cros_ec_lpc"; + # patch = pkgs.fetchpatch { + # url = "https://patchwork.kernel.org/series/840830/mbox/"; + # sha256 = "sha256-7jSEAGInFC+a+ozCyD4dFz3Qgh2JrHskwz7UfswizFw="; + # }; + # }) + # ]; + # nixpkgs.overlays = [ + # (final: prev: { + # libinput = prev.libinput.overrideAttrs (old: { + # patches = + # (old.patches or []) + # ++ [ + # ../extras/libinput-delay.patch + # ]; + # }); + # }) + # ]; + + environment.systemPackages = with pkgs; [ + fw-ectool + framework-tool + nvtopPackages.amd + lact + ]; + + systemd.services.lactd.wantedBy = ["multi-user.target"]; + + services.fwupd.enable = true; + services.tailscale.useRoutingFeatures = "client"; + systemd.services."backlight@backlight:amdgpu_bl2".enable = false; + + nix.buildMachines = [ + { + hostName = "nocomputer"; + systems = ["x86_64-linux" "i686-linux"]; + supportedFeatures = [ + "benchmark" + "big-parallel" + "gccarch-znver4" + "kvm" + "nixos-test" + ]; + } + ]; + nix.extraOptions = '' + builders-use-substitutes = true ''; - }; + nix.distributedBuilds = true; - # boot.kernelPatches = [ - # (lib.mkIf (lib.versionOlder config.boot.kernelPackages.kernel.version "6.11") - # { - # name = "cros_ec_lpc"; - # patch = pkgs.fetchpatch { - # url = "https://patchwork.kernel.org/series/840830/mbox/"; - # sha256 = "sha256-7jSEAGInFC+a+ozCyD4dFz3Qgh2JrHskwz7UfswizFw="; - # }; - # }) - # ]; - # nixpkgs.overlays = [ - # (final: prev: { - # libinput = prev.libinput.overrideAttrs (old: { - # patches = - # (old.patches or []) - # ++ [ - # ../extras/libinput-delay.patch - # ]; - # }); - # }) - # ]; + services.udev.extraRules = '' + # ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness" + # ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness" - environment.systemPackages = with pkgs; [ - fw-ectool - framework-tool - nvtopPackages.amd - lact - ]; + ACTION=="add|change", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", ATTR{power/wakeup}="disabled" + ACTION=="add|change", KERNEL=="i2c", SUBSYSTEM=="i2c", DEVPATH=="/sys/devices/platform/AMDI0010:03/i2c-1/i2c-PIXA3854:00", ATTR{power/wakeup}="disabled" - systemd.services.lactd.wantedBy = ["multi-user.target"]; + # ACTION=="add", SUBSYSTEM=="acpi", DRIVERS=="button", ATTRS{hid}=="PNP0C0D", ATTR{power/wakeup}="disabled" + # ACTION=="add", SUBSYSTEM=="serio", DRIVERS=="atkbd", ATTR{power/wakeup}="disabled" + # ACTION=="add", SUBSYSTEM=="i2c", DRIVERS=="i2c_hid_acpi", ATTRS{name}=="PIXA3854:00", ATTR{power/wakeup}="disabled" + ''; - services.fwupd.enable = true; - services.tailscale.useRoutingFeatures = "client"; - systemd.services."backlight@backlight:amdgpu_bl2".enable = false; + services.fprintd.enable = true; - nix.buildMachines = [ - { - hostName = "nocomputer"; - systems = ["x86_64-linux" "i686-linux"]; - supportedFeatures = [ - "benchmark" - "big-parallel" - "gccarch-znver4" - "kvm" - "nixos-test" - ]; - } - ]; - nix.extraOptions = '' - builders-use-substitutes = true - ''; - nix.distributedBuilds = true; + boot.kernelPackages = pkgs.linuxPackages_latest; + # boot.initrd.availableKernelModules = [ + # "nvme" + # "sd_mod" + # "thunderbolt" + # "usb_storage" + # "xhci_pci" + # "usbhid" + # "uas" + # ]; + boot.kernelParams = [ + "amdgpu.abmlevel=1" + # "amdgpu.dcdebugmask=0x400" + # "mem_sleep_default=deep" + ]; + # boot.kernelModules = ["kvm-amd"]; + boot.kernelModules = ["amdgpu"]; + powerManagement.cpuFreqGovernor = "powersave"; + systemd.sleep.extraConfig = "HibernateDelaySec=360m"; - services.udev.extraRules = '' - # ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness" - # ACTION=="add", SUBSYSTEM=="backlight", RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness" - - ACTION=="add|change", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="32ac", ATTRS{idProduct}=="0012", ATTR{power/wakeup}="disabled" - ACTION=="add|change", KERNEL=="i2c", SUBSYSTEM=="i2c", DEVPATH=="/sys/devices/platform/AMDI0010:03/i2c-1/i2c-PIXA3854:00", ATTR{power/wakeup}="disabled" - - # ACTION=="add", SUBSYSTEM=="acpi", DRIVERS=="button", ATTRS{hid}=="PNP0C0D", ATTR{power/wakeup}="disabled" - # ACTION=="add", SUBSYSTEM=="serio", DRIVERS=="atkbd", ATTR{power/wakeup}="disabled" - # ACTION=="add", SUBSYSTEM=="i2c", DRIVERS=="i2c_hid_acpi", ATTRS{name}=="PIXA3854:00", ATTR{power/wakeup}="disabled" - ''; - - services.fprintd.enable = true; - - boot.kernelPackages = pkgs.linuxPackages_latest; - # boot.initrd.availableKernelModules = [ - # "nvme" - # "sd_mod" - # "thunderbolt" - # "usb_storage" - # "xhci_pci" - # "usbhid" - # "uas" - # ]; - boot.kernelParams = [ - "amdgpu.abmlevel=1" - # "amdgpu.dcdebugmask=0x400" - # "mem_sleep_default=deep" - ]; - # boot.kernelModules = ["kvm-amd"]; - boot.kernelModules = ["amdgpu"]; - powerManagement.cpuFreqGovernor = "powersave"; - systemd.sleep.extraConfig = "HibernateDelaySec=360m"; - - networking.hostName = "NOlaptop"; + networking.hostName = "NOlaptop"; }