Raspberry Pi 3 documentation

I have been trying to configure a raspberry pi 3(B+) and I keep bumping on documentation on the wiki that is not working and probably outdated. I want to fix the documentation, but finding out how things actually work proves difficult.

For example the wiki has the following entry for audio support:NixOS on ARM/Raspberry Pi 3 - NixOS Wiki, but changing boot.loader.raspberryPi.firmwareConfig does not actually change the /boot/config.txt even though the raspberry pi module is enabled with u-boot.

There is a more or less stale issue mentioning this (https://github.com/NixOS/nixpkgs/issues/67792) but there is no movement there. A few PR’s have been openened/merged for Raspberry Pi in general and I think some of those changes may have changed the default behavior.

So what I am looking for in order to improve the wiki:

  • A working configuration running on a Raspberry Pi 3(B+)
  • How the bootloader currently works (multiple options?)
  • How to set config.txt values

The Raspberry Pi 3 is currently the only officially supported raspberry pi, so let’s try to fix the docs!

I recently started using NixOS for a headless Raspberry Pi 3 setup at work.
It’s mostly based on this blog post.
I have written down instructions and created configs which work fairly reproducible.
The trick seems to be to create the swap file before the first nixos-rebuild. If the config is fairly large, the memory seems to run out and the rebuild crashes silently.
Also boot.kernelPackages should be set to pkgs.linuxPackages_rpi3 for bluetooth to work.

Should I edit the wiki with my findings?

1 Like

I didn’t yet find out why boot.loader.raspberryPi.firmwareConfig doesn’t work
According to the code it should.
In my case no /boot/config is generated at all.

Does nixos-rebuild switch change the files in the firmware partition? (EDIT: Since things were updated to have the /boot directory and initrd / etc on the root partition a while back, right?)

When using sd-image-aarch64 for the RPi 3, it looks like it doesn’t even take firmwareConfig into account at all:

1 Like