From 2a8bf43271e5ff4196560b504add82e0e716fa79 Mon Sep 17 00:00:00 2001 From: asonix Date: Sat, 18 Feb 2023 22:49:14 -0600 Subject: [PATCH] Remove user-specific configs, extract kernel config options --- flake.nix | 121 ++++++++++++++++++++--------------------- pkgs/linux/default.nix | 80 +++++++++++++++------------ 2 files changed, 103 insertions(+), 98 deletions(-) diff --git a/flake.nix b/flake.nix index 005fbc5..eb33a58 100644 --- a/flake.nix +++ b/flake.nix @@ -27,96 +27,91 @@ }; }; - kernel = (aarch64Pkgs.callPackage ./pkgs/linux { }).testing-rockchip; + kernels = (aarch64Pkgs.callPackage ./pkgs/linux { }); - trusted-public-keys = "firestar:spmMw07mO3cxflq5g2GazhE7ddgEoz6QLwaiCnyz/fg="; + buildSystem = ({ kernel, modules }: aarch64Pkgs.callPackage ./pkgs/system { + inherit kernel nixpkgs; - userModule = { - users.users.asonix = { - isNormalUser = true; - description = "Tavi"; - extraGroups = [ "wheel" ]; - openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD3+mNUlokSKZQNXJAuGm2LCHelKuElWLJArzIYZQYEPbrFaE+J8VtfNbMMD1qVI21ksfcqvFQW4aiP4+BFDxTOGW0uBmUHWKxkyyU39y2yhnsa+svwwIooc+Iwkxw0atzSMEBb94UaZlq9cKMSnG9RGeRFqfYnW2s49wpU79wk6zEFUuOHCMKn4R7zqkPac7IyjxZeKlspY3fOasNH4zyrkbhEOlvrwEOdRNTRNCWWzDcinIVZjfmErHlSynshx9yLnCGkLBxHSxgI2TVyR3RlQ3aGbHtB3QN5X7/T/dwXJFJ11P1Q2bC3XP3hHCogDqXcPvDTFSQEM/mZuFcKNbsn asonix@asonix-tower" - ]; - initialPassword = "changeme"; - }; - }; - - baseModule = ({ lib, ... }: { - # Nix config - nix.extraOptions = '' - trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ${trusted-public-keys} - ''; - - services.openssh = { - enable = true; - settings.PermitRootLogin = lib.mkForce "prohibit-password"; - }; + extraModules = modules; }); - system = aarch64Pkgs.callPackage ./pkgs/system { - inherit nixpkgs; - inherit kernel; - - extraModules = [ - userModule - baseModule - ]; - }; - quartzUBoots = aarch64Pkgs.callPackage ./pkgs/uboot-quartz64 { }; in { - packages.aarch64-linux = { - kernel = { - testing-rockchip = kernel; - }; + packages.x86_64-linux = { + inherit kernels; - modules = system.modules // { inherit userModule; }; - }; - packages.x86_64-linux = - { - quartz64a = rockchip { + modules = system.modules; + + buildQuartz64A = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.quartz64a; uboot = quartzUBoots.ubootQuartz64a; - }; - quartz64b = rockchip { + }); + + buildQuartz64B = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.quartz64b; uboot = quartzUBoots.ubootQuartz64b; - }; - soquartz-model-a = rockchip { + }); + + buildSoQuartzModelA = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.soquartz-model-a; uboot = quartzUBoots.ubootSoQuartzModelA; - }; - soquartz-cm4 = rockchip { + }); + + buildSoQuartzCM4 = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.soquartz-cm4; uboot = quartzUBoots.ubootSoQuartzCM4; - }; - soquartz-blade = rockchip { + }); + + buildSoQuartzBlade = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.soquartz-blade; uboot = quartzUBoots.ubootSoQuartzBlade; - }; - rock64 = rockchip { + }); + + buildRock64 = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.rock64; uboot = aarch64Pkgs.ubootRock64; - }; - rockPro64 = rockchip { + }); + + buildRockPro64 = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.rockPro64; uboot = aarch64Pkgs.ubootRockPro64; - }; - rockPro64v2 = rockchip { + }); + + buildRockPro64v2 = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.rockPro64v2; uboot = aarch64Pkgs.ubootRockPro64; - }; - roc-pc-rk3399 = rockchip { + }); + + buildRocPCRk3399 = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.rock-pc-rk3399; uboot = aarch64Pkgs.ubootROCPCRK3399; - }; - pinebookPro = rockchip { + }); + + buildPinebookPro = ({ kernel, modules ? [ ] }@attrs: + let system = buildSystem attrs; in + rockchip { system = system.pinebookPro; uboot = aarch64Pkgs.ubootPinebookPro; - }; - }; + }); + }; }; } diff --git a/pkgs/linux/default.nix b/pkgs/linux/default.nix index c94f76a..70579f8 100644 --- a/pkgs/linux/default.nix +++ b/pkgs/linux/default.nix @@ -1,42 +1,52 @@ { pkgs, lib }: -with pkgs.linuxKernel; { +let + kernelConfig = with lib.kernel; { + SND_SOC_RK817 = yes; + STMMAC_ETH = yes; + MOTORCOMM_PHY = yes; + MMC_DW = yes; + MMC_DW_ROCKCHIP = yes; + MMC_SDHCI_OF_DWCMSHC = yes; + PCIE_ROCKCHIP_DW_HOST = yes; + PHY_ROCKCHIP_NANENG_COMBO_PHY = yes; + ROCKCHIP_DW_HDMI = yes; + PHY_ROCKCHIP_INNO_DSIDPHY = yes; + ROCKCHIP_VOP2 = yes; + ARCH_ROCKCHIP = yes; + ROCKCHIP_PHY = yes; + PHY_ROCKCHIP_INNO_USB2 = yes; + RTC_DRV_RK808 = yes; + COMMON_CLK_RK808 = yes; + MFD_RK808 = yes; + CHARGER_RK817 = yes; + REGULATOR_RK808 = yes; + ROCKCHIP_PM_DOMAINS = yes; + GPIO_ROCKCHIP = yes; + PINCTRL_ROCKCHIP = yes; + PWM_ROCKCHIP = yes; + ROCKCHIP_IOMMU = yes; + ROCKCHIP_MBOX = yes; + ROCKCHIP_SARADC = yes; + ROCKCHIP_THERMAL = yes; + SPI_ROCKCHIP = yes; + VIDEO_HANTRO_ROCKCHIP = yes; + ROCKCHIP_IODOMAIN = yes; + COMMON_CLK_ROCKCHIP = yes; + PHY_ROCKCHIP_INNO_CSIDPHY = yes; + }; +in +with pkgs.linuxKernel; +{ testing = packages.linux_testing; testing-rockchip = packagesFor (kernels.linux_testing.override { - structuredExtraConfig = with lib.kernel; { - SND_SOC_RK817 = yes; - STMMAC_ETH = yes; - MOTORCOMM_PHY = yes; - MMC_DW = yes; - MMC_DW_ROCKCHIP = yes; - MMC_SDHCI_OF_DWCMSHC = yes; - PCIE_ROCKCHIP_DW_HOST = yes; - PHY_ROCKCHIP_NANENG_COMBO_PHY = yes; - ROCKCHIP_DW_HDMI = yes; - PHY_ROCKCHIP_INNO_DSIDPHY = yes; - ROCKCHIP_VOP2 = yes; - ARCH_ROCKCHIP = yes; - ROCKCHIP_PHY = yes; - PHY_ROCKCHIP_INNO_USB2 = yes; - RTC_DRV_RK808 = yes; - COMMON_CLK_RK808 = yes; - MFD_RK808 = yes; - CHARGER_RK817 = yes; - REGULATOR_RK808 = yes; - ROCKCHIP_PM_DOMAINS = yes; - GPIO_ROCKCHIP = yes; - PINCTRL_ROCKCHIP = yes; - PWM_ROCKCHIP = yes; - ROCKCHIP_IOMMU = yes; - ROCKCHIP_MBOX = yes; - ROCKCHIP_SARADC = yes; - ROCKCHIP_THERMAL = yes; - SPI_ROCKCHIP = yes; - VIDEO_HANTRO_ROCKCHIP = yes; - ROCKCHIP_IODOMAIN = yes; - COMMON_CLK_ROCKCHIP = yes; - PHY_ROCKCHIP_INNO_CSIDPHY = yes; - }; + structuredExtraConfig = kernelConfig; + }); + + linux_6_1 = packages.linux_6_1; + + linux_6_1-rockchip = packagesFor (kernels.linux_6_1.override { + structuredExtraConfig = kernelConfig; }); }