mkinitfs: Introduce deviceinfo_append_dtb variable (!387)

We don't need to append the dtb to the kernel image in all cases, with
e.g. the u-boot bootloader we can load the dtb seperately from the
kernel image. Introduce a new variable deviceinfo_append_dtb, if set to
"true", append the dtb, otherwise just copy the dtb file to the boot
partition.

Fixes #260

[ci:ignore-count]
This commit is contained in:
Luca Weiss 2019-05-27 17:28:40 +02:00 committed by Oliver Smith
parent e25a233534
commit 693079abb5
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
24 changed files with 52 additions and 40 deletions

View file

@ -2,7 +2,7 @@
pkgname="device-google-crosshatch"
pkgdesc="Google Pixel 3 XL"
pkgver=0.1
pkgrel=2
pkgrel=3
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@ -35,4 +35,4 @@ kernel_mainline() {
mkdir "$subpkgdir"
}
sha512sums="67bfa71f40a1fc761a7fc18d208d05d6da23f9cc7ff0b05c23cc9cb1dbc2be68a6cb77fedfc39938eaf2c41f8cbe9095c7f38ff587d9828d80a4c958d27dfd9a deviceinfo"
sha512sums="0d275efe4d79d2a9fecbfa1d4ebe7da3647bdca607c7b20171082a4c832df9c76112749ada36895c13902acbea2ddeacf95279755a1d072998a387c898499e5b deviceinfo"

View file

@ -7,6 +7,7 @@ deviceinfo_manufacturer="Google"
deviceinfo_codename="google-crosshatch"
deviceinfo_date=""
deviceinfo_dtb="qcom/sdm845-crosshatch"
deviceinfo_append_dtb="true"
deviceinfo_modules_initfs=""
deviceinfo_arch="aarch64"

View file

@ -1,6 +1,6 @@
pkgname=device-lg-hammerhead
pkgver=2
pkgrel=2
pkgrel=3
pkgdesc="Google Nexus 5"
url="https://postmarketos.org"
arch="armv7"
@ -49,7 +49,7 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
sha512sums="9478a9a6781a9b7671e5594c4bde394347427aacdd0fc11d222f645b6222d6714d1147775ec967d932e0fe81936dc075f2591870b8ec5c27755bff2557fd5327 deviceinfo
sha512sums="f7c4f35d9a518ad3c6dd328a5b35999ca6fa81f22df8debe7e7f4b07ae50b32160b7d74046f9c159d4530abfb7eb783087d24f0f34074e82b874548cb4882f1d deviceinfo
4c22070223f39c419260a6817e5cc2b7881c095deeba031363a5634842dd175dd67eecace980849f0553de79110ef4e43a66143d71433805cd916c37fe7248e9 weston.ini
f86ef35730b89bcc8160c08db7a7fcd0970adf60c0b77af68bac397de49c0d1783e6b8db1762380c9bf874aff2d030c6f44ecb75c803d69e79ede11376409369 xorg.conf
d8ce60ea7acaabf627ddca2f0887a4cda46f313b7aaf7934bef2fef8a6e0798ccefab849e4571e4e3fcd06ae34c1a6efe3b58b401e2e443416f6200e6d4ea769 modules-load.conf

View file

@ -9,6 +9,7 @@ deviceinfo_date=""
deviceinfo_keyboard="false"
deviceinfo_nonfree="????"
deviceinfo_dtb="qcom-msm8974-lge-nexus5-hammerhead"
deviceinfo_append_dtb="true"
deviceinfo_modules_initfs=""
deviceinfo_external_storage="false"
deviceinfo_flash_method="fastboot"

View file

@ -1,6 +1,6 @@
pkgname=device-nokia-n900
pkgver=4
pkgrel=4
pkgrel=5
pkgdesc="Nokia N900"
url="https://postmarketos.org"
arch="armv7"
@ -122,7 +122,7 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
sha512sums="69a3727fcae2dbe405cf372f9ea27beb01d64b6e8a8797ae59f40b18a172cebdc95b37558cc73626d4ae53e2d773ca3df7ff35a849c72ac577075f0e36e33f68 deviceinfo
sha512sums="8c5dc7bb9c3d5c8b1128689493789200f4e3eb434ef9827eca3be306109f5853ebde8bd6730ae55c6075613ec430c2fc10f3f3f565a02b5058fc00882ebc2502 deviceinfo
8f5b68b86f5345698114a2d70fd174699e5729f6c157659e4e57bef1dcab8c1209c13b30df6f5c2e8f31fee077039ffbc7817ca201f0745467b693e7550eaf6b uboot-script.cmd
3d55e34b95791636e44a5f41754f3d0de039dbba41f7a556d43a95c9e64afcfa930046b4b96b40020b6f196096ffba93514682927e32fa4488686fdd19c6da5a backlight-enable.sh
c6012aef28b096141b924fced226ec99fb93eb53b69c064a8887d8fecdf8dc08a3ba3db399e18d88374c6ef4c59013a30699c7e4d76e5cb771040582573a0527 90-touchscreen-dev.rules

View file

@ -10,6 +10,7 @@ deviceinfo_keyboard="true"
deviceinfo_keymaps="us/rx51_us ch/rx51_ch-de it/rx51_it"
deviceinfo_nonfree="????"
deviceinfo_dtb="omap3-n900"
deviceinfo_append_dtb="true"
deviceinfo_modules_initfs="tsc2005 tsc200x-core omap_wdt twl4030_wdt omap-sham"
deviceinfo_external_storage="true"
deviceinfo_flash_method="0xffff"

View file

@ -2,7 +2,7 @@
pkgname=device-ouya-ouya
pkgver=1
pkgdesc="Ouya"
pkgrel=9
pkgrel=10
url="https://postmarketos.org"
arch="armv7"
license="MIT"
@ -66,7 +66,7 @@ kernel_mainline() {
mkdir "$subpkgdir"
}
sha512sums="846d2c0d769deeff31891dcf61498c553781c04d0cd5377f76d3ebf788ec5526740138656f1875e7c571e22a747c256d519930ecea8dbf7e186aeabb1773a90b deviceinfo
sha512sums="cdfcbab0c1bd5389c29302052606c416ada3d69fe9d231032ba758eec4ec04b63c9cf9441ce33849f614fc9583f799299e20f794ba2b7f4218347f7daa06b193 deviceinfo
bf442fac4dc0594e055ed7a7d8232b5c884e2e77543273e8c4f32b5fe3c199561c86d8a5f665e17406057ca7863fabb93e789fe5e168fcd89d2982e0046232ad fb.modes
d01ac1f451275b1a269aab3c8f7fe20b482c952d00c4457ea496b45780c052f8ef98a5ba22a4af009ca128858374c1d3fb97e458102b09f7c40f3d7a718326c1 initfs-hook.sh
b0737a8fb7a60b2d24e4e124dbeb7044832a683a78887454d13d4078039338fb04579ce9066140733222409e7f53255bfde2c6725bd3848752a27e112717c28c networkmanager.conf"

View file

@ -8,7 +8,8 @@ deviceinfo_codename="ouya-ouya"
deviceinfo_date=""
deviceinfo_keyboard="false"
deviceinfo_nonfree="????"
deviceinfo_dtb="tegra30-ouya"
deviceinfo_dtb_mainline="tegra30-ouya"
deviceinfo_append_dtb_mainline="true"
deviceinfo_modules=""
deviceinfo_modules_initfs=""
deviceinfo_external_storage="false"

View file

@ -2,7 +2,7 @@
pkgname="device-pine-a64lts"
pkgdesc="PINE A64-LTS"
pkgver=0.2
pkgrel=2
pkgrel=3
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@ -33,4 +33,4 @@ nonfree_firmware() {
}
sha512sums="b550ace9ce15ad574d011d1e966bd040a93a8bf26980b61928059d6328f1b4b7ef7d12e90e6ac78c7b6e4b99c4924b0d49f3b5813f9275c3982ff9df2be7ffef deviceinfo
ef7d21144b8c33f80968a6a089dcc6b568abd54f66f30d21d5befc10e51217484440aa8edb1065cd871ffba7bc599f44502bb6d240ee01f59dc92706ec6eabfd uboot-script.cmd"
222d0bdf3c363c173363e4c86f2681648e13c257e177de2df79cdc02ec4de327ce3919d2905b58d1c868c2fc9c95c60d67656da2a0a2a5d6c5c16cb2b3e7cc19 uboot-script.cmd"

View file

@ -9,7 +9,7 @@ echo Loading Initramfs
load mmc ${mmc_bootdev}:1 ${ramdisk_addr_r} uInitrd-postmarketos-allwinner
echo Loading Kernel
load mmc ${mmc_bootdev}:1 ${kernel_addr_r} vmlinuz-postmarketos-allwinner-dtb
load mmc ${mmc_bootdev}:1 ${kernel_addr_r} vmlinuz-postmarketos-allwinner
echo Resizing FDT
fdt addr ${fdt_addr_r}

View file

@ -2,7 +2,7 @@
pkgname="device-pine-dontbeevil"
pkgdesc="PINE64 PinePhone Don't be evil devkit"
pkgver=0.1
pkgrel=5
pkgrel=6
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@ -54,7 +54,7 @@ nonfree_firmware() {
}
sha512sums="3e903f578a5112ec171e09e13e331345f0bd8fee935d6658a48cd2d369085c909106329fc103678961189486956aed97da9ff0b3be59f587f773f57d51f2d1bd deviceinfo
8ed26c0537860431a3ca279a8db37dafda2b0e678caf1dcd1c9782a5a3c49e0ac0c8ac6126c30cbb3f04c16bdae8e9a70c18e613f6bccdf257a5dededce36f4e uboot-script.cmd
2aabfeff137e6ecbbb2cf9353d6ae69a0c4fe3f75064164c5e9edde750b035b9d7ab9c10000bb93d1a71cc9b357d469c86d7b9b3ffa0466da8ee229ac59e6c56 uboot-script.cmd
c4c57d1627dd451213e1ef20d89de9266cd4edcc2d33a69aa9a1f13e16d9f9742036b69dc149fd910d7213f7525c41eb79576d4457bc85cc96eba0d986382d27 weston.ini
f86ef35730b89bcc8160c08db7a7fcd0970adf60c0b77af68bac397de49c0d1783e6b8db1762380c9bf874aff2d030c6f44ecb75c803d69e79ede11376409369 xorg.conf
aa11864b9960e94e13b1467e09d8eb528e3d3652bf1fb251c7a040f4d44270403072db8aa906405d4c81fa9d6043fafa8d9ccd1f97031fd96d0dcacc38da8f84 start_weston.sh"

View file

@ -9,7 +9,7 @@ echo Loading Initramfs
load mmc ${mmc_bootdev}:1 ${ramdisk_addr_r} uInitrd-postmarketos-allwinner
echo Loading Kernel
load mmc ${mmc_bootdev}:1 ${kernel_addr_r} vmlinuz-postmarketos-allwinner-dtb
load mmc ${mmc_bootdev}:1 ${kernel_addr_r} vmlinuz-postmarketos-allwinner
echo Resizing FDT
fdt addr ${fdt_addr_r}

View file

