summaryrefslogtreecommitdiffstats
path: root/tools/yardstick-img-modify
diff options
context:
space:
mode:
authorPaul Vaduva <Paul.Vaduva@enea.com>2016-08-25 13:18:22 +0200
committerPaul Vaduva <Paul.Vaduva@enea.com>2016-08-31 18:18:44 +0200
commit3790f7bb070078da4b101ad8d33a176c9096e3ba (patch)
tree29446e3e416e5d9476475b52383070280b6a4269 /tools/yardstick-img-modify
parentcb71ac5d5ba128e3e540684bd2f41d583bcdf320 (diff)
ARM64: Add support for aarch64 architecture
Added support for arm64 architecture so that yardstick framework can be ran on arm-pod1 the armband CI pod. The modifications include testing for presence of arm64 architecture nodes in the pod and running arm64 specific code (building yardstick server image on arm64 version of ubuntu cloud. Openstack doesn't boot 3.13 kernel(arm64) so it was replaced with 3.19 kernel(also arm64), available for vivid cloud image of ubuntu. The Dockerfile for building the ci image was also mofied to add necessary tools for cross-building an arm64 image on amd64 host (the jumpserver) The jira case for this commit is ARMBAND-40. Change-Id: I906d4adbcf2ec2c0f1d695d9916ede42f4151080 Signed-off-by: Paul Vaduva <Paul.Vaduva@enea.com>
Diffstat (limited to 'tools/yardstick-img-modify')
-rwxr-xr-xtools/yardstick-img-modify47
1 files changed, 39 insertions, 8 deletions
diff --git a/tools/yardstick-img-modify b/tools/yardstick-img-modify
index 13d4360d9..b9ecbddd8 100755
--- a/tools/yardstick-img-modify
+++ b/tools/yardstick-img-modify
@@ -38,11 +38,10 @@ test $(id -u) -eq 0 || die "should invoke using sudo"
cmd=$1
test -x $cmd
mountdir="/mnt/yardstick"
-
workspace=${WORKSPACE:-"/tmp/workspace/yardstick"}
host=${HOST:-"cloud-images.ubuntu.com"}
release=${RELEASE:-"trusty"}
-image_path="${release}/current/${release}-server-cloudimg-amd64-disk1.img"
+image_path="${release}/current/${release}-server-cloudimg-${YARD_IMG_ARCH}-disk1.img"
image_url=${IMAGE_URL:-"https://${host}/${image_path}"}
md5sums_path="${release}/current/MD5SUMS"
md5sums_url=${MD5SUMS_URL:-"https://${host}/${md5sums_path}"}
@@ -64,30 +63,61 @@ download() {
wget -nc --progress=dot:giga $image_url
grep $filename MD5SUMS | md5sum -c
fi
+
+ for i in $(seq 0 9); do
+ [ -a /dev/loop$i ] || mknod -m 660 /dev/loop$i b 7 $i
+ done
+
+ if [ $YARD_IMG_ARCH = "arm64" ]; then
+ cd /tmp
+ if [ ! -f /tmp/vivid-server-cloudimg-arm64-kernel-info.txt ]; then
+ wget http://cloud-images.ubuntu.com/vivid/current/vivid-server-cloudimg-arm64-kernel-info.txt
+ fi
+ export VIVID_KERNEL_VERSION=$(cut -d$'\t' -f4 vivid-server-cloudimg-arm64-kernel-info.txt)
+ mkdir -p /tmp/vivid-modules
+ if [ ! -f "/tmp/vivid-server-cloudimg-arm64.tar.gz" ]; then
+ wget $VIVID_IMG_URL
+ fi
+ if [ ! -f "/tmp/vivid-server-cloudimg-arm64.img" ]; then
+ tar zxvf vivid-server-cloudimg-arm64.tar.gz vivid-server-cloudimg-arm64.img
+ fi
+ mkdir -p /mnt/vivid
+ mount /tmp/vivid-server-cloudimg-arm64.img /mnt/vivid
+ cp -r /mnt/vivid/lib/modules/$(echo $VIVID_KERNEL_VERSION | cut -d'-' -f3,4,5) /tmp/vivid-modules
+ umount /mnt/vivid
+ rm /tmp/vivid-server-cloudimg-arm64.img
+ cd $workspace
+ fi
qemu-img convert $filename $raw_imgfile
cd -
}
# mount image
setup() {
+ # qemu-img resize $raw_imgfile +5GB
+ if [ $YARD_IMG_ARCH = "arm64" ]; then
+ echo -e "d\nn\np\n1\n\n\nw" | fdisk $raw_imgfile
+ fi
mkdir -p $mountdir
- for i in $(seq 0 9); do
- [ -a /dev/loop$i ] || mknod -m 660 /dev/loop$i b 7 $i
- done
-
loopdevice=$(kpartx -l $raw_imgfile | head -1 | cut -f1 -d ' ')
kpartx -av $raw_imgfile
-
+ if [ $YARD_IMG_ARCH = "arm64" ]; then
+ e2fsck -f /dev/mapper/$loopdevice
+ resize2fs /dev/mapper/$loopdevice
+ fi
# for trouble shooting
sleep 2
dmsetup ls
fdisk -l /dev/${loopdevice:0:5} || true
-
mount /dev/mapper/$loopdevice $mountdir
mount -t proc none $mountdir/proc
+ if [ $YARD_IMG_ARCH = "arm64" ]; then
+ cp -r /tmp/vivid-modules/$(echo $VIVID_KERNEL_VERSION | cut -d'-' -f3,4,5) "$mountdir/lib/modules"
+ cp $(which "qemu-aarch64-static") "$mountdir/usr/bin"
+ fi
cp $cmd $mountdir/$(basename $cmd)
}
@@ -120,6 +150,7 @@ cleanup() {
# designed to be idempotent
mount | grep $mountdir/proc && umount $mountdir/proc
mount | grep $mountdir && umount $mountdir
+ mount | grep "/mnt/vivid" && umount "/mnt/vivid"
if [ -f $raw_imgfile ]; then
kpartx -dv $raw_imgfile || true
fi