rpi-netboot: add dtb, use linuxPackages_latest
This commit is contained in:
parent
b31c7e005a
commit
a3649184b9
|
@ -2,10 +2,6 @@
|
|||
|
||||
{
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
# hardware.deviceTree = {
|
||||
# enable = true;
|
||||
# kernelPackage = config.boot.kernelPackages.kernel;
|
||||
# };
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
|
@ -35,9 +31,9 @@
|
|||
|
||||
tmpOnTmpfs = true;
|
||||
};
|
||||
hardware.raspberry-pi."4" = {
|
||||
fkms-3d.enable = true;
|
||||
};
|
||||
# hardware.raspberry-pi."4" = {
|
||||
# fkms-3d.enable = true;
|
||||
# };
|
||||
fileSystems."/" = {
|
||||
device = "${hostRegistry.hosts.nix-build.ip4}:/var/lib/nfsroot/dacbert";
|
||||
fsType = "nfs";
|
||||
|
|
|
@ -1,37 +1,14 @@
|
|||
{ nixpkgs, config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
system.build.tarball = pkgs.callPackage (nixpkgs + "/nixos/lib/make-system-tarball.nix") {
|
||||
extraArgs = "--owner=0";
|
||||
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 = [ ];
|
||||
boot.initrd.kernelParams = [
|
||||
"verbose"
|
||||
];
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
hardware.bluetooth.enable = true;
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
|
@ -74,6 +51,7 @@
|
|||
environment.systemPackages = with pkgs; [
|
||||
libraspberrypi
|
||||
raspberrypi-eeprom
|
||||
iw
|
||||
vim
|
||||
wget
|
||||
mpv
|
||||
|
|
|
@ -7,11 +7,13 @@
|
|||
firmwareConfig = lib.mkDefault ''
|
||||
gpu_mem=256
|
||||
dtparam=audio=on
|
||||
# disable uart, enable bluetooth
|
||||
enable_uart=0
|
||||
'';
|
||||
};
|
||||
# linuxPackages_latest doesn't boot
|
||||
# FIXME: needs u-boot or .dtb?
|
||||
kernelPackages = pkgs.linuxPackages_rpi4;
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
kernelParams = [
|
||||
"verbose" "shell_on_fail"
|
||||
"elevator=deadline"
|
||||
|
@ -24,8 +26,11 @@
|
|||
supportedFilesystems = lib.mkForce [
|
||||
"nfs"
|
||||
];
|
||||
# keyboard support for debugging
|
||||
availableKernelModules = [ "usb_storage" "usbhid" ];
|
||||
includeDefaultModules = false;
|
||||
availableKernelModules = [
|
||||
"genet"
|
||||
"usbhid"
|
||||
];
|
||||
};
|
||||
|
||||
tmpOnTmpfs = true;
|
||||
|
@ -38,8 +43,7 @@
|
|||
neededForBoot = true;
|
||||
};
|
||||
|
||||
# don't build .dtb files as long as we don't use them
|
||||
hardware.deviceTree.enable = false;
|
||||
hardware.deviceTree.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
libraspberrypi
|
||||
|
@ -58,16 +62,24 @@
|
|||
|
||||
system.build.tftproot = pkgs.runCommand "tftproot-${config.networking.hostName}" {} ''
|
||||
mkdir -p $out
|
||||
|
||||
cp -rs ${pkgs.raspberrypifw}/share/raspberrypi/boot/* $out/
|
||||
rm -f $out/kernel8.img $out/initrd.img
|
||||
ln -s ${config.system.build.kernel}/Image $out/kernel8.img
|
||||
ln -s ${config.system.build.initialRamdisk}/initrd $out/initrd.img
|
||||
ln -sf ${config.system.build.kernel}/Image $out/kernel8.img
|
||||
ln -sf ${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
|
||||
kernel=kernel8.img
|
||||
initramfs initrd.img followkernel
|
||||
arm_64bit=1
|
||||
${toString config.boot.loader.raspberryPi.firmwareConfig}
|
||||
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