aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2015-01-26 15:39:01 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2015-01-26 15:39:01 +0200
commita99e2526a63f6fd2f19ecfb79ffae8f9cf861145 (patch)
tree9aec2be5685908e124149db24341fbd1ba0acec6
parent63a3fbcfde479d18bcce3ccccbbab54fd1252591 (diff)
downloadalpine-conf-a99e2526a63f6fd2f19ecfb79ffae8f9cf861145.tar.bz2
alpine-conf-a99e2526a63f6fd2f19ecfb79ffae8f9cf861145.tar.xz
update-kernel: support for arm architecture
-rw-r--r--update-kernel.in22
1 files changed, 19 insertions, 3 deletions
diff --git a/update-kernel.in b/update-kernel.in
index 8086f5c..34b45dd 100644
--- a/update-kernel.in
+++ b/update-kernel.in
@@ -152,6 +152,9 @@ if [ -z "$FLAVOR" ]; then
[ "$FLAVOR" ] || FLAVOR=vanilla
fi
+[ "$ARCH" ] || ARCH=$(apk --print-arch)
+ARM=$(echo "$ARCH" | grep ^arm || :)
+
TMPDIR=$(mktemp -d /tmp/$SCRIPT.XXXXXX)
ROOT=$TMPDIR/root
BOOT=$ROOT/boot
@@ -176,7 +179,7 @@ _apk() {
wrapper="fakeroot $opt -s $fake_env --"
fi
- $wrapper apk $cmd $QUIET_OPT -p $ROOT ${ARCH:+--arch "$ARCH"} \
+ $wrapper apk $cmd $QUIET_OPT -p $ROOT --arch "$ARCH" \
--keys-dir /etc/apk/keys \
--repositories-file /etc/apk/repositories $*
}
@@ -193,7 +196,7 @@ _apk add --initdb --update-cache
if [ "$BUILDDIR" ]; then
mkdir -p $BOOT
- make -C "$BUILDDIR" firmware_install install modules_install \
+ make -C "$BUILDDIR" ${ARM:+z}install firmware_install modules_install \
INSTALL_MOD_PATH=$ROOT INSTALL_PATH=$BOOT
else
if [ -z "$PACKAGES" ]; then
@@ -214,8 +217,9 @@ depmod -b $ROOT "$KVER"
STAGING=$TMPDIR/boot
MODLOOP=$TMPDIR/modloop
MODIMG=modloop-$FLAVOR
+DTB_STAGING=$TMPDIR/dtbs
-mkdir $MODLOOP $STAGING
+mkdir $DTB_STAGING $MODLOOP $STAGING
cp -a $ROOT/lib/modules $MODLOOP
cp -a $ROOT/lib/firmware $MODLOOP/modules
_exec mksquashfs $MODLOOP "$STAGING/$MODIMG" -comp xz
@@ -227,6 +231,12 @@ for file in System.map config vmlinuz; do
cp "$BOOT/$file$KVER_FLAVOR" $STAGING
done
+if [ "$ARM" ]; then
+ DTBDIR=$ROOT/usr/lib/linux-$KVER
+ [ "$BUILDDIR" ] && DTBDIR=$BUILDDIR/source/arch/arm/boot/dts
+ cp "$DTBDIR"/*.dtb $DTB_STAGING
+fi
+
if [ "$MNTDIR" ]; then
ignore_sigs
@@ -236,6 +246,12 @@ fi
mv $STAGING/* "$DESTDIR"
+if [ "$ARM" ]; then
+ DTBDIR=$DESTDIR/dtbs
+ mkdir -p "$DTBDIR"
+ mv $DTB_STAGING/* "$DTBDIR"
+fi
+
if [ "$MNTDIR" ]; then
set +e
sync