qemu.nix (1524B)
1 { config, pkgs, ... }: 2 { 3 imports = [ 4 ../../modules/outputs/jffs2.nix 5 ]; 6 config = { 7 kernel = { 8 src = pkgs.pkgsBuildBuild.fetchurl { 9 name = "linux.tar.gz"; 10 url = "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.137.tar.gz"; 11 hash = "sha256-PkdzUKZ0IpBiWe/RS70J76JKnBFzRblWcKlaIFNxnHQ="; 12 }; 13 config = { 14 MTD = "y"; 15 MTD_BLOCK = "y"; 16 MTD_CMDLINE_PARTS = "y"; 17 MTD_PHRAM = "y"; 18 19 VIRTIO_MENU = "y"; 20 PCI = "y"; 21 VIRTIO_PCI = "y"; 22 BLOCK = "y"; 23 VIRTIO_BLK = "y"; 24 VIRTIO_NET = "y"; 25 }; 26 }; 27 hardware = 28 let 29 mac80211 = pkgs.mac80211.override { 30 drivers = ["mac80211_hwsim"]; 31 klibBuild = config.system.outputs.kernel.modulesupport; 32 }; 33 in { 34 defaultOutput = "vmroot"; 35 rootDevice = "/dev/mtdblock0"; 36 dts.src = pkgs.lib.mkDefault null; 37 flash.eraseBlockSize = 65536; 38 networkInterfaces = 39 let inherit (config.system.service.network) link; 40 in { 41 wan = link.build { 42 devpath = "/devices/pci0000:00/0000:00:13.0/virtio0"; 43 ifname = "wan"; 44 }; 45 lan = link.build { 46 devpath = "/devices/pci0000:00/0000:00:14.0/virtio1"; 47 ifname = "lan"; 48 }; 49 50 wlan_24 = link.build { 51 ifname = "wlan0"; 52 dependencies = [ mac80211 ]; 53 }; 54 }; 55 }; 56 }; 57 }