treewide: only ever set unmergable options via lib.mkDefault

Also extract documentation from raspberry-pi/2/ profile.
This commit is contained in:
Yegor Timoshenko
2017-12-24 15:13:25 +00:00
parent a74c9bdaf8
commit 3743ae21f5
6 changed files with 58 additions and 72 deletions

View File

@@ -1,64 +1,32 @@
/** imported from https://nixos.org/wiki/Raspberry_Pi_2 **
# Status
The code in master as of June 2015 should be able to prepare a bootable NixOS for Raspberry PI 2.
There are still some drawbacks:
NixOS does not provide a /boot/config.txt (the FAT32 partition).
Making NixOS work in the Raspberry PI 2 is mainly the result of the recent work of ambro718, Dezgeg and viric (#nixos@irc.freenode.net).
# Download
If you want to test, you can flash this 4GB SD image (DOS partition table + fat32 + ext4 rootfs):
magnet:?xt=urn:btih:0def3f6acb3bceddb22cb24098f58e40e2853ec2&dn=rpi2-nixos-4b09501f2-img.xz&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80
Then you should be able to nixos-rebuild any configuration.nix changes.
The image is the result of a "nixos-install" alone. No root password has been set, and it does not include a nixpkgs checkout or channel.
In fact I (viric) created the FS into a NBD, not a real SD, to create this image.
*/
{ pkgs, config, lib, ...}:
{ lib, pkgs, ...}:
{
boot.consoleLogLevel = 7;
boot.loader.grub.enable = false;
boot.loader.generationsDir.enable = false;
boot.loader.raspberryPi.enable = true;
boot.loader.raspberryPi.version = 2;
boot.extraTTYs = [ "ttyAMA0" ];
boot.kernelPackages = pkgs.linuxPackages_rpi;
boot.kernelParams = [
#"coherent_pool=6M"
#"smsc95xx.turbo_mode=N"
"dwc_otg.lpm_enable=0"
"console=ttyAMA0,115200"
"rootwait"
#"console=tty1"
"elevator=deadline"
];
# cpufrequtils doesn't build on ARM
powerManagement.enable = false;
services.xserver.enable = false;
services.openssh.enable = true;
services.nixosManual.enable = false;
nixpkgs.config = {
# Since https://github.com/NixOS/nixpkgs/commit/f0b634c7e838cdd65ac6f73933c99af3f38d0fa8
nixpkgs.config.platform = lib.systems.platforms.raspberrypi2;
# Earlier than that, use this:
# platform = pkgs.platforms.raspberrypi2;
# Also be aware of this issue if you're encountering infinite recursion:
# https://github.com/NixOS/nixpkgs/issues/24170
allowUnfree = true;
boot = {
consoleLogLevel = lib.mkDefault 7;
extraTTYs = [ "ttyAMA0" ];
kernelPackages = lib.mkDefault pkgs.linuxPackages_rpi;
kernelParams = [
"dwc_otg.lpm_enable=0"
"console=ttyAMA0,115200"
"rootwait"
"elevator=deadline"
];
loader = {
grub.enable = lib.mkDefault false;
generationsDir.enable = lib.mkDefault false;
raspberryPi = {
enable = lib.mkDefault true;
version = lib.mkDefault 2;
};
};
};
nix.buildCores = 4;
nix.binaryCaches = [ ];
nixpkgs.config.platform = lib.systems.platforms.raspberrypi2;
# cpufrequtils doesn't build on ARM
powerManagement.enable = lib.mkDefault false;
services.openssh.enable = lib.mkDefault true;
}