1#!/bin/bash 2 3set -eu 4set -x 5 6# AST2400 7PALMETTO_MTD_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=palmetto/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/palmetto/obmc-phosphor-image-palmetto.static.mtd' 8PALMETTO_MTD="$(basename "$PALMETTO_MTD_URL")" 9 10# AST2500 11WITHERSPOON_MTD_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon/obmc-phosphor-image-witherspoon.ubi.mtd' 12WITHERSPOON_MTD="$(basename "$WITHERSPOON_MTD_URL")" 13 14# AST2600 15TACOMA_WIC_XZ_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon-tacoma/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon-tacoma/obmc-phosphor-image-witherspoon-tacoma.wic.xz' 16TACOMA_WIC_XZ="$(basename "$TACOMA_WIC_XZ_URL")" 17TACOMA_MMC="$(basename "$TACOMA_WIC_XZ_URL" .xz)" 18 19TACOMA_FITIMAGE_URL='https://jenkins.openbmc.org/job/ci-openbmc/distro=ubuntu,label=docker-builder,target=witherspoon-tacoma/lastStableBuild/artifact/openbmc/build/tmp/deploy/images/witherspoon-tacoma/fitImage-obmc-phosphor-initramfs-witherspoon-tacoma-witherspoon-tacoma' 20TACOMA_FITIMAGE="$(basename "$TACOMA_FITIMAGE_URL")" 21 22TACOMA_KERNEL=$(mktemp --suffix .kernel) 23TACOMA_DTB=$(mktemp --suffix .dtb) 24TACOMA_INITRD=$(mktemp --suffix .initrd) 25 26cleanup() { 27 rm -f "$PALMETTO_MTD" 28 rm -f "$WITHERSPOON_MTD" 29 rm -f "$TACOMA_WIC_XZ" "$TACOMA_MMC" 30 rm -f "$TACOMA_FITIMAGE" 31 rm -f "$TACOMA_KERNEL" "$TACOMA_DTB $TACOMA_INITRD" 32} 33 34trap cleanup EXIT 2 35 36# AST2400 37wget "$PALMETTO_MTD_URL" 38# shellcheck disable=SC2016 # 'expect' strings 39expect \ 40 -c "spawn qemu-system-arm \ 41 -M palmetto-bmc \ 42 -drive file=${PALMETTO_MTD},if=mtd,format=raw \ 43 -nographic \ 44 -net nic \ 45 -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \ 46 -c 'set timeout 300' \ 47 -c 'expect timeout { exit 1 } "login:"' \ 48 -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ 49 -c 'expect -i $spawn_id eof' 50 51# AST2500 52wget "$WITHERSPOON_MTD_URL" 53# shellcheck disable=SC2016 # 'expect' strings 54expect \ 55 -c "spawn qemu-system-arm \ 56 -M witherspoon-bmc \ 57 -drive file=${WITHERSPOON_MTD},if=mtd,format=raw \ 58 -nographic \ 59 -net nic \ 60 -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \ 61 -c 'set timeout 300' \ 62 -c 'expect timeout { exit 1 } "login:"' \ 63 -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ 64 -c 'expect -i $spawn_id eof' 65 66# AST2600 67wget "$TACOMA_WIC_XZ_URL" 68unxz "$TACOMA_WIC_XZ" 69truncate -s 16G "$TACOMA_MMC" 70 71wget "$TACOMA_FITIMAGE_URL" 72dumpimage -T flat_dt -p 0 -o "$TACOMA_KERNEL" "$TACOMA_FITIMAGE" 73dumpimage -T flat_dt -p 1 -o "$TACOMA_DTB" "$TACOMA_FITIMAGE" 74dumpimage -T flat_dt -p 2 -o "$TACOMA_INITRD" "$TACOMA_FITIMAGE" 75 76# shellcheck disable=SC2016 # 'expect' strings 77expect \ 78 -c "spawn qemu-system-arm -M tacoma-bmc \ 79 -kernel $TACOMA_KERNEL \ 80 -dtb $TACOMA_DTB \ 81 -initrd $TACOMA_INITRD \ 82 -drive file=${TACOMA_MMC},if=sd,format=raw,index=2 \ 83 -net nic \ 84 -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu \ 85 -nographic \ 86 -append \"console=ttyS4,115200n8 rootwait root=PARTLABEL=rofs-a\"" \ 87 -c 'set timeout 300' \ 88 -c 'expect timeout { exit 1 } "login:"' \ 89 -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ 90 -c 'expect -i $spawn_id eof' 91