I’ve been tinkering on-and-off with trying to get nixos running on an ARM board, the inovato quadra: https://inovato.com/ . This is my first time messing with kernel configs or trying to run NixOS on a new board.
Stock NixOS ARM boots and runs, but no network adapters are detected (ip link
shows lo
only).
They’ve published the patch they use on top of Armbian to get everything working: https://www.inovato.net/build/quadra.patch
For Ethernet, it seems to enable kernel configuration regarding AC200
, and for wifi it uses GitHub - fifteenhex/xradio: Port Allwinner xradio driver to mainline Linux. .
I wanted to start with Ethernet, as I assume this would be simpler. I’m also interested in using ZFS on this device.
Unfortunately, I’ve tried a number of strategies like kernelPatches
and overrides
, but the resulting kernel configuration doesn’t seem to include my overrides.
For example:
boot.kernelPackages = pkgs.quadraKernel;
nixpkgs = {
overlays = [
(self: super: {
quadraKernel = pkgs.linuxPackagesFor (
config.boot.zfs.package.latestCompatibleLinuxPackages.kernel.override {
structuredExtraConfig =
let
inherit (lib.kernel) yes;
in
{
AC200_PHY = yes;
MFD_AC200 = yes;
};
# ignoreConfigErrors = true;
}
);
})
];
};
$ nix build .#packages.x86_64-linux.quadra.config.boot.kernelPackages.kernel.configfile
$ head result
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.6.48 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.3.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=130300
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24200
$
$ grep AC200 result
$ echo $?
1
What am I doing wrong? Why doesn’t my kernel config file have AC200_PHY
like I expected?