{ buildLinux, fetchFromGitHub, kernelPatches, lib, ... } @ args: let modDirVersion = "6.6.20"; in buildLinux (args // { inherit kernelPatches modDirVersion; version = "${modDirVersion}-milkv-pioneer"; src = fetchFromGitHub { owner = "sophgo"; repo = "linux-riscv"; rev = "caa949e3690fe8a4656313b2b56f52666fa880db"; hash = "sha256-qJpR3KMgvP4tfPfBfQ/MiEWg/uuuxHYuACK8taKKK3E="; }; defconfig = "sophgo_mango_normal_defconfig"; structuredExtraConfig = let inherit (lib.kernel) freeform module yes; in { # LinuxBoot will override the console bootparams which will result # in the distro kernel to be booted with e.g. console=tty1 only. # https://github.com/sophgo/bootloader-riscv/issues/71 # Force output on serial console through the config. This is also # needed to get the forced serial-getty to be started. # We also list tty1 again because according to # https://docs.kernel.org/admin-guide/serial-console.html and # https://0pointer.de/blog/projects/serial-console.html # this will be the main console. CMDLINE = freeform "console=ttyS0,115200 console=tty1"; CMDLINE_EXTEND = yes; # Enable these explicitly because they are not enabled by the defconfig. # The all-hardware profile expects these to be built. VIRTIO_MENU = yes; VIRTIO_PCI = module; # There is an i2c mcu driver (drivers/soc/sophgo/umcu) which is always # compiled into the kernel. Hence some of the i2c support also needs to # be compiled in instead of being compiled as a module. I2C = yes; I2C_CHARDEV = yes; I2C_DESIGNWARE_PLATFORM = yes; }; extraMeta.branch = "sg2042-dev-6.6"; } // (args.argsOverride or { }))