NixOS on ARM/Raspberry Pi 4: Difference between revisions
m remove extra whitespace |
|||
(18 intermediate revisions by 5 users not shown) | |||
Line 75: | Line 75: | ||
raspberrypi-eeprom | raspberrypi-eeprom | ||
]; | ]; | ||
system.stateVersion = " | system.stateVersion = "24.11"; | ||
} | } | ||
</nowiki>}} | |||
=== <code>config.txt</code> === | |||
{{warning|Since 24.11, the option <code>boot.loader.raspberrypi</code> which included <code>firmwareConfig</code> is removed from <code>nixpkgs</code>, therefore changes have to be written to <code>config.txt</code> directly<ref>https://github.com/NixOS/nixpkgs/pull/241534</ref>}} | |||
To edit options only available through <code>config.txt</code>, as of May 12, 2025, you can only do so non-declaratively: | |||
{{commands|<nowiki> | |||
$ sudo mount /dev/disk/by-label/FIRMWARE /mnt | |||
$ sudo vim /mnt/config.txt # <-- make changes here | |||
</nowiki>}} | |||
For example, [https://www.raspberrypi-spy.co.uk/2020/11/overclocking-the-raspberry-pi-400/ overclocking] the Raspberry Pi 400 can be done by adding the following: | |||
{{file|config.txt|text|<nowiki> | |||
arm_freq=2000 | |||
over_voltage=6 | |||
</nowiki>}} | </nowiki>}} | ||
Line 139: | Line 155: | ||
# Enable audio devices | # Enable audio devices | ||
boot.kernelParams = [ "snd_bcm2835.enable_hdmi=1" "snd_bcm2835.enable_headphones=1" ]; | boot.kernelParams = [ "snd_bcm2835.enable_hdmi=1" "snd_bcm2835.enable_headphones=1" ]; | ||
} | } | ||
</nowiki>}} | |||
{{file|config.txt|txt|<nowiki> | |||
dtparam=audio=on | |||
</nowiki>}} | </nowiki>}} | ||
Line 288: | Line 304: | ||
}; | }; | ||
</nowiki>}} | </nowiki>}} | ||
== Customizing & Generating SD image without installation step == | |||
There's a nix-community project to support fine-grained kernel & config.txt, and generate the image directly: | |||
[https://github.com/nix-community/raspberry-pi-nix/ nix-community/raspberry-pi-nix] | |||
== Notes about the boot process == | == Notes about the boot process == |