1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-11-24 12:42:47 +03:00
mobile-nixos/systems/bootimg.nix
2019-06-09 22:16:43 -04:00

53 lines
1.3 KiB
Nix

{ device_config
, initrd
, pkgs
}:
let
inherit (pkgs) buildPackages;
inherit (device_info) kernel dtb;
device_name = device_config.name;
device_info = device_config.info;
with_qcdt = device_info ? bootimg_qcdt && device_info.bootimg_qcdt;
kernel_file = if device_info ? kernel_file then device_info.kernel_file else "${kernel}/${kernel.file}";
# TODO : Allow appending / prepending
cmdline = device_info.kernel_cmdline;
in
pkgs.stdenv.mkDerivation {
name = "nixos-mobile_${device_name}_boot.img";
src = builtins.filterSource (path: type: false) ./.;
unpackPhase = "true";
nativeBuildInputs = [
buildPackages.mkbootimg
buildPackages.dtbTool
];
installPhase = ''
echo Using kernel: ${kernel_file}
(
PS4=" $ "
set -x
mkbootimg \
--kernel ${kernel_file} \
${
if with_qcdt then
"--dt ${dtb}"
else
""
} \
--ramdisk ${initrd} \
--cmdline "${cmdline}" \
--base ${device_info.flash_offset_base } \
--kernel_offset ${device_info.flash_offset_kernel } \
--second_offset ${device_info.flash_offset_second } \
--ramdisk_offset ${device_info.flash_offset_ramdisk} \
--tags_offset ${device_info.flash_offset_tags } \
--pagesize ${device_info.flash_pagesize } \
-o $out
)
'';
}