{ config, pkgs, lib, ... }: let uboot = pkgs.uBootPinebookPro; in { imports = [ ./nixos/sd-image-aarch64.nix ]; nixpkgs.overlays = [ (import ./overlay.nix) ]; boot.kernelPackages = pkgs.linuxPackages_pinebookpro; # This list of modules is not entirely minified, but represents # a set of modules that is required for the display to work in stage-1. # Further minification can be done, but requires trial-and-error mainly. boot.initrd.kernelModules = [ # Rockchip modules "rockchip_rga" "rockchip_saradc" "rockchip_thermal" "rockchipdrm" # GPU/Display modules "analogix_dp" "cec" "drm" "drm_kms_helper" "dw_hdmi" "dw_mipi_dsi" "gpu_sched" "panel_simple" "panfrost" "pwm_bl" # USB / Type-C related modules "fusb302" "tcpm" "typec" # Misc. modules "cw2015_battery" "gpio_charger" "rtc_rk808" ]; sdImage = { manipulateImageCommands = '' (PS4=" $ "; set -x dd if=${uboot}/idbloader.img of=$img bs=512 seek=64 conv=notrunc dd if=${uboot}/u-boot.itb of=$img bs=512 seek=16384 conv=notrunc ) ''; compressImage = lib.mkForce false; }; }