Boot error 'i801-smbus'

Hi Nixos^s new nix user here
I have a question about my Nixos installation. Is it during boot that I get an error ‘i801-smbus’.
The error repeats itself over 4-5 lines. Now that I know it is there. I have searched the internet and
found a number of threads describing the problem. and one of the problems described is that the ‘i801-smbus’ error causes data loss!.
By looking further I came across a block with a solution.
I have not tested the suggestion, and will first ask nix-discourse for a nix solution

the info that i haw is from the these link to the block
link to block
and a old bug report but not from my pc.

a few commands to gather some information

[nix-shell:~]$ uname -a
Linux nixos 6.6.92 #1-NixOS SMP PREEMPT_DYNAMIC Thu May 22 12:12:26 UTC 2025 x86_64 GNU/Linux

[nix-shell:~]$ cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7       
18:          0          0          0          0      50989          0          0          0   IO-APIC  18-fasteoi   i801_sm

the proposed solution from the block

$ cat <<EOF | sudo tee /etc/modprobe.d/i2c-i801.conf
options i2c-i801 disable_features=0x10
EOF
$ sudo update-initramfs -u

but is it a working option on nix?

Manually generating initramfs is not a thing on nixos, but you might want to check out that option for your config

https://search.nixos.org/options?channel=25.05&show=boot.extraModprobeConfig&from=0&size=50&sort=relevance&type=packages&query=boot.extraModprobeConfig

That should add content to the modprobe.conf

I think I need some more explanation for this
I have looked at modprobe.nix and downloaded it, but is that the file I need or is there more than I need?
Another question is, is modprobe.nix a flake, and if so, how do I add it to configuration.nix?
In the /etc/modprobe.d/ file, I see a number of files, and it seems that it is the ubunto.conf file that I need
and I then need to add “i801_smbus” to the file and then ‘nixos-rebuild switch’ ‘–upgrade’. ?

ls modprobe.d

[nix-shell:~]$ ls /etc/modprobe.d/
debian.conf  firmware.conf  nixos.conf  systemd.conf  ubuntu.conf

and man modprobe.d 5 have 4 difrence conf file

nix-shell:~]$ man modprobe.d 5
  /lib/modprobe.d/*.conf
  /usr/local/lib/modprobe.d/*.conf
  /run/modprobe.d/*.conf
  /etc/modprobe.d/*.conf

what am i looking for ?

Hi,
As you have mentioned that you are new to nixos you might want to check out some of the manuals or tutorials before continuing to much as otherwise you will encounter quite some pitfalls or will experience a high(er) Frustration level.
let me try to give brief explanation what I think an issue might be that could occur for you.
Not every thing might be 100% accurate and if to I am sorry for that in advance.

I assume you are somewhat familiar with classic Linux distributions, as you seem familiar in how to bring module configs into initramfs (which is not the thing a newbie learns first).
In nixos there is a fundamental difference to other traditional linuxes.
Nixos tries to declare the system with a programming language (in this case nix [the language]). That starts with how packages are built (e.G the build instructions for something like Firefox are described with nix [utilizing the known toolchains like GCC,…])

Aside Software it sees configuration also as something “build able”. Users can describe the desired outputs in their configuration.nix (that should sit at /etc/nixos/configuration.nix), unless you are using flakes or so or other tweaks to move it around.

But that is the big difference to understand and learn. There is quite less stuff here that you should do by typing some commands into bash or so. If you find some tutorials that drop something into files you will almost every time that will not work on nixos.

For building a valid configuration we need some abstraction layer (as most of the software we want to use is configured differently).
The abstraction layer is provided by the nixos modules.
A good point to search for options is search.nixos.org (and then hit for nixos options). Be aware that not every option is “searchable” there, there are also options that are flagged as hidden/internal (but you should not bother to much about those then).

The link I have provided is such an option.
So it connect the dots, I suggested that you want to set the option boot.extraModprobeConfig to the content that you wanted to set manually.

So add to your configuration.nix something like

boot.extraModprobeConfig = ''
options i2c-i801 disable_features=0x10
'';

And the rebuild your system configuration with nixos-rebuild.
Then you should be able to check the content at /etc/modprobe.d/ and reboot the system.

I hope that helps a bit.

1 Like

yes there you haw it, that help!;
it is in the blacklist of nixos conf
thanks a lot