1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-01 11:43:55 +03:00

Reads device informations / configuration from json file.

This allows many more devices to be implicitly working, once
their kernel and device-specific quirks have been ported over.
This commit is contained in:
Samuel Dionne-Riel 2018-06-10 17:18:28 +00:00
parent d6f632d427
commit 7ec11f4bdf
2 changed files with 15 additions and 20 deletions

View File

@ -10,7 +10,7 @@ WIP notes
---------
```
nix-build bootimg.nix
nix-build bootimg.nix --arg device_name '"asus-z00t"'
# Maybe `nix copy ./result --to ssh://another-host`
adb wait-for-device && adb reboot bootloader
fastboot boot result # or full path

View File

@ -1,24 +1,19 @@
{
device_name ? "asus-z00t"
device_name
}:
with (import ./overlay);
let
# TODO : import this from device description
deviceinfo = (lib.importJSON ./devices/postmarketOS-devices.json).${device_name};
linux = pkgs."linux_${device_name}";
kernel = "${linux}/Image.gz-dtb";
dt = "${linux}/boot/dt.img";
cmdline = "androidboot.hardware=qcom ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1 androidboot.selinux=permissive";
ramdisk = callPackage ./rootfs.nix { inherit device_name; };
base = "0x10000000";
kernel_offset = "0x00008000";
second_offset = "0x00f00000";
ramdisk_offset = "0x02000000";
tags_offset = "0x00000100";
pagesize = "2048";
# TODO : Allow appending / prepending
cmdline = deviceinfo.kernel_cmdline;
# TODO : make configurable?
initrd = callPackage ./rootfs.nix { inherit device_name; };
in
stdenv.mkDerivation {
name = "nixos-mobile_${device_name}_boot.img";
@ -36,14 +31,14 @@ stdenv.mkDerivation {
mkbootimg \
--kernel ${kernel} \
--dt ${dt} \
--ramdisk ${ramdisk} \
--cmdline "${cmdline}" \
--base ${base } \
--kernel_offset ${kernel_offset } \
--second_offset ${second_offset } \
--ramdisk_offset ${ramdisk_offset} \
--tags_offset ${tags_offset } \
--pagesize ${pagesize } \
--ramdisk ${initrd} \
--cmdline "${cmdline}" \
--base ${deviceinfo.flash_offset_base } \
--kernel_offset ${deviceinfo.flash_offset_kernel } \
--second_offset ${deviceinfo.flash_offset_second } \
--ramdisk_offset ${deviceinfo.flash_offset_ramdisk} \
--tags_offset ${deviceinfo.flash_offset_tags } \
--pagesize ${deviceinfo.flash_pagesize } \
-o $out
'';
}