| #!/bin/bash |
| |
| set -eu |
| set -x |
| |
| # AST2400 |
| PALMETTO_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' |
| PALMETTO_MTD="$(basename "$PALMETTO_MTD_URL")" |
| |
| # AST2500 |
| WITHERSPOON_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' |
| WITHERSPOON_MTD="$(basename "$WITHERSPOON_MTD_URL")" |
| |
| # AST2600 |
| TACOMA_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' |
| TACOMA_WIC_XZ="$(basename "$TACOMA_WIC_XZ_URL")" |
| TACOMA_MMC="$(basename "$TACOMA_WIC_XZ_URL" .xz)" |
| |
| TACOMA_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' |
| TACOMA_FITIMAGE="$(basename "$TACOMA_FITIMAGE_URL")" |
| |
| TACOMA_KERNEL=$(mktemp --suffix .kernel) |
| TACOMA_DTB=$(mktemp --suffix .dtb) |
| TACOMA_INITRD=$(mktemp --suffix .initrd) |
| |
| cleanup() { |
| rm -f "$PALMETTO_MTD" |
| rm -f "$WITHERSPOON_MTD" |
| rm -f "$TACOMA_WIC_XZ" "$TACOMA_MMC" |
| rm -f "$TACOMA_FITIMAGE" |
| rm -f "$TACOMA_KERNEL" "$TACOMA_DTB $TACOMA_INITRD" |
| } |
| |
| trap cleanup EXIT 2 |
| |
| # AST2400 |
| wget "$PALMETTO_MTD_URL" |
| # shellcheck disable=SC2016 # 'expect' strings |
| expect \ |
| -c "spawn qemu-system-arm \ |
| -M palmetto-bmc \ |
| -drive file=${PALMETTO_MTD},if=mtd,format=raw \ |
| -nographic \ |
| -net nic \ |
| -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \ |
| -c 'set timeout 120' \ |
| -c 'expect timeout { exit 1 } "login:"' \ |
| -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ |
| -c 'expect -i $spawn_id eof' |
| |
| # AST2500 |
| wget "$WITHERSPOON_MTD_URL" |
| # shellcheck disable=SC2016 # 'expect' strings |
| expect \ |
| -c "spawn qemu-system-arm \ |
| -M witherspoon-bmc \ |
| -drive file=${WITHERSPOON_MTD},if=mtd,format=raw \ |
| -nographic \ |
| -net nic \ |
| -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu" \ |
| -c 'set timeout 120' \ |
| -c 'expect timeout { exit 1 } "login:"' \ |
| -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ |
| -c 'expect -i $spawn_id eof' |
| |
| # AST2600 |
| wget "$TACOMA_WIC_XZ_URL" |
| unxz "$TACOMA_WIC_XZ" |
| truncate -s 16G "$TACOMA_MMC" |
| |
| wget "$TACOMA_FITIMAGE_URL" |
| dumpimage -T flat_dt -p 0 -o "$TACOMA_KERNEL" "$TACOMA_FITIMAGE" |
| dumpimage -T flat_dt -p 1 -o "$TACOMA_DTB" "$TACOMA_FITIMAGE" |
| dumpimage -T flat_dt -p 2 -o "$TACOMA_INITRD" "$TACOMA_FITIMAGE" |
| |
| # shellcheck disable=SC2016 # 'expect' strings |
| expect \ |
| -c "spawn qemu-system-arm -M tacoma-bmc \ |
| -kernel $TACOMA_KERNEL \ |
| -dtb $TACOMA_DTB \ |
| -initrd $TACOMA_INITRD \ |
| -drive file=${TACOMA_MMC},if=sd,format=raw,index=2 \ |
| -net nic \ |
| -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu \ |
| -nographic \ |
| -append \"console=ttyS4,115200n8 rootwait root=PARTLABEL=rofs-a\"" \ |
| -c 'set timeout 120' \ |
| -c 'expect timeout { exit 1 } "login:"' \ |
| -c 'spawn sshpass -p 0penBmc ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p2222 root@localhost journalctl -b' \ |
| -c 'expect -i $spawn_id eof' |