-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test on different architectures #34
Comments
My script (put together from the history of the files, rather than a fully-tested script per se): #!/bin/sh
# works with QEMU emulator version 6.2.0
# usage: $0 arch (install|run)
disk=disk.qcow2
disksize=20G
if [ "$1" = arm64 ]; then
debian_iso=debian-11.2.0-arm64-netinst.iso
firmware=QEMU_EFI.fd
INSTMEDIA="-drive file=$debian_iso,id=cdrom,if=none,media=cdrom \
-device virtio-scsi-device \
-device scsi-cd,drive=cdrom"
BASECMD="qemu-system-aarch64 -smp cpus=6 -M virt -cpu max -m 2G -nographic \
-bios $firmware \
-drive file=$disk,if=virtio"
if [ "$2" = "install" ]; then
curl -O "https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/$debian_iso"
curl -OL "http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/$firmware"
qemu-img create -f qcow2 $disk $disksize
$BASECMD \
$INSTMEDIA
elif [ "$2" = "run" ]; then
# from https://unix.stackexchange.com/questions/52996/how-to-boot-efi-kernel-using-qemu-kvm
cat <<'EOF'
at UEFI prompt:
fs0:
cd EFI\debian
grubaa64.efi
EOF
$BASECMD \
$INSTMEDIA
else
echo >&2 "Unknown instruction '$2'"; exit 1;
fi
elif [ "$1" = armhf ]; then
# modified from https://willhaley.com/blog/debian-arm-qemu/
bootprefix=http://ftp.us.debian.org/debian/dists/stable/main/installer-armhf/current/images/cdrom
prefix=https://cdimage.debian.org/debian-cd/current/armhf/iso-dvd
debian_iso=debian-11.2.0-armhf-DVD-1.iso
INSTMEDIA="-drive file=$debian_iso,id=cdrom,if=none,media=cdrom \
-device virtio-scsi-device \
-device scsi-cd,drive=cdrom"
BASECMD="qemu-system-arm -m 4G -machine type=virt -cpu cortex-a7 -smp 4 \
-drive file=$disk,id=hd,if=none,media=disk \
-device virtio-scsi-device \
-device scsi-hd,drive=hd \
-netdev user,id=net0,hostfwd=tcp::5555-:22 \
-device virtio-net-device,netdev=net0 \
-nographic"
if [ "$2" = "install" ]; then
init=initrd.gz
kernel=vmlinuz
curl -OL "$bootprefix/$init"
curl -OL "$bootprefix/$kernel"
curl -OL "$prefix/$debian_iso"
qemu-img create -f qcow2 $disk $disksize
$BASECMD \
-append "console=ttyAMA0" \
$INSTMEDIA \
-initrd "$init" \
-kernel "$kernel"
elif [ "$2" = "run" ]; then
init=initrd.img-from-guest
kernel=vmlinuz-from-guest
$BASECMD \
-append "console=ttyAMA0 root=/dev/sda2" \
$INSTMEDIA \
-initrd "$init" \
-kernel "$kernel"
else
echo >&2 "Unknown instruction '$2'"; exit 1;
fi
elif [ "$1" = s390x ]; then
# modified from https://wiki.qemu.org/Documentation/Platforms/S390X
bootprefix=https://ftp.debian.org/debian/dists/stable/main/installer-s390x/current/images/generic/
init=initrd.debian
kernel=kernel.debian
prefix=https://cdimage.debian.org/debian-cd/current/s390x/iso-cd
debian_iso=debian-11.2.0-s390x-netinst.iso
INSTMEDIA="-cdrom $debian_iso"
BASECMD="qemu-system-s390x -m 4G -machine s390-ccw-virtio -cpu max,zpci=on -serial mon:stdio -smp 8 \
-drive file=$disk,if=none,id=drive-virtio-disk0 \
-device virtio-blk-ccw,devno=fe.0.0001,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 \
-nic user,model=virtio,hostfwd=tcp::2222-:22 \
-nographic"
if [ "$2" = "install" ]; then
curl -OL "$bootprefix/$init"
curl -OL "$bootprefix/$kernel"
curl -OL "$prefix/$debian_iso"
qemu-img create -f qcow2 $disk $disksize
$BASECMD \
-initrd "$init" \
-kernel "$kernel" \
$INSTMEDIA
elif [ "$2" = "run" ]; then
$BASECMD
else
echo >&2 "Unknown instruction '$2'"; exit 1;
fi
else
echo >&2 "Unknown arch '$1'"; exit 1;
fi The commands to clone PDL, and get a sufficient (and parallel) build: sudo apt-get install git build-essential gfortran libtest-warn-perl libtest-exception-perl libdevel-checklib-perl libpod-parser-perl libfile-which-perl libfile-map-perl libtest-deep-perl libextutils-f77-perl libinline-c-perl libterm-readkey-perl libextutils-depends-perl libastro-fits-header-perl
git clone https://github.com/PDLPorters/pdl.git
export MAKEFLAGS=--jobs=8 HARNESS_OPTIONS=j8 The Vagrantfile I used to debug on i386, which ran much quicker and was painless to set up:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
See PDLPorters/pdl#369.
The text was updated successfully, but these errors were encountered: