From 43a87e5c5cac36b85e214b6a4f861b74d432ac1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20Sz=C3=B6ll=C5=91si?= Date: Sun, 15 Oct 2017 01:17:49 +0200 Subject: [PATCH] Add kernel updater script (#625) --- main/postmarketos-update-kernel/APKBUILD | 15 +++++++ .../update-kernel.sh | 41 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 main/postmarketos-update-kernel/APKBUILD create mode 100755 main/postmarketos-update-kernel/update-kernel.sh diff --git a/main/postmarketos-update-kernel/APKBUILD b/main/postmarketos-update-kernel/APKBUILD new file mode 100644 index 000000000..332240da8 --- /dev/null +++ b/main/postmarketos-update-kernel/APKBUILD @@ -0,0 +1,15 @@ +pkgname=postmarketos-update-kernel +pkgver=0.0.1 +pkgrel=0 +pkgdesc="kernel updater script for postmarketOS" +url="https://github.com/postmarketOS" +depends="util-linux" +source="update-kernel.sh" +arch="noarch" +license="GPL3" + +package() { + install -Dm755 "$srcdir/update-kernel.sh" \ + "$pkgdir/sbin/pmos-update-kernel" +} +sha512sums="7d2f3031b1a468accff5a3584bd51d3607141b01e1d2a93d611852476bdeecc3edd7b80f8e3b034012d9b5f09de907af1de02f48586d82d06ee4b5746d4fd286 update-kernel.sh" diff --git a/main/postmarketos-update-kernel/update-kernel.sh b/main/postmarketos-update-kernel/update-kernel.sh new file mode 100755 index 000000000..e45693c97 --- /dev/null +++ b/main/postmarketos-update-kernel/update-kernel.sh @@ -0,0 +1,41 @@ +#!/bin/ash +# shellcheck shell=dash +set -e + +case $1 in + --help|-h|'') + echo "Usage: pmos-update-kernel [flavor]" + exit 1 + ;; +esac + +# shellcheck disable=SC1091 +. /etc/deviceinfo + +FLAVOR=$1 +METHOD=${deviceinfo_flash_methods:?} +case $METHOD in + fastboot|heimdall-bootimg) + BOOT_PARTITION=$(findfs PARTLABEL="boot") + echo "Flashing boot.img..." + dd if=/boot/boot.img-"$FLAVOR" of="$BOOT_PARTITION" bs=1M + ;; + heimdall-isorec) + KERNEL_PARTITION=$(findfs PARTLABEL="${deviceinfo_flash_heimdall_partition_kernel:?}") + INITFS_PARTITION=$(findfs PARTLABEL="${deviceinfo_flash_heimdall_partition_initfs:?}") + echo "Flashing kernel..." + dd if=/boot/vmlinuz-"$FLAVOR" of="$KERNEL_PARTITION" bs=1M + echo "Flashing initramfs..." + gunzip -c /boot/initramfs-"$FLAVOR" | lzop | dd of="$INITFS_PARTITION" bs=1M + ;; + 0xFFFF) + echo -n "No need to use this utility, since uboot loads the kernel directly from" + echo " the boot partition. Your kernel should be updated already." + exit 1 + ;; + *) + echo "Devices with flash method: $METHOD are not supported." + exit 1 + ;; +esac +echo "Done."