commit 77922c875b284c1d1ab5fa35d0604e036b059aa3
parent fa31d00d6ac40eeeef1ec7565bfc3e27a6b4a443
Author: Daniel Barlow <dan@telent.net>
Date: Sat, 15 Oct 2022 18:55:33 +0100
add per-device overlay
presently this is used to reference the appropriate kernel and (if
needed) openwrt source trees, but I would not be surprised if we find
other uses
Diffstat:
11 files changed, 313 insertions(+), 284 deletions(-)
diff --git a/default.nix b/default.nix
@@ -5,7 +5,7 @@
let
overlay = import ./overlay.nix;
- nixpkgs = import <nixpkgs> ( device.system // {overlays = [overlay]; });
+ nixpkgs = import <nixpkgs> (device.system // {overlays = [overlay device.overlay]; });
inherit (nixpkgs.pkgs) callPackage writeText liminix;
inherit (nixpkgs.lib) concatStringsSep;
config = (import ./merge-modules.nix) [
@@ -56,16 +56,18 @@ let
bootm 0x${toHexString uimageStart}
'';
- directory = nixpkgs.pkgs.runCommand "liminix" {} ''
+ directory = nixpkgs.pkgs.runCommand "liminix" {} (''
mkdir $out
cd $out
ln -s ${squashfs} squashfs
ln -s ${kernel.vmlinux} vmlinux
ln -s ${manifest} manifest
+ '' +
+ (if device ? boot then ''
ln -s ${uimage} uimage
${if phram then "ln -s ${boot-scr} boot.scr" else ""}
ln -s ${boot-scr} flash.scr
- '';
+ '' else ""));
# this exists so that you can run "nix-store -q --tree" on it and find
# out what's in the image, which is nice if it's unexpectedly huge
manifest = writeText "manifest.json" (builtins.toJSON config.filesystem.contents);
diff --git a/devices/gl-ar750.nix b/devices/gl-ar750.nix
@@ -1,102 +0,0 @@
-# GL.INet GL-AR750 "Creta" travel router
-# - QCA9531 @650Mhz SoC
-# - dual band wireless: IEEE 802.11a/b/g/n/ac
-# - two 10/100Mbps LAN ports and one WAN
-# - 128MB DDR2 RAM / 16MB NOR Flash
-# - "ath79" soc family
-# https://www.gl-inet.com/products/gl-ar750/
-
-# I like GL.iNet devices because they're relatively accessible to
-# DIY users: the serial port connections have headers preinstalled
-# and don't need soldering
-
-{
- system = {
- crossSystem = {
- config = "mips-unknown-linux-musl";
- gcc = {
- abi = "32";
- arch = "mips32"; # maybe mips_24kc-
- };
- };
- };
- kernel = rec {
- checkedConfig = {
- "MIPS_ELF_APPENDED_DTB" = "y";
- OF = "y";
- USE_OF = "y";
- ATH79 = "y";
- SOC_QCA955X = "y"; # actually QCA9531, is this even right?
- LIMINIX = "y";
- SERIAL_8250_CONSOLE = "y";
- SERIAL_8250 = "y";
- SERIAL_CORE_CONSOLE = "y";
-
- # need this to open console device at boot. dmesg goes from
- # [ 0.272934] Warning: unable to open an initial console.
- # to
- # [ 0.247413] printk: console [ttyS0] disabled
- # [ 0.25200] 18020000.uart: ttyS0 at MMIO 0x1802000 (irq = 10, base_baud = 1562500) is a 16550A
- SERIAL_OF_PLATFORM = "y";
-
- CONSOLE_LOGLEVEL_DEFAULT = "8";
- CONSOLE_LOGLEVEL_QUIET = "4";
-
-
- # "empty" initramfs source should create an initial
- # filesystem that has a /dev/console node and not much
- # else. Note that pid 1 is started *before* the root
- # filesystem is mounted and it expects /dev/console to
- # be present already
- BLK_DEV_INITRD = "n";
- };
- config = {
- CPU_LITTLE_ENDIAN= "n";
- CPU_BIG_ENDIAN= "y";
- ATH79 = "y";
- MIPS_ELF_APPENDED_DTB = "y";
-
-# INITRAMFS_SOURCE = "\"\"";
-
- # this is all copied from nixwrt ath79 config. Clearly not all
- # of it is device config, some of it is wifi config or
- # installation method config or ...
-
- "CMDLINE_PARTITION" = "y";
- "DEBUG_INFO" = "y";
- "EARLY_PRINTK" = "y";
- "FW_LOADER" = "y";
- # we don't have a user helper, so we get multiple 60s pauses
- # at boot time unless we disable trying to call it
- "FW_LOADER_USER_HELPER" = "n";
-
- "MODULE_SIG" = "y";
- "MTD_CMDLINE_PARTS" = "y";
- "PARTITION_ADVANCED" = "y";
- "PRINTK_TIME" = "y";
- "SQUASHFS" = "y";
- "SQUASHFS_XZ" = "y";
- # "ASN1" = "y";
- # "ASYMMETRIC_KEY_TYPE" = "y";
- # "ASYMMETRIC_PUBLIC_KEY_SUBTYPE" = "y";
- # "CRC_CCITT" = "y";
- # "CRYPTO" = "y";
- # "CRYPTO_ARC4" = "y";
- # "CRYPTO_CBC" = "y";
- # "CRYPTO_CCM" = "y";
- # "CRYPTO_CMAC" = "y";
- # "CRYPTO_GCM" = "y";
- # "CRYPTO_HASH_INFO" = "y";
- # "CRYPTO_LIB_ARC4" = "y";
- # "CRYPTO_RSA" = "y";
- # "CRYPTO_SHA1" = "y";
- # "ENCRYPTED_KEYS" = "y";
- # "KEYS" = "y";
- };
- };
- outputs.default = "directory";
- boot = {
- loadAddress = "0x80060000";
- entryPoint = "0x80060000";
- };
-}
diff --git a/devices/gl-ar750/default.nix b/devices/gl-ar750/default.nix
@@ -0,0 +1,129 @@
+# GL.INet GL-AR750 "Creta" travel router
+# - QCA9531 @650Mhz SoC
+# - dual band wireless: IEEE 802.11a/b/g/n/ac
+# - two 10/100Mbps LAN ports and one WAN
+# - 128MB DDR2 RAM / 16MB NOR Flash
+# - "ath79" soc family
+# https://www.gl-inet.com/products/gl-ar750/
+
+# I like GL.iNet devices because they're relatively accessible to
+# DIY users: the serial port connections have headers preinstalled
+# and don't need soldering
+
+{
+ system = {
+ crossSystem = {
+ config = "mips-unknown-linux-musl";
+ gcc = {
+ abi = "32";
+ arch = "mips32"; # maybe mips_24kc-
+ };
+ };
+ };
+
+ # We need to be able to import default.nix before we import nixpkgs
+ # because it has the system config to tell nixpkgs what arch to build for.
+ # But we also need some way to do things like fetchFromGitHub in the
+ # per-device config and we can only do that once we have a reference to
+ # pkgs
+
+ overlay = final: prev:
+ let inherit (final) fetchFromGitHub;
+ in {
+ sources = {
+ openwrt = fetchFromGitHub {
+ name = "openwrt-source";
+ repo = "openwrt";
+ owner = "openwrt";
+ rev = "a5265497a4f6da158e95d6a450cb2cb6dc085cab";
+ hash = "sha256-YYi4gkpLjbOK7bM2MGQjAyEBuXJ9JNXoz/JEmYf8xE8=";
+ };
+ kernel = fetchFromGitHub {
+ name = "kernel-source";
+ owner = "torvalds";
+ repo = "linux";
+ rev = "3d7cb6b04c3f3115719235cc6866b10326de34cd"; # v5.19
+ hash = "sha256-OVsIRScAnrPleW1vbczRAj5L/SGGht2+GnvZJClMUu4=";
+ };
+ };
+ };
+
+ kernel = rec {
+ checkedConfig = {
+ "MIPS_ELF_APPENDED_DTB" = "y";
+ OF = "y";
+ USE_OF = "y";
+ ATH79 = "y";
+ SOC_QCA955X = "y"; # actually QCA9531, is this even right?
+ LIMINIX = "y";
+ SERIAL_8250_CONSOLE = "y";
+ SERIAL_8250 = "y";
+ SERIAL_CORE_CONSOLE = "y";
+
+ # need this to open console device at boot. dmesg goes from
+ # [ 0.272934] Warning: unable to open an initial console.
+ # to
+ # [ 0.247413] printk: console [ttyS0] disabled
+ # [ 0.25200] 18020000.uart: ttyS0 at MMIO 0x1802000 (irq = 10, base_baud = 1562500) is a 16550A
+ SERIAL_OF_PLATFORM = "y";
+
+ CONSOLE_LOGLEVEL_DEFAULT = "8";
+ CONSOLE_LOGLEVEL_QUIET = "4";
+
+ # "empty" initramfs source should create an initial
+ # filesystem that has a /dev/console node and not much
+ # else. Note that pid 1 is started *before* the root
+ # filesystem is mounted and it expects /dev/console to
+ # be present already
+ BLK_DEV_INITRD = "n";
+ };
+ config = {
+ CPU_LITTLE_ENDIAN= "n";
+ CPU_BIG_ENDIAN= "y";
+ ATH79 = "y";
+ MIPS_ELF_APPENDED_DTB = "y";
+
+# INITRAMFS_SOURCE = "\"\"";
+
+ # this is all copied from nixwrt ath79 config. Clearly not all
+ # of it is device config, some of it is wifi config or
+ # installation method config or ...
+
+ "CMDLINE_PARTITION" = "y";
+ "DEBUG_INFO" = "y";
+ "EARLY_PRINTK" = "y";
+ "FW_LOADER" = "y";
+ # we don't have a user helper, so we get multiple 60s pauses
+ # at boot time unless we disable trying to call it
+ "FW_LOADER_USER_HELPER" = "n";
+
+ "MODULE_SIG" = "y";
+ "MTD_CMDLINE_PARTS" = "y";
+ "PARTITION_ADVANCED" = "y";
+ "PRINTK_TIME" = "y";
+ "SQUASHFS" = "y";
+ "SQUASHFS_XZ" = "y";
+ # "ASN1" = "y";
+ # "ASYMMETRIC_KEY_TYPE" = "y";
+ # "ASYMMETRIC_PUBLIC_KEY_SUBTYPE" = "y";
+ # "CRC_CCITT" = "y";
+ # "CRYPTO" = "y";
+ # "CRYPTO_ARC4" = "y";
+ # "CRYPTO_CBC" = "y";
+ # "CRYPTO_CCM" = "y";
+ # "CRYPTO_CMAC" = "y";
+ # "CRYPTO_GCM" = "y";
+ # "CRYPTO_HASH_INFO" = "y";
+ # "CRYPTO_LIB_ARC4" = "y";
+ # "CRYPTO_RSA" = "y";
+ # "CRYPTO_SHA1" = "y";
+ # "ENCRYPTED_KEYS" = "y";
+ # "KEYS" = "y";
+ };
+ };
+ outputs.default = "directory";
+ boot = {
+ loadAddress = "0x80060000";
+ entryPoint = "0x80060000";
+ };
+}
diff --git a/devices/qemu.nix b/devices/qemu.nix
@@ -1,156 +0,0 @@
-# This "device" generates images that can be used with the QEMU
-# emulator. The default output is a directory containing separate
-# kernel (uncompressed vmlinux) and initrd (squashfs) images
-
-{
- system = {
- crossSystem = {
- config = "mips-unknown-linux-musl";
- gcc = {
- abi = "32";
- arch = "mips32"; # maybe mips_24kc-
- };
- };
- };
- kernel = {
- config = {
- SYSVIPC= "y";
- NO_HZ= "y";
- HIGH_RES_TIMERS= "y";
- LOG_BUF_SHIFT = "15";
- NAMESPACES= "y";
- RELAY= "y";
- EXPERT= "y";
- PERF_EVENTS= "y";
- COMPAT_BRK= "n";
- SLAB= "y";
- MIPS_MALTA= "y";
- CPU_LITTLE_ENDIAN= "n";
- CPU_BIG_ENDIAN= "y";
- CPU_MIPS32_R2= "y";
- PAGE_SIZE_16KB= "y";
- NR_CPUS= "1";
- HZ_100= "y";
- PCI= "y";
- VIRTUALIZATION= "y";
- KVM_MIPS_DEBUG_COP0_COUNTERS= "y";
- MODULES= "y";
- MODULE_UNLOAD= "y";
- MODVERSIONS= "y";
- MODULE_SRCVERSION_ALL= "y";
- NET= "y";
- PACKET= "y";
- UNIX= "y";
- NET_KEY= "y";
- NET_KEY_MIGRATE= "y";
- INET= "y";
- IP_MULTICAST= "y";
- IP_ADVANCED_ROUTER= "y";
- IP_MULTIPLE_TABLES= "y";
- IP_ROUTE_MULTIPATH= "y";
- IP_ROUTE_VERBOSE= "y";
- IP_PNP= "y";
- IP_PNP_DHCP= "y";
- IP_PNP_BOOTP= "y";
- IP_MROUTE= "y";
- IP_PIMSM_V1= "y";
- IP_PIMSM_V2= "y";
- SYN_COOKIES= "y";
- TCP_MD5SIG= "y";
- IPV6_ROUTER_PREF= "y";
- IPV6_ROUTE_INFO= "y";
- IPV6_OPTIMISTIC_DAD= "y";
- IPV6_MROUTE= "y";
- IPV6_PIMSM_V2= "y";
- NETWORK_SECMARK= "y";
- NETFILTER= "y";
- NF_CONNTRACK_SECMARK= "y";
- NF_CONNTRACK_EVENTS= "y";
- IP_VS_IPV6= "y";
- IP_VS_PROTO_TCP= "y";
- IP_VS_PROTO_UDP= "y";
- IP_VS_PROTO_ESP= "y";
- IP_VS_PROTO_AH= "y";
- VLAN_8021Q_GVRP= "y";
- IPDDP_ENCAP= "y";
- NET_SCHED= "y";
- NET_CLS_ACT= "y";
- NET_ACT_POLICE= "y";
- GACT_PROB= "y";
- MTD= "y";
- MTD_BLOCK= "y";
- MTD_CFI= "y";
- MTD_CFI_INTELEXT= "y";
- MTD_CFI_AMDSTD= "y";
- MTD_CFI_STAA= "y";
- MTD_PHYSMAP_OF= "y";
- BLK_DEV_RAM= "y";
- BLK_DEV_SD= "y";
- BLK_DEV_SR= "y";
- SCSI_CONSTANTS= "y";
- SCSI_LOGGING= "y";
- SCSI_SCAN_ASYNC= "y";
- AIC7XXX_RESET_DELAY_MS="15000";
- AIC7XXX_DEBUG_ENABLE= "n";
- ATA= "y";
- ATA_PIIX= "y";
- PATA_OLDPIIX= "y";
- PATA_MPIIX= "y";
- ATA_GENERIC= "y";
- PATA_LEGACY= "y";
- MD= "y";
- NETDEVICES= "y";
- PCNET32= "y";
- IPW2100_MONITOR= "y";
- HOSTAP_FIRMWARE= "y";
- HOSTAP_FIRMWARE_NVRAM= "y";
- INPUT_MOUSEDEV= "y";
- SERIAL_8250= "y";
- SERIAL_8250_CONSOLE= "y";
- POWER_RESET= "y";
- POWER_RESET_PIIX4_POWEROFF= "y";
- POWER_RESET_SYSCON= "y";
- HWMON= "n";
- FB= "y";
- FB_CIRRUS= "y";
- VGA_CONSOLE= "n";
- FRAMEBUFFER_CONSOLE= "y";
- RTC_CLASS= "y";
- RTC_DRV_CMOS= "y";
- EXT2_FS= "y";
- EXT3_FS= "y";
- JFS_POSIX_ACL= "y";
- JFS_SECURITY= "y";
- QUOTA= "y";
- QFMT_V2= "y";
- JOLIET= "y";
- ZISOFS= "y";
- PROC_KCORE= "y";
- TMPFS= "y";
- CONFIGFS_FS= "y";
- JFFS2_FS_XATTR= "y";
- JFFS2_COMPRESSION_OPTIONS= "y";
- JFFS2_RUBIN= "y";
- # NFS_FS= "y";
- # ROOT_NFS= "y";
- # NFSD= "y";
- # NFSD_V3= "y";
- CRYPTO_HMAC= "y";
- RCU_CPU_STALL_TIMEOUT = "60";
- ENABLE_DEFAULT_TRACERS = "y";
-
- CFG80211= "y";
- MAC80211= "y";
- MAC80211_MESH= "y";
- RFKILL= "y";
- WLAN = "y";
- MAC80211_HWSIM = "y";
- SQUASHFS = "y";
- SQUASHFS_XZ = "y";
- VIRTIO_PCI = "y";
- VIRTIO_BLK = "y";
- VIRTIO_NET = "y";
- };
- };
- outputs.default = "directory";
-}
diff --git a/devices/qemu/default.nix b/devices/qemu/default.nix
@@ -0,0 +1,171 @@
+# This "device" generates images that can be used with the QEMU
+# emulator. The default output is a directory containing separate
+# kernel (uncompressed vmlinux) and initrd (squashfs) images
+
+{
+ system = {
+ crossSystem = {
+ config = "mips-unknown-linux-musl";
+ gcc = {
+ abi = "32";
+ arch = "mips32"; # maybe mips_24kc-
+ };
+ };
+ };
+
+ overlay = final: prev:
+ let inherit (final) fetchFromGitHub;
+ in {
+ sources = {
+ kernel = fetchFromGitHub {
+ name = "kernel-source";
+ owner = "torvalds";
+ repo = "linux";
+ rev = "3d7cb6b04c3f3115719235cc6866b10326de34cd"; # v5.19
+ hash = "sha256-OVsIRScAnrPleW1vbczRAj5L/SGGht2+GnvZJClMUu4=";
+ };
+ };
+ };
+
+ kernel = {
+ config = {
+ SYSVIPC= "y";
+ NO_HZ= "y";
+ HIGH_RES_TIMERS= "y";
+ LOG_BUF_SHIFT = "15";
+ NAMESPACES= "y";
+ RELAY= "y";
+ EXPERT= "y";
+ PERF_EVENTS= "y";
+ COMPAT_BRK= "n";
+ SLAB= "y";
+ MIPS_MALTA= "y";
+ CPU_LITTLE_ENDIAN= "n";
+ CPU_BIG_ENDIAN= "y";
+ CPU_MIPS32_R2= "y";
+ PAGE_SIZE_16KB= "y";
+ NR_CPUS= "1";
+ HZ_100= "y";
+ PCI= "y";
+ VIRTUALIZATION= "y";
+ KVM_MIPS_DEBUG_COP0_COUNTERS= "y";
+ MODULES= "y";
+ MODULE_UNLOAD= "y";
+ MODVERSIONS= "y";
+ MODULE_SRCVERSION_ALL= "y";
+ NET= "y";
+ PACKET= "y";
+ UNIX= "y";
+ NET_KEY= "y";
+ NET_KEY_MIGRATE= "y";
+ INET= "y";
+ IP_MULTICAST= "y";
+ IP_ADVANCED_ROUTER= "y";
+ IP_MULTIPLE_TABLES= "y";
+ IP_ROUTE_MULTIPATH= "y";
+ IP_ROUTE_VERBOSE= "y";
+ IP_PNP= "y";
+ IP_PNP_DHCP= "y";
+ IP_PNP_BOOTP= "y";
+ IP_MROUTE= "y";
+ IP_PIMSM_V1= "y";
+ IP_PIMSM_V2= "y";
+ SYN_COOKIES= "y";
+ TCP_MD5SIG= "y";
+ IPV6_ROUTER_PREF= "y";
+ IPV6_ROUTE_INFO= "y";
+ IPV6_OPTIMISTIC_DAD= "y";
+ IPV6_MROUTE= "y";
+ IPV6_PIMSM_V2= "y";
+ NETWORK_SECMARK= "y";
+ NETFILTER= "y";
+ NF_CONNTRACK_SECMARK= "y";
+ NF_CONNTRACK_EVENTS= "y";
+ IP_VS_IPV6= "y";
+ IP_VS_PROTO_TCP= "y";
+ IP_VS_PROTO_UDP= "y";
+ IP_VS_PROTO_ESP= "y";
+ IP_VS_PROTO_AH= "y";
+ VLAN_8021Q_GVRP= "y";
+ IPDDP_ENCAP= "y";
+ NET_SCHED= "y";
+ NET_CLS_ACT= "y";
+ NET_ACT_POLICE= "y";
+ GACT_PROB= "y";
+ MTD= "y";
+ MTD_BLOCK= "y";
+ MTD_CFI= "y";
+ MTD_CFI_INTELEXT= "y";
+ MTD_CFI_AMDSTD= "y";
+ MTD_CFI_STAA= "y";
+ MTD_PHYSMAP_OF= "y";
+ BLK_DEV_RAM= "y";
+ BLK_DEV_SD= "y";
+ BLK_DEV_SR= "y";
+ SCSI_CONSTANTS= "y";
+ SCSI_LOGGING= "y";
+ SCSI_SCAN_ASYNC= "y";
+ AIC7XXX_RESET_DELAY_MS="15000";
+ AIC7XXX_DEBUG_ENABLE= "n";
+ ATA= "y";
+ ATA_PIIX= "y";
+ PATA_OLDPIIX= "y";
+ PATA_MPIIX= "y";
+ ATA_GENERIC= "y";
+ PATA_LEGACY= "y";
+ MD= "y";
+ NETDEVICES= "y";
+ PCNET32= "y";
+ IPW2100_MONITOR= "y";
+ HOSTAP_FIRMWARE= "y";
+ HOSTAP_FIRMWARE_NVRAM= "y";
+ INPUT_MOUSEDEV= "y";
+ SERIAL_8250= "y";
+ SERIAL_8250_CONSOLE= "y";
+ POWER_RESET= "y";
+ POWER_RESET_PIIX4_POWEROFF= "y";
+ POWER_RESET_SYSCON= "y";
+ HWMON= "n";
+ FB= "y";
+ FB_CIRRUS= "y";
+ VGA_CONSOLE= "n";
+ FRAMEBUFFER_CONSOLE= "y";
+ RTC_CLASS= "y";
+ RTC_DRV_CMOS= "y";
+ EXT2_FS= "y";
+ EXT3_FS= "y";
+ JFS_POSIX_ACL= "y";
+ JFS_SECURITY= "y";
+ QUOTA= "y";
+ QFMT_V2= "y";
+ JOLIET= "y";
+ ZISOFS= "y";
+ PROC_KCORE= "y";
+ TMPFS= "y";
+ CONFIGFS_FS= "y";
+ JFFS2_FS_XATTR= "y";
+ JFFS2_COMPRESSION_OPTIONS= "y";
+ JFFS2_RUBIN= "y";
+ # NFS_FS= "y";
+ # ROOT_NFS= "y";
+ # NFSD= "y";
+ # NFSD_V3= "y";
+ CRYPTO_HMAC= "y";
+ RCU_CPU_STALL_TIMEOUT = "60";
+ ENABLE_DEFAULT_TRACERS = "y";
+
+ CFG80211= "y";
+ MAC80211= "y";
+ MAC80211_MESH= "y";
+ RFKILL= "y";
+ WLAN = "y";
+ MAC80211_HWSIM = "y";
+ SQUASHFS = "y";
+ SQUASHFS_XZ = "y";
+ VIRTIO_PCI = "y";
+ VIRTIO_BLK = "y";
+ VIRTIO_NET = "y";
+ };
+ };
+ outputs.default = "directory";
+}
diff --git a/kernel/default.nix b/kernel/default.nix
@@ -6,15 +6,9 @@
, config
, checkedConfig
+, sources
}:
let
- source = fetchFromGitHub {
- owner = "torvalds";
- repo = "linux";
- rev = "3d7cb6b04c3f3115719235cc6866b10326de34cd"; # v5.19
- hash = "sha256-OVsIRScAnrPleW1vbczRAj5L/SGGht2+GnvZJClMUu4=";
- };
-
# The kernel is huge and takes a long time just to
# download and unpack. This derivation creates
# a source tree in a suitable shape to build from -
@@ -24,7 +18,7 @@ let
tree = stdenvNoCC.mkDerivation {
name = "spindled-kernel-tree";
- src = source;
+ src = sources.kernel;
phases = [ "unpackPhase" "patchPhase" "patchScripts" "installPhase" ];
patches = [ ./random.patch ];
patchScripts = ''
@@ -36,15 +30,6 @@ let
'';
};
- openwrtSource = fetchFromGitHub {
- name = "openwrt-source-tree";
- repo = "openwrt";
- owner = "openwrt";
- rev = "a5265497a4f6da158e95d6a450cb2cb6dc085cab";
- hash = "sha256-YYi4gkpLjbOK7bM2MGQjAyEBuXJ9JNXoz/JEmYf8xE8=";
- };
-
-
in rec {
vmlinux = callPackage ./vmlinux.nix {
inherit tree config checkedConfig;
@@ -53,7 +38,7 @@ in rec {
uimage = callPackage ./uimage.nix { };
dtb = callPackage ./dtb.nix {
- openwrt = openwrtSource;
+ openwrt = sources.openwrt;
kernel = tree;
};
}
diff --git a/tests/kernel/run.sh b/tests/kernel/run.sh
@@ -1,5 +1,5 @@
set -e
-NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build '<liminix>' -I liminix-config=../smoke/configuration.nix --arg device "import <liminix/devices/$DEVICE.nix>" -A outputs.kernel.vmlinux -o vmlinux $*
+NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build '<liminix>' -I liminix-config=../smoke/configuration.nix --arg device "import <liminix/devices/$DEVICE>" -A outputs.kernel.vmlinux -o vmlinux $*
TESTS=$(cat <<"EOF"
diff --git a/tests/module/run.sh b/tests/module/run.sh
@@ -1,2 +1,2 @@
set -e
-NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build --arg device "import <liminix/devices/qemu.nix>" test.nix
+NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build --arg device "import <liminix/devices/qemu>" test.nix
diff --git a/tests/pppoe/run.sh b/tests/pppoe/run.sh
@@ -14,7 +14,7 @@ fatal(){
}
trap fatal ERR
-NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build '<liminix>' -I liminix-config=./configuration.nix --arg device "import <liminix/devices/qemu.nix>" -A outputs.default $*
+NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build '<liminix>' -I liminix-config=./configuration.nix --arg device "import <liminix/devices/qemu>" -A outputs.default $*
if ! ( echo "cont" | socat - unix-connect:../support/ppp-server/qemu-monitor); then
echo "need pppoe server running"
diff --git a/tests/smoke/run.sh b/tests/smoke/run.sh
@@ -1,5 +1,5 @@
set -e
-NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build '<liminix>' -I liminix-config=./configuration.nix --arg device "import <liminix/devices/$DEVICE.nix>" -A outputs.squashfs -o smoke.img $*
+NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build '<liminix>' -I liminix-config=./configuration.nix --arg device "import <liminix/devices/$DEVICE>" -A outputs.squashfs -o smoke.img $*
TESTS=$(cat <<"EOF"
test -n "${TMPDIR}"
diff --git a/tests/wlan/run.sh b/tests/wlan/run.sh
@@ -14,7 +14,7 @@ fatal(){
}
trap fatal ERR
-NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build '<liminix>' -I liminix-config=./configuration.nix --arg device "import <liminix/devices/qemu.nix>" -A outputs.default $*
+NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1 nix-build '<liminix>' -I liminix-config=./configuration.nix --arg device "import <liminix/devices/qemu>" -A outputs.default $*