@ -2,7 +2,7 @@
pkgname="device-purism-librem5dev"
pkgdesc="Purism Librem 5 Devkit"
pkgver=0.7
pkgrel=1
pkgrel=2
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@ -39,7 +39,7 @@ package() {
devicepkg_package $startdir $pkgname
}
sha512sums="3de1ebd3ff8fe098d94a9f5d493e2aa498e811cd9279b18f4f7dd0751dde607fe6d2265e7c021d7c4150a0b35e6ab5025f362109c713d376bd42b89526cf6b75 deviceinfo
sha512sums="d2c5ab7b094092f4e3280bb27b8a03b339cd882a41951e9ea968d4206decbc3cc87c3af62003839ff20097b3ef48156b25d7f37cabce24d16ac4d1c8ce073deb deviceinfo
e52cbb518677070d5933d0d1415916b9a570d80f270edab4f14bd193716fd064b389ff1fed5db7efd9966ea953569a7922c5bee6f15405eaa93838e1c01ae2aa uboot-script.cmd
d10531ad6646ad6cfaf8ee1b0cc38f4e5e2eb39599251b75f25e954f1105761d5480d92cbe06ad52560207b883439071db89b19babf046a810360bd07c52c655 modprobe.d_rsi.conf
5fdf45859f2bb154bcfe7c7341de4d5b239ef43d3f865e30456af073a8ee9d6682515c7e1dd52ddbe3969669d60689ba93c08ead32aadcfb164ff72a02b2e1a4 00-mesa.sh

View file

@ -7,6 +7,7 @@ deviceinfo_manufacturer="Purism"
deviceinfo_codename="purism-librem5dev"
deviceinfo_date=""
deviceinfo_dtb="freescale/librem5-evk"
deviceinfo_append_dtb="true"
deviceinfo_modules_initfs=""
deviceinfo_arch="aarch64"

View file

@ -1,6 +1,6 @@
pkgname=device-qemu-vexpress
pkgver=1
pkgrel=21
pkgrel=22
pkgdesc="Simulated device in qemu with vexpress soc"
url="https://postmarketos.org"
arch="armv7"
@ -17,4 +17,4 @@ package() {
"$pkgdir"/etc/deviceinfo
}
sha512sums="7a190c67ae5e8a2e59140f8ec481d670620cc67ada65b93cc6d8db4aba66f03e889f5421fc7a5011a7f55f7728c55ad0a889e50a3fc8d77176adba259e2b8d4f deviceinfo"
sha512sums="57a8e79fc16dfd788a2c872b5016e406793c92362118de2f97f9f6d0cb231abf10af88a0c641da55e1c77150d38e6a2896863a8e0e11cba5b24e7ba0e98e7638 deviceinfo"

View file

@ -9,6 +9,7 @@ deviceinfo_date=""
deviceinfo_keyboard="true"
deviceinfo_nonfree="????"
deviceinfo_dtb="vexpress-v2p-ca9"
deviceinfo_append_dtb="true"
deviceinfo_modules_initfs="amba-clcd virtio_net virtio_mmio ambakmi libps2 pcips2 qxl drm_bochs"
deviceinfo_external_storage="true"
deviceinfo_flash_method="none"

View file

@ -2,7 +2,7 @@
pkgname="device-samsung-klte"
pkgdesc="Samsung Galaxy S5"
pkgver=0.2
pkgrel=6
pkgrel=7
url="https://postmarketos.org"
license="MIT"
arch="armv7"
@ -42,4 +42,4 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
sha512sums="186911ec5eb189826aa515e467d95270adbb1ae0eef36133a1ec3928ddab38a1cbd1bbbeaf2965bc02f5b1d1b603e360229c54fd9118b40558ab9e8066a72448 deviceinfo"
sha512sums="29e7e50db504e75c5179c2b6e8290eda42fba57bb11fa8fc586edb29d6eaa0749554f65012b48b81c73b89c2ba47dc5ffaa8bb74ddafda19fb6353086a48908e deviceinfo"

View file

