kernel version is 6.12.47
root module: 3w-9xxx
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/scsi/3w-9xxx.ko.xz
root module: 3w-xxxx
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/scsi/3w-xxxx.ko.xz
root module: ahci
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/ata/libata.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/ata/libahci.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/ata/ahci.ko.xz
root module: aic79xx
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/scsi/scsi_transport_spi.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/scsi/aic7xxx/aic79xx.ko.xz
root module: aic7xxx
dependency already copied: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/scsi/scsi_transport_spi.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/scsi/aic7xxx/aic7xxx.ko.xz
root module: analogix-anx6345
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/base/regmap/regmap-i2c.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/media/cec/core/cec.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/gpu/drm/display/drm_display_helper.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/gpu/drm/bridge/analogix/analogix_dp.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/gpu/drm/bridge/analogix/analogix-anx6345.ko.xz
root module: analogix-dp
dependency already copied: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/media/cec/core/cec.ko.xz
dependency already copied: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/gpu/drm/display/drm_display_helper.ko.xz
dependency already copied: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/gpu/drm/bridge/analogix/analogix_dp.ko.xz
root module: arcmsr
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/scsi/arcmsr/arcmsr.ko.xz
root module: ata_piix
dependency already copied: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/ata/libata.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/ata/ata_piix.ko.xz
root module: axp20x-ac-power
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/iio/industrialio.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/power/supply/axp20x_ac_power.ko.xz
root module: axp20x-battery
dependency already copied: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/iio/industrialio.ko.xz
copying dependency: /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47/kernel/drivers/power/supply/axp20x_battery.ko.xz
root module: dw-hdmi
modprobe: FATAL: Module dw-hdmi not found in directory /nix/store/4k6s35l4wh244mrcng416xkc4cln8m3p-linux-rpi-6.12.47-stable_20250916-modules/lib/modules/6.12.47
using nixos-hardware.nixosModules.raspberry-pi-4
boot.initrd.allowMissingModules = true;
opened 01:57PM - 13 Jan 21 UTC
6.topic: nixos
2.status: stale
This is a meta issue to track the changes that are required since we've merged #… 78430 (resulted in some channel blockers: #109252).
This is important for everything that is part of `modulesClosure` (`allowMissing` is now `false`):
```nix
# Determine the set of modules that we need to mount the root FS.
modulesClosure = pkgs.makeModulesClosure {
rootModules = config.boot.initrd.availableKernelModules ++ config.boot.initrd.kernelModules;
kernel = modulesTree;
firmware = firmware;
allowMissing = false;
};
```
But for missing firmware we only print a warning: 49130f93b73e61a9e3dff31c3c13c5a9096fa969
Relevant commits:
- fdf32154fc90698ef72ffa96ef39d920e1b9c951
- 49130f93b73e61a9e3dff31c3c13c5a9096fa969
- 8ca33835bae0e9158f0a686dbeb139d979943064 (1a16428c172abc6f61ead6133dd639d10d720905, 9e2880e5fa0cda607ad670cde12dc93735d2f97a)
Open/unresolved issues to consider:
- This breaking change can be problematic for users
- E.g. https://github.com/NixOS/nixpkgs/pull/78430#issuecomment-759158396: "This makes it really annoying to use NixOS with a custom built kernel. There is a whole bunch of modules that get added to the initrd "by default" in nixos/modules/system/boot/kernel.nix and can't easily be removed:"
- Can break on uncommon architectures (AFAIK we only test AMD64 and AArch64 on Hydra)
- Can break with a custom kernel configuration
- Can break with existing configs (that include typos or modules that aren't available on $arch)
Potential improvements:
- Should we add a NixOS option for `allowMissing` that defaults to `false`?
- Reasoning for this idea: We can fix regressions on Hydra and users could contribute fixes for other architectures but we cannot consider all custom kernel configurations (and minimal kernel configs will miss a lot of modules!)
- The error message is not great
- Why does it suddenly fail and not before -> maybe we could/should add an explanation and instructions (or link to this issue)?
opened 05:10PM - 09 Jan 22 UTC
0.kind: bug
6.topic: kernel
### Describe the bug
Building a sd-image for the raspberry-pi 4 fails with
`mo… dprobe: FATAL: Module sun4i-drm not found in directory /nix/store/azccsmgqmvhy8vmdr1f4rcpf1rbxvgx5-linux-5.10.52-1.20210805-modules/lib/modules/5.10.52`
### Steps To Reproduce
Steps to reproduce the behavior:
run `nix-build '<nixpkgs/nixos>' -A config.system.build.sdImage -I nixos-config=./minimal.nix --argstr system aarch64-linux`
with `minimal.nix` being:
```
{ config, pkgs, lib, ... }:
{
imports = [
<nixpkgs/nixos/modules/installer/sd-card/sd-image-aarch64-installer.nix>
];
boot = {
kernelPackages = pkgs.linuxPackages_rpi4;
};
}
```
### Expected behavior
An image is being produced
### Additional context
[Seems like it is this issue](https://github.com/NixOS/nixpkgs/issues/111683#issuecomment-968435872)
### Notify maintainers
@samueldr
### Metadata
```console
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
- system: `"x86_64-linux"`
- host os: `Linux 5.15.11, NixOS, 22.05 (Quokka)`
- multi-user?: `yes`
- sandbox: `yes`
- version: `nix-env (Nix) 2.5.1`
- channels(philipp): `""`
- channels(root): `"home-manager, nixos, nixos-hardware"`
- nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`
```
It should also work to correctly set boot.initrd.availableKernelModules to the right set for rpi 4. That probably belongs in nixos-hardware, though.
giggio
January 3, 2026, 8:26pm
4
The only way I found that this would work is if using mkForce, which I’d like to avoid, as the lists get merged, and the list that comes from “${nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix” includes the wrong modules.
If anyone has a better option, I’d like to know about it. I don’t like allowing missing modules, and I don’t want to mkForce, as could end up missing important new modules that show up.
I had this exact problem just yesterday. You can disable specific modules with boot.initrd.availableKernelModules.foo = lib.mkForce false. You can also disable hardware.enableAllHardware (the sd image enables it) to stop dw-hdmi being enabled in the first place, but if you do that I suggest checking the definition to see what else will be removed.
1 Like
giggio
January 4, 2026, 12:06am
6
Hey, that fixed it! I was able to turn off boot.initrd.allowMissingModules.
Here is how this ended up:
availableKernelModules = {
# other modules go here
# todo: remove this when this is fixed: https://github.com/NixOS/nixpkgs/issues/154163
# related: https://github.com/NixOS/nixpkgs/issues/109280
# related: https://discourse.nixos.org/t/cannot-build-raspberry-pi-sdimage-module-dw-hdmi-not-found/71804
dw-hdmi = lib.mkForce false;
dw-mipi-dsi = lib.mkForce false;
rockchipdrm = lib.mkForce false;
rockchip-rga = lib.mkForce false;
phy-rockchip-pcie = lib.mkForce false;
pcie-rockchip-host = lib.mkForce false;
pwm-sun4i = lib.mkForce false;
sun4i-drm = lib.mkForce false;
sun8i-mixer = lib.mkForce false;
};
Thanks for the tip!
2 Likes