NixOS on ARM/Raspberry Pi 4: Difference between revisions
Tags: Reverted Visual edit |
m remove extra whitespace |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 27: | Line 27: | ||
|} | |} | ||
</div> | </div> | ||
Raspberry | The Raspberry Pi family of devices is a series of single-board computers made by the Raspberry Pi Foundation. They are all based on Broadcom System-on-a-chip (SoCs). | ||
== | == Status == | ||
Raspberry Pi | The Raspberry Pi 4 Family is only supported as '''AArch64'''. Use as armv7 is community supported. | ||
== Board-specific | == Board-specific installation notes == | ||
First follow the [[NixOS_on_ARM#Installation|generic installation steps]] to get the installer image and install using the [[NixOS_on_ARM#NixOS_installation_.26_configuration|installation and configuration steps]]. | |||
Raspberry Pi | The Raspberry Pi 4B works with the [https://hydra.nixos.org/job/nixos/trunk-combined/nixos.sd_image.aarch64-linux generic SD image]. | ||
Sample instructions for [https://nix.dev/tutorials/installing-nixos-on-a-raspberry-pi installing NixOS on a Raspberry Pi] are available at nix.dev. | |||
{{warning| | {{warning| Note that the Raspberry Pi 4 has two HDMI outputs, and apparently sometimes the user prompt for the console/TTY is displayed on HDMI 1 while the boot process is displayed on HDMI 0 (this may even [https://raspberrypi.stackexchange.com/a/112071/149250 be the case] with the official (non NixOs) non-graphical lite image). So if after the message "Welcome on NixOs" at the end of phase 2 your screen goes black/disconnects, try to use the other HDMI port. See the related bug [https://github.com/NixOS/nixpkgs/issues/179701 here].}} | ||
Note that the Raspberry Pi 4 has two HDMI outputs, and apparently sometimes the user prompt for the console/TTY is displayed on HDMI 1 while the boot process is displayed on HDMI 0 (this may even [https://raspberrypi.stackexchange.com/a/112071/149250 be the case] with the official (non NixOs) non-graphical lite image). So if after the message "Welcome on NixOs" at the end of phase 2 your screen goes black/disconnects, try to use the other HDMI port. See the related bug [https://github.com/NixOS/nixpkgs/issues/179701 here].}} | |||
=== | === Configuration === | ||
Using <code>nixos-generate-config</code> will generate the required minimal configuration. | |||
Raspberry | Raspberry Pi 4 is well-supported on modern kernels. However, if you encounter issues with GPU support or other deviceTree quirks, you may wish to add the nixos-hardware channel: | ||
<code> | <code> | ||
Line 78: | Line 77: | ||
system.stateVersion = "24.11"; | 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 140: | 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>}} | ||