@ -6,7 +6,8 @@ deviceinfo_name="Samsung Galaxy S5"
deviceinfo_manufacturer="Samsung"
deviceinfo_codename="samsung-klte"
deviceinfo_date=""
deviceinfo_dtb="qcom-msm8974-samsung-klte"
deviceinfo_dtb_mainline="qcom-msm8974-samsung-klte"
deviceinfo_append_dtb_mainline="true"
deviceinfo_modules_initfs=""
deviceinfo_arch="armv7"

View file

@ -2,7 +2,7 @@
pkgname="device-samsung-p4wifi"
pkgdesc="Galaxy Tab 10.1"
pkgver=0.3
pkgrel=2
pkgrel=3
url="https://postmarketos.org"
license="MIT"
arch="armv7"
@ -61,7 +61,7 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
sha512sums="d947169213d8731316699f8cfa3e03007009d5d3611f1ada84004e8d7e739b8a44e507f75543d710697cb46a444ebc1060852b50058ad992e80795e8234304f6 deviceinfo
sha512sums="16d960e5d52ac1dfec37454f35be4b8713d68b31cc50fa728f0363c552b8514d1db09af2cb6bf1cf803d9237bf9b8fb50b9efe40dcdf51f6f3652ac387cdaf08 deviceinfo
e457d1095b4c5da105d83a3951ca8d4c5074384a1280dcc95f8a8c24aff64c32a807968ad449d335fbafba528050436c283036869fc979aced6e613892e46fca modules-load.conf
56b865bab0714aed53bd6535ebefd2f3629ec78786e8f87dcae4637cfacb5912d28dc39d1fe0287d34bb36b4a8371481f54647e1b25190afbcd23ed30fe7edac modprobe.conf
9c5c332e26b7eedb6eaa1631d133a9e430ee9322f62c80d4709b4d11b73566ae85b818e510bf1762bc8a1cc8cb617e400ddcf2583db11106b272ae65faf355cb 90-device-samsung-p4wifi-audio.rules

View file

@ -7,6 +7,7 @@ deviceinfo_manufacturer="Samsung"
deviceinfo_codename="samsung-p4wifi"
deviceinfo_date=""
deviceinfo_dtb="tegra20-p4wifi"
deviceinfo_append_dtb="true"
deviceinfo_modules_initfs=""
deviceinfo_arch="armv7"

View file

@ -1,6 +1,6 @@
pkgname=device-sony-amami
pkgver=3
pkgrel=1
pkgrel=2
pkgdesc="Sony Xperia Z1 Compact"
url="https://postmarketos.org"
arch="armv7"
@ -43,6 +43,6 @@ nonfree_firmware() {
mkdir "$subpkgdir"
}
sha512sums="44b411fcb17f4bf08f917e5a06895818843bc6b7eceb5ca5945b6a865fcb857925dc355029438d5e9ad0a797b437dbfce2a5218426700a7e11412fe1711ae49f deviceinfo
sha512sums="fc54b143f592c55f79862e9f8630e4afa9457522c74c030fb3615165d8f129974c70a5b04cad63bbea8b14c34840169a8d495a5e661b2b5008d5f2f36117dc08 deviceinfo
8b6034c0338ab4c7d648f47983aad6da07e427e7dba47baabf85a1b3ddeeda47c8d7fbcd547a302c9a759b2943ee30d3e82c3b368d8582833a058e4671638a9e 90-android-touch-dev.rules
4dc5b6a2d9de6b97e4033b14771b8a6afe922afcd0bc4c97481cfad775726109dd0570058b94b2cd805691343076e7d4d886218787ba883cc31dd1e6e3abb0af fb.modes"

View file

@ -8,7 +8,8 @@ deviceinfo_codename="sony-amami"
deviceinfo_date=""
deviceinfo_keyboard="false"
deviceinfo_nonfree="????"
deviceinfo_dtb="qcom-msm8974-sony-xperia-amami"
deviceinfo_dtb_mainline="qcom-msm8974-sony-xperia-amami"
deviceinfo_append_dtb_mainline="true"
deviceinfo_modules_initfs=""
deviceinfo_external_storage="true"
deviceinfo_flash_method="fastboot"

View file

@ -1,5 +1,5 @@
pkgname=postmarketos-mkinitfs
pkgver=0.7.8
pkgver=0.7.9
pkgrel=0
pkgdesc="Tool to generate initramfs images for postmarketOS"
url="https://postmarketos.org"
@ -26,4 +26,4 @@ package() {
sha512sums="2479b08e48450f7d46c83b1117d0d81edf26dad8f2107e2ae1b10689f1b063c38181be735957ec1a16392302815355ca879ab71fc28d084e075f490cb2ac42b5 init.sh.in
d458c47bb7734562f299a2f1bcf5f2bc3be8f4721d51716aadefa9addf553a5fd9582f9b2d452fbc1016bf4bcdde8a1d9fe4cd0475af030002ac660cfb86da89 init_functions.sh
2de44d5109be98aa2476640cb298b5dcb8366b8104af188768634ea3a0eeea9b7cc71e94f2f1ce09cd3b8200b7d4515719905ecf1301fcce94ded34f36e849e1 mkinitfs.sh"
6e0e6a08d17c5b6f22d049d51692819ebb9a86d4ef7307e384077a868ace61aaa0a59b9166cb8494142ddf150cd1d204f13889b3afd5108b2a4a95a8ecda9444 mkinitfs.sh"

View file

@ -228,7 +228,7 @@ create_uboot_files()
echo "==> kernel: creating uImage"
kernelfile="${outfile/initramfs-/vmlinuz-}"
if [ -n "${deviceinfo_dtb}" ]; then
if [ "${deviceinfo_append_dtb}" == "true" ]; then
kernelfile="${kernelfile}-dtb"
fi
mkimage -A $arch -O linux -T kernel -C none -a 80008000 -e 80008000 \
@ -252,7 +252,7 @@ create_bootimg()
fi
kernelfile="${outfile/initramfs-/vmlinuz-}"
if [ -n "${deviceinfo_dtb}" ]; then
if [ "${deviceinfo_append_dtb}" == "true" ]; then
kernelfile="${kernelfile}-dtb"
fi
_dt=""
@ -356,20 +356,23 @@ generate_splash_screens()
done
}
# Append the correct device tree to the linux image file
append_device_tree()
# Append the correct device tree to the linux image file or copy the dtb to the boot partition
append_or_copy_dtb()
{
[ -n "${deviceinfo_dtb}" ] || return
dtb="/usr/share/dtb/${deviceinfo_dtb}.dtb"
kernel="${outfile/initramfs-/vmlinuz-}"
echo "==> kernel: appending device-tree ${deviceinfo_dtb}"
if [ -e "$dtb" ]; then
echo "==> kernel: device-tree blob operations"
if ! [ -e "$dtb" ]; then
echo "ERROR: File not found: $dtb"
exit 1
fi
if [ "${deviceinfo_append_dtb}" == "true" ]; then
echo "==> kernel: appending device-tree ${deviceinfo_dtb}"
cat "$kernel" "$dtb" > "${kernel}-dtb"
cp "$dtb" "${outfile/initramfs-/dtb-}.dtb"
else
echo "NOTE: device tree does not exist, not appending it to the kernel."
echo "This is expected for downstream kernels."
cp "$kernel" "${kernel}-dtb"
echo "==> kernel: copying dtb ${deviceinfo_dtb} to boot partition"
cp "$dtb" "${outfile/initramfs-/dtb-}.dtb"
fi
}
@ -435,7 +438,7 @@ install -Dm755 "/usr/share/postmarketos-mkinitfs/init_functions.sh" \
generate_splash_screens
replace_init_variables
create_cpio_image "$tmpdir" "$outfile"
append_device_tree
append_or_copy_dtb
create_uboot_files
create_bootimg