Skip to content

Commit c2ed09f

Browse files
committed
Make create_base_image_main.sh working on arm64
1 parent 7445769 commit c2ed09f

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

tools/baseimage/pkg/gce/scripts/create_base_image_main.sh

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,17 @@
1616

1717
set -o errexit -o nounset -o pipefail
1818

19+
arch=$(uname -m)
20+
[ "${arch}" = "x86_64" ] && arch=amd64
21+
[ "${arch}" = "aarch64" ] && arch=arm64
22+
1923
sudo apt-get update
2024
sudo apt-get upgrade -y
2125

2226
# Avoids blocking "Default mirror not found" popup prompt when pbuilder is installed.
2327
echo "pbuilder pbuilder/mirrorsite string https://deb.debian.org/debian" | sudo debconf-set-selections
2428

25-
kmodver_begin=$(sudo chroot /mnt/image/ /usr/bin/dpkg -s linux-image-cloud-amd64 | grep ^Depends: | \
29+
kmodver_begin=$(sudo chroot /mnt/image/ /usr/bin/dpkg -s linux-image-cloud-${arch} | grep ^Depends: | \
2630
cut -d: -f2 | cut -d" " -f2 | sed 's/linux-image-//')
2731
echo "IMAGE STARTS WITH KERNEL: ${kmodver_begin}"
2832

@@ -43,14 +47,23 @@ sudo chroot /mnt/image /usr/bin/apt purge -y unattended-upgrades
4347
# JDK it's not required to launch a CF device. It's required to run
4448
# some of Tradefed tests that are run from the CF host side like
4549
# some CF gfx tests, adb tests, etc.
46-
sudo chroot /mnt/image /usr/bin/wget -P /usr/java https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz
47-
# https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz.sha256
48-
export JDK21_SHA256SUM=a2def047a73941e01a73739f92755f86b895811afb1f91243db214cff5bdac3f
49-
if ! echo "$JDK21_SHA256SUM /usr/java/openjdk-21.0.2_linux-x64_bin.tar.gz" | sudo chroot /mnt/image /usr/bin/sha256sum -c ; then
50+
if [[ "${arch}" == "amd64" ]]; then
51+
JDK_ARCH=x64
52+
# https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz.sha256
53+
export JDK21_SHA256SUM=a2def047a73941e01a73739f92755f86b895811afb1f91243db214cff5bdac3f
54+
elif [[ "${arch}" == "arm64" ]]; then
55+
JDK_ARCH=aarch64
56+
# https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-aarch64_bin.tar.gz.sha256
57+
export JDK21_SHA256SUM=08db1392a48d4eb5ea5315cf8f18b89dbaf36cda663ba882cf03c704c9257ec2
58+
else
59+
echo "** ERROR: UNEXEPCTED ARCH **"; exit 1;
60+
fi
61+
sudo chroot /mnt/image /usr/bin/wget -P /usr/java "https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-${JDK_ARCH}_bin.tar.gz"
62+
if ! echo "$JDK21_SHA256SUM /usr/java/openjdk-21.0.2_linux-${JDK_ARCH}_bin.tar.gz" | sudo chroot /mnt/image /usr/bin/sha256sum -c ; then
5063
echo "** ERROR: KEY MISMATCH **"; popd >/dev/null; exit 1;
5164
fi
52-
sudo chroot /mnt/image /usr/bin/tar xvzf /usr/java/openjdk-21.0.2_linux-x64_bin.tar.gz -C /usr/java
53-
sudo chroot /mnt/image /usr/bin/rm /usr/java/openjdk-21.0.2_linux-x64_bin.tar.gz
65+
sudo chroot /mnt/image /usr/bin/tar xvzf "/usr/java/openjdk-21.0.2_linux-${JDK_ARCH}_bin.tar.gz" -C /usr/java
66+
sudo chroot /mnt/image /usr/bin/rm "/usr/java/openjdk-21.0.2_linux-${JDK_ARCH}_bin.tar.gz"
5467
ENV_JAVA_HOME='/usr/java/jdk-21.0.2'
5568
echo "JAVA_HOME=$ENV_JAVA_HOME" | sudo chroot /mnt/image /usr/bin/tee -a /etc/environment >/dev/null
5669
echo "JAVA_HOME=$ENV_JAVA_HOME" | sudo chroot /mnt/image /usr/bin/tee -a /etc/profile >/dev/null
@@ -91,7 +104,7 @@ sudo tee /mnt/image/etc/sysctl.d/80-nsjail.conf >/dev/null <<EOF
91104
kernel.unprivileged_userns_clone=1
92105
EOF
93106

94-
kmodver_end=$(sudo chroot /mnt/image/ /usr/bin/dpkg -s linux-image-cloud-amd64 | grep ^Depends: | \
107+
kmodver_end=$(sudo chroot /mnt/image/ /usr/bin/dpkg -s linux-image-cloud-${arch} | grep ^Depends: | \
95108
cut -d: -f2 | cut -d" " -f2 | sed 's/linux-image-//')
96109
echo "IMAGE ENDS WITH KERNEL: ${kmodver_end}"
97110

0 commit comments

Comments
 (0)