Bring back APU2 router for more experimentation
All checks were successful
Check Flake / check-flake (push) Successful in 19m21s
All checks were successful
Check Flake / check-flake (push) Successful in 19m21s
This commit is contained in:
@@ -22,8 +22,7 @@
|
||||
|
||||
# networking.useDHCP = lib.mkForce true;
|
||||
|
||||
# TODO
|
||||
# networking.usePredictableInterfaceNames = true;
|
||||
networking.usePredictableInterfaceNames = false;
|
||||
|
||||
powerManagement.cpuFreqGovernor = "ondemand";
|
||||
|
||||
|
||||
@@ -10,8 +10,6 @@
|
||||
|
||||
# Enable serial output
|
||||
boot.kernelParams = [
|
||||
"panic=30"
|
||||
"boot.panic_on_fail" # reboot the machine upon fatal boot issues
|
||||
"console=ttyS0,115200n8" # enable serial console
|
||||
];
|
||||
boot.loader.grub.extraConfig = "
|
||||
@@ -23,6 +21,8 @@
|
||||
# firmware
|
||||
firmware.x86_64.enable = true;
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.enableAllFirmware = true;
|
||||
|
||||
# boot
|
||||
bios = {
|
||||
@@ -31,20 +31,18 @@
|
||||
};
|
||||
|
||||
# disks
|
||||
remoteLuksUnlock.enable = true;
|
||||
boot.initrd.luks.devices."enc-pv".device = "/dev/disk/by-uuid/9b090551-f78e-45ca-8570-196ed6a4af0c";
|
||||
fileSystems."/" =
|
||||
{
|
||||
device = "/dev/disk/by-uuid/421c82b9-d67c-4811-8824-8bb57cb10fce";
|
||||
fsType = "btrfs";
|
||||
device = "/dev/disk/by-uuid/6aa7f79e-bef8-4b0f-b22c-9d1b3e8ac94b";
|
||||
fsType = "ext4";
|
||||
};
|
||||
fileSystems."/boot" =
|
||||
{
|
||||
device = "/dev/disk/by-uuid/d97f324f-3a2e-4b84-ae2a-4b3d1209c689";
|
||||
device = "/dev/disk/by-uuid/14dfc562-0333-4ddd-b10c-4eeefe1cd05f";
|
||||
fsType = "ext3";
|
||||
};
|
||||
swapDevices =
|
||||
[{ device = "/dev/disk/by-uuid/45bf58dd-67eb-45e4-9a98-246e23fa7abd"; }];
|
||||
[{ device = "/dev/disk/by-uuid/adf37c64-3b54-480c-a9a7-099d61c6eac7"; }];
|
||||
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
}
|
||||
|
||||
17
machines/router/properties.nix
Normal file
17
machines/router/properties.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
hostNames = [
|
||||
"router"
|
||||
"192.168.6.159"
|
||||
"192.168.3.1"
|
||||
];
|
||||
|
||||
arch = "x86_64-linux";
|
||||
|
||||
systemRoles = [
|
||||
"server"
|
||||
"wireless"
|
||||
"router"
|
||||
];
|
||||
|
||||
hostKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKDCMhEvWJxFBNyvpyuljv5Uun8AdXCxBK9HvPBRe5x6";
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
hostNames = [
|
||||
"router"
|
||||
"192.168.1.228"
|
||||
];
|
||||
|
||||
arch = "x86_64-linux";
|
||||
|
||||
systemRoles = [
|
||||
"server"
|
||||
"wireless"
|
||||
"router"
|
||||
];
|
||||
|
||||
hostKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFr2IHmWFlaLaLp5dGoSmFEYKA/eg2SwGXAogaOmLsHL";
|
||||
|
||||
remoteUnlock = {
|
||||
hostKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJOw5dTPmtKqiPBH6VKyz5MYBubn8leAh5Eaw7s/O85c";
|
||||
onionHost = "jxx2exuihlls2t6ncs7rvrjh2dssubjmjtclwr2ysvxtr4t7jv55xmqd.onion";
|
||||
};
|
||||
}
|
||||
@@ -31,8 +31,10 @@ in
|
||||
networking.bridges = {
|
||||
br0 = {
|
||||
interfaces = [
|
||||
"enp2s0"
|
||||
"wlp4s0"
|
||||
"eth2"
|
||||
# "wlp4s0"
|
||||
# "wlan1"
|
||||
"wlan0"
|
||||
"wlan1"
|
||||
];
|
||||
};
|
||||
@@ -64,142 +66,173 @@ in
|
||||
|
||||
services.dnsmasq = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
settings = {
|
||||
# sensible behaviours
|
||||
domain-needed
|
||||
bogus-priv
|
||||
no-resolv
|
||||
domain-needed = true;
|
||||
bogus-priv = true;
|
||||
no-resolv = true;
|
||||
|
||||
# upstream name servers
|
||||
server=1.1.1.1
|
||||
server=8.8.8.8
|
||||
server = [
|
||||
"1.1.1.1"
|
||||
"8.8.8.8"
|
||||
];
|
||||
|
||||
# local domains
|
||||
expand-hosts
|
||||
domain=home
|
||||
local=/home/
|
||||
expand-hosts = true;
|
||||
domain = "home";
|
||||
local = "/home/";
|
||||
|
||||
# Interfaces to use DNS on
|
||||
interface=br0
|
||||
interface = "br0";
|
||||
|
||||
# subnet IP blocks to use DHCP on
|
||||
dhcp-range=${cfg.privateSubnet}.10,${cfg.privateSubnet}.254,24h
|
||||
'';
|
||||
dhcp-range = "${cfg.privateSubnet}.10,${cfg.privateSubnet}.254,24h";
|
||||
};
|
||||
};
|
||||
|
||||
services.hostapd = {
|
||||
enable = true;
|
||||
radios = {
|
||||
# 2.4GHz
|
||||
wlp4s0 = {
|
||||
band = "2g";
|
||||
noScan = true;
|
||||
channel = 6;
|
||||
# Simple 2.4GHz AP
|
||||
wlan0 = {
|
||||
countryCode = "US";
|
||||
wifi4 = {
|
||||
capabilities = [ "LDPC" "GF" "SHORT-GI-20" "SHORT-GI-40" "TX-STBC" "RX-STBC1" "MAX-AMSDU-7935" "HT40+" ];
|
||||
};
|
||||
wifi5 = {
|
||||
operatingChannelWidth = "20or40";
|
||||
capabilities = [ "MAX-A-MPDU-LEN-EXP0" ];
|
||||
};
|
||||
wifi6 = {
|
||||
enable = true;
|
||||
singleUserBeamformer = true;
|
||||
singleUserBeamformee = true;
|
||||
multiUserBeamformer = true;
|
||||
operatingChannelWidth = "20or40";
|
||||
};
|
||||
networks = {
|
||||
wlp4s0 = {
|
||||
ssid = "CXNK00BF9176";
|
||||
authentication.saePasswordsFile = "/run/agenix/hostapd-pw-CXNK00BF9176";
|
||||
};
|
||||
# wlp4s0-1 = {
|
||||
# ssid = "- Experimental 5G Tower by AT&T";
|
||||
# authentication.saePasswordsFile = "/run/agenix/hostapd-pw-experimental-tower";
|
||||
# };
|
||||
# wlp4s0-2 = {
|
||||
# ssid = "FBI Surveillance Van 2";
|
||||
# authentication.saePasswordsFile = "/run/agenix/hostapd-pw-experimental-tower";
|
||||
# };
|
||||
};
|
||||
settings = {
|
||||
he_oper_centr_freq_seg0_idx = 8;
|
||||
vht_oper_centr_freq_seg0_idx = 8;
|
||||
networks.wlan0 = {
|
||||
ssid = "CXNK00BF9176-1";
|
||||
authentication.saePasswords = [{ passwordFile = "/run/agenix/hostapd-pw-CXNK00BF9176"; }];
|
||||
};
|
||||
};
|
||||
|
||||
# 5GHz
|
||||
# WiFi 5 (5GHz) with two advertised networks
|
||||
wlan1 = {
|
||||
band = "5g";
|
||||
noScan = true;
|
||||
channel = 128;
|
||||
channel = 0;
|
||||
countryCode = "US";
|
||||
wifi4 = {
|
||||
capabilities = [ "LDPC" "GF" "SHORT-GI-20" "SHORT-GI-40" "TX-STBC" "RX-STBC1" "MAX-AMSDU-7935" "HT40-" ];
|
||||
};
|
||||
wifi5 = {
|
||||
operatingChannelWidth = "160";
|
||||
capabilities = [ "RXLDPC" "SHORT-GI-80" "SHORT-GI-160" "TX-STBC-2BY1" "SU-BEAMFORMER" "SU-BEAMFORMEE" "MU-BEAMFORMER" "MU-BEAMFORMEE" "RX-ANTENNA-PATTERN" "TX-ANTENNA-PATTERN" "RX-STBC-1" "SOUNDING-DIMENSION-3" "BF-ANTENNA-3" "VHT160" "MAX-MPDU-11454" "MAX-A-MPDU-LEN-EXP7" ];
|
||||
};
|
||||
wifi6 = {
|
||||
enable = true;
|
||||
singleUserBeamformer = true;
|
||||
singleUserBeamformee = true;
|
||||
multiUserBeamformer = true;
|
||||
operatingChannelWidth = "160";
|
||||
};
|
||||
networks = {
|
||||
wlan1 = {
|
||||
ssid = "CXNK00BF9176";
|
||||
authentication.saePasswordsFile = "/run/agenix/hostapd-pw-CXNK00BF9176";
|
||||
};
|
||||
# wlan1-1 = {
|
||||
# ssid = "- Experimental 5G Tower by AT&T";
|
||||
# authentication.saePasswordsFile = "/run/agenix/hostapd-pw-experimental-tower";
|
||||
# };
|
||||
# wlan1-2 = {
|
||||
# ssid = "FBI Surveillance Van 5";
|
||||
# authentication.saePasswordsFile = "/run/agenix/hostapd-pw-experimental-tower";
|
||||
# };
|
||||
};
|
||||
settings = {
|
||||
vht_oper_centr_freq_seg0_idx = 114;
|
||||
he_oper_centr_freq_seg0_idx = 114;
|
||||
networks.wlan1 = {
|
||||
ssid = "CXNK00BF9176-1";
|
||||
authentication.saePasswords = [{ passwordFile = "/run/agenix/hostapd-pw-CXNK00BF9176"; }];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
age.secrets.hostapd-pw-experimental-tower.file = ../../secrets/hostapd-pw-experimental-tower.age;
|
||||
age.secrets.hostapd-pw-CXNK00BF9176.file = ../../secrets/hostapd-pw-CXNK00BF9176.age;
|
||||
|
||||
hardware.firmware = [
|
||||
pkgs.mt7916-firmware
|
||||
];
|
||||
# wlan0 5Ghz 00:0a:52:08:38:32
|
||||
# wlp4s0 2.4Ghz 00:0a:52:08:38:33
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(self: super: {
|
||||
mt7916-firmware = pkgs.stdenvNoCC.mkDerivation {
|
||||
pname = "mt7916-firmware";
|
||||
version = "custom-feb-02-23";
|
||||
src = ./firmware/mediatek; # from here https://github.com/openwrt/mt76/issues/720#issuecomment-1413537674
|
||||
dontBuild = true;
|
||||
installPhase = ''
|
||||
for i in \
|
||||
mt7916_eeprom.bin \
|
||||
mt7916_rom_patch.bin \
|
||||
mt7916_wa.bin \
|
||||
mt7916_wm.bin;
|
||||
do
|
||||
install -D -pm644 $i $out/lib/firmware/mediatek/$i
|
||||
done
|
||||
'';
|
||||
meta = with lib; {
|
||||
license = licenses.unfreeRedistributableFirmware;
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
# services.hostapd = {
|
||||
# enable = true;
|
||||
# radios = {
|
||||
# # 2.4GHz
|
||||
# wlp4s0 = {
|
||||
# band = "2g";
|
||||
# noScan = true;
|
||||
# channel = 6;
|
||||
# countryCode = "US";
|
||||
# wifi4 = {
|
||||
# capabilities = [ "LDPC" "GF" "SHORT-GI-20" "SHORT-GI-40" "TX-STBC" "RX-STBC1" "MAX-AMSDU-7935" "HT40+" ];
|
||||
# };
|
||||
# wifi5 = {
|
||||
# operatingChannelWidth = "20or40";
|
||||
# capabilities = [ "MAX-A-MPDU-LEN-EXP0" ];
|
||||
# };
|
||||
# wifi6 = {
|
||||
# enable = true;
|
||||
# singleUserBeamformer = true;
|
||||
# singleUserBeamformee = true;
|
||||
# multiUserBeamformer = true;
|
||||
# operatingChannelWidth = "20or40";
|
||||
# };
|
||||
# networks = {
|
||||
# wlp4s0 = {
|
||||
# ssid = "CXNK00BF9176";
|
||||
# authentication.saePasswordsFile = "/run/agenix/hostapd-pw-CXNK00BF9176";
|
||||
# };
|
||||
# # wlp4s0-1 = {
|
||||
# # ssid = "- Experimental 5G Tower by AT&T";
|
||||
# # authentication.saePasswordsFile = "/run/agenix/hostapd-pw-experimental-tower";
|
||||
# # };
|
||||
# # wlp4s0-2 = {
|
||||
# # ssid = "FBI Surveillance Van 2";
|
||||
# # authentication.saePasswordsFile = "/run/agenix/hostapd-pw-experimental-tower";
|
||||
# # };
|
||||
# };
|
||||
# settings = {
|
||||
# he_oper_centr_freq_seg0_idx = 8;
|
||||
# vht_oper_centr_freq_seg0_idx = 8;
|
||||
# };
|
||||
# };
|
||||
|
||||
# # 5GHz
|
||||
# wlan1 = {
|
||||
# band = "5g";
|
||||
# noScan = true;
|
||||
# channel = 128;
|
||||
# countryCode = "US";
|
||||
# wifi4 = {
|
||||
# capabilities = [ "LDPC" "GF" "SHORT-GI-20" "SHORT-GI-40" "TX-STBC" "RX-STBC1" "MAX-AMSDU-7935" "HT40-" ];
|
||||
# };
|
||||
# wifi5 = {
|
||||
# operatingChannelWidth = "160";
|
||||
# capabilities = [ "RXLDPC" "SHORT-GI-80" "SHORT-GI-160" "TX-STBC-2BY1" "SU-BEAMFORMER" "SU-BEAMFORMEE" "MU-BEAMFORMER" "MU-BEAMFORMEE" "RX-ANTENNA-PATTERN" "TX-ANTENNA-PATTERN" "RX-STBC-1" "SOUNDING-DIMENSION-3" "BF-ANTENNA-3" "VHT160" "MAX-MPDU-11454" "MAX-A-MPDU-LEN-EXP7" ];
|
||||
# };
|
||||
# wifi6 = {
|
||||
# enable = true;
|
||||
# singleUserBeamformer = true;
|
||||
# singleUserBeamformee = true;
|
||||
# multiUserBeamformer = true;
|
||||
# operatingChannelWidth = "160";
|
||||
# };
|
||||
# networks = {
|
||||
# wlan1 = {
|
||||
# ssid = "CXNK00BF9176";
|
||||
# authentication.saePasswordsFile = "/run/agenix/hostapd-pw-CXNK00BF9176";
|
||||
# };
|
||||
# # wlan1-1 = {
|
||||
# # ssid = "- Experimental 5G Tower by AT&T";
|
||||
# # authentication.saePasswordsFile = "/run/agenix/hostapd-pw-experimental-tower";
|
||||
# # };
|
||||
# # wlan1-2 = {
|
||||
# # ssid = "FBI Surveillance Van 5";
|
||||
# # authentication.saePasswordsFile = "/run/agenix/hostapd-pw-experimental-tower";
|
||||
# # };
|
||||
# };
|
||||
# settings = {
|
||||
# vht_oper_centr_freq_seg0_idx = 114;
|
||||
# he_oper_centr_freq_seg0_idx = 114;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# age.secrets.hostapd-pw-experimental-tower.file = ../../secrets/hostapd-pw-experimental-tower.age;
|
||||
# age.secrets.hostapd-pw-CXNK00BF9176.file = ../../secrets/hostapd-pw-CXNK00BF9176.age;
|
||||
|
||||
# hardware.firmware = [
|
||||
# pkgs.mt7916-firmware
|
||||
# ];
|
||||
|
||||
# nixpkgs.overlays = [
|
||||
# (self: super: {
|
||||
# mt7916-firmware = pkgs.stdenvNoCC.mkDerivation {
|
||||
# pname = "mt7916-firmware";
|
||||
# version = "custom-feb-02-23";
|
||||
# src = ./firmware/mediatek; # from here https://github.com/openwrt/mt76/issues/720#issuecomment-1413537674
|
||||
# dontBuild = true;
|
||||
# installPhase = ''
|
||||
# for i in \
|
||||
# mt7916_eeprom.bin \
|
||||
# mt7916_rom_patch.bin \
|
||||
# mt7916_wa.bin \
|
||||
# mt7916_wm.bin;
|
||||
# do
|
||||
# install -D -pm644 $i $out/lib/firmware/mediatek/$i
|
||||
# done
|
||||
# '';
|
||||
# meta = with lib; {
|
||||
# license = licenses.unfreeRedistributableFirmware;
|
||||
# };
|
||||
# };
|
||||
# })
|
||||
# ];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user