rpi-netboot: add dtb, use linuxPackages_latest
This commit is contained in:
parent
b31c7e005a
commit
a3649184b9
|
@ -2,10 +2,6 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
# hardware.deviceTree = {
|
|
||||||
# enable = true;
|
|
||||||
# kernelPackage = config.boot.kernelPackages.kernel;
|
|
||||||
# };
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
@ -35,9 +31,9 @@
|
||||||
|
|
||||||
tmpOnTmpfs = true;
|
tmpOnTmpfs = true;
|
||||||
};
|
};
|
||||||
hardware.raspberry-pi."4" = {
|
# hardware.raspberry-pi."4" = {
|
||||||
fkms-3d.enable = true;
|
# fkms-3d.enable = true;
|
||||||
};
|
# };
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "${hostRegistry.hosts.nix-build.ip4}:/var/lib/nfsroot/dacbert";
|
device = "${hostRegistry.hosts.nix-build.ip4}:/var/lib/nfsroot/dacbert";
|
||||||
fsType = "nfs";
|
fsType = "nfs";
|
||||||
|
|
|
@ -1,37 +1,14 @@
|
||||||
{ nixpkgs, config, lib, pkgs, modulesPath, ... }:
|
{ nixpkgs, config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
system.build.tarball = pkgs.callPackage (nixpkgs + "/nixos/lib/make-system-tarball.nix") {
|
boot.initrd.kernelParams = [
|
||||||
extraArgs = "--owner=0";
|
"verbose"
|
||||||
compressCommand = "cat";
|
];
|
||||||
compressionExtension = "";
|
|
||||||
|
|
||||||
storeContents = [
|
|
||||||
{
|
|
||||||
object = config.system.build.toplevel;
|
|
||||||
symlink = "none";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
contents = [
|
|
||||||
{
|
|
||||||
source = config.system.build.toplevel + "/init";
|
|
||||||
target = "/sbin/init";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
extraCommands = "mkdir -p proc sys dev";
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.initrd.includeDefaultModules = false;
|
|
||||||
boot.initrd.availableKernelModules = lib.mkForce [ "usbhid" ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
@ -74,6 +51,7 @@
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
libraspberrypi
|
libraspberrypi
|
||||||
raspberrypi-eeprom
|
raspberrypi-eeprom
|
||||||
|
iw
|
||||||
vim
|
vim
|
||||||
wget
|
wget
|
||||||
mpv
|
mpv
|
||||||
|
|
|
@ -7,11 +7,13 @@
|
||||||
firmwareConfig = lib.mkDefault ''
|
firmwareConfig = lib.mkDefault ''
|
||||||
gpu_mem=256
|
gpu_mem=256
|
||||||
dtparam=audio=on
|
dtparam=audio=on
|
||||||
|
# disable uart, enable bluetooth
|
||||||
|
enable_uart=0
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
# linuxPackages_latest doesn't boot
|
# linuxPackages_latest doesn't boot
|
||||||
# FIXME: needs u-boot or .dtb?
|
# FIXME: needs u-boot or .dtb?
|
||||||
kernelPackages = pkgs.linuxPackages_rpi4;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
"verbose" "shell_on_fail"
|
"verbose" "shell_on_fail"
|
||||||
"elevator=deadline"
|
"elevator=deadline"
|
||||||
|
@ -24,8 +26,11 @@
|
||||||
supportedFilesystems = lib.mkForce [
|
supportedFilesystems = lib.mkForce [
|
||||||
"nfs"
|
"nfs"
|
||||||
];
|
];
|
||||||
# keyboard support for debugging
|
includeDefaultModules = false;
|
||||||
availableKernelModules = [ "usb_storage" "usbhid" ];
|
availableKernelModules = [
|
||||||
|
"genet"
|
||||||
|
"usbhid"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
tmpOnTmpfs = true;
|
tmpOnTmpfs = true;
|
||||||
|
@ -38,8 +43,7 @@
|
||||||
neededForBoot = true;
|
neededForBoot = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# don't build .dtb files as long as we don't use them
|
hardware.deviceTree.enable = true;
|
||||||
hardware.deviceTree.enable = false;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
libraspberrypi
|
libraspberrypi
|
||||||
|
@ -58,16 +62,24 @@
|
||||||
|
|
||||||
system.build.tftproot = pkgs.runCommand "tftproot-${config.networking.hostName}" {} ''
|
system.build.tftproot = pkgs.runCommand "tftproot-${config.networking.hostName}" {} ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
|
|
||||||
cp -rs ${pkgs.raspberrypifw}/share/raspberrypi/boot/* $out/
|
cp -rs ${pkgs.raspberrypifw}/share/raspberrypi/boot/* $out/
|
||||||
rm -f $out/kernel8.img $out/initrd.img
|
ln -sf ${config.system.build.kernel}/Image $out/kernel8.img
|
||||||
ln -s ${config.system.build.kernel}/Image $out/kernel8.img
|
ln -sf ${config.system.build.initialRamdisk}/initrd $out/initrd.img
|
||||||
ln -s ${config.system.build.initialRamdisk}/initrd $out/initrd.img
|
|
||||||
|
chmod u+w $out/overlays
|
||||||
|
rm -fr $out/*.dtb $out/overlays
|
||||||
|
for f in $(find ${config.hardware.deviceTree.package}/ -name \*.dtb) ; do
|
||||||
|
ln -s $f $out/
|
||||||
|
done
|
||||||
|
|
||||||
cat << EOF > $out/config.txt
|
cat << EOF > $out/config.txt
|
||||||
kernel=kernel8.img
|
kernel=kernel8.img
|
||||||
initramfs initrd.img followkernel
|
initramfs initrd.img followkernel
|
||||||
arm_64bit=1
|
arm_64bit=1
|
||||||
${toString config.boot.loader.raspberryPi.firmwareConfig}
|
${toString config.boot.loader.raspberryPi.firmwareConfig}
|
||||||
EOF
|
EOF
|
||||||
echo "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 verbose init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}" > $out/cmdline.txt
|
|
||||||
|
echo "dwc_otg.lpm_enable=0 init=${config.system.build.toplevel}/init ${toString config.boot.kernelParams}" > $out/cmdline.txt
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue