aboutsummaryrefslogtreecommitdiff
path: root/vm
diff options
context:
space:
mode:
authorbozo.kopic <bozo@kopic.xyz>2023-01-22 17:42:02 +0100
committerbozo.kopic <bozo@kopic.xyz>2023-01-22 17:42:02 +0100
commit7f6d37650d228f4765fc8b9a0bde2feaaaee4927 (patch)
tree247f5575d2bd2db8db9723d353d830dc68fcbb6d /vm
parent438409775af7a475fb1db1256994bab2040d99e1 (diff)
.
Diffstat (limited to 'vm')
-rwxr-xr-xvm/alpine/run.sh25
-rwxr-xr-xvm/archlinux/armv7/run.sh49
-rwxr-xr-xvm/debian/armv7/run.sh49
-rwxr-xr-xvm/openbsd/run.sh25
-rwxr-xr-xvm/win11/run.sh (renamed from vm/vm-win11)0
5 files changed, 148 insertions, 0 deletions
diff --git a/vm/alpine/run.sh b/vm/alpine/run.sh
new file mode 100755
index 0000000..8681b9d
--- /dev/null
+++ b/vm/alpine/run.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+set -e
+
+cd $(dirname -- "$0")
+
+if [ ! -f alpine.iso ]; then
+ curl -L -o alpine.iso https://dl-cdn.alpinelinux.org/alpine/v3.14/releases/x86_64/alpine-virt-3.14.1-x86_64.iso
+fi
+
+if [ ! -f alpine.qcow2 ]; then
+ qemu-img create -f qcow2 alpine.qcow2 20G
+fi
+
+exec qemu-system-x86_64 \
+ -enable-kvm \
+ -cpu host \
+ -hda alpine.qcow2 \
+ -cdrom alpine.iso \
+ -m 2G \
+ -device e1000,netdev=net0 \
+ -netdev user,id=net0 \
+ -usb \
+ -device usb-tablet \
+ "$@"
diff --git a/vm/archlinux/armv7/run.sh b/vm/archlinux/armv7/run.sh
new file mode 100755
index 0000000..c53adb7
--- /dev/null
+++ b/vm/archlinux/armv7/run.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+set -e
+
+cd $(dirname -- "$0")
+
+ROOT_URL=http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz
+IMG_PATH=archlinuxarm.img
+KERNEL_PATH=boot/zImage
+INITRAMFS_PATH=boot/initramfs-linux.img
+
+ROOT_PATH=$(basename $ROOT_URL)
+
+if [ ! -f $ROOT_PATH ]; then
+ curl -L -o $ROOT_PATH $ROOT_URL
+fi
+
+if [ ! \( \( -f $KERNEL_PATH \) -a \
+ \( -f $INITRAMFS_PATH \) \) ]; then
+ bsdtar -xf $ROOT_PATH $KERNEL_PATH $INITRAMFS_PATH
+fi
+
+if [ ! -f $IMG_PATH ]; then
+ truncate -s 2G $IMG_PATH
+ mkfs.ext4 -q $IMG_PATH
+ mkdir -p mnt
+ doas mount -o loop $IMG_PATH mnt
+ doas bsdtar -xpf $ROOT_PATH -C mnt
+ doas umount mnt
+ rmdir mnt
+fi
+
+exec qemu-system-arm \
+ -machine virt \
+ -cpu cortex-a15 \
+ -m 2G \
+ -kernel $KERNEL_PATH \
+ -initrd $INITRAMFS_PATH \
+ -append "root=/dev/sda rw" \
+ -drive if=none,file=$IMG_PATH,format=raw,id=drive0 \
+ -netdev user,id=netdev0 \
+ -device virtio-scsi-pci,id=scsi \
+ -device virtio-blk-pci,drive=drive0 \
+ -device virtio-net-pci,netdev=netdev0 \
+ -nographic \
+ "$@"
+
+
+
diff --git a/vm/debian/armv7/run.sh b/vm/debian/armv7/run.sh
new file mode 100755
index 0000000..33f3ff3
--- /dev/null
+++ b/vm/debian/armv7/run.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+set -e
+
+cd $(dirname -- "$0")
+
+ISO_URL=https://cdimage.debian.org/debian-cd/current/armhf/iso-cd/debian-11.6.0-armhf-netinst.iso
+KERNEL_URL=http://ftp.us.debian.org/debian/dists/stable/main/installer-armhf/current/images/cdrom/vmlinuz
+INITRD_URL=http://ftp.us.debian.org/debian/dists/stable/main/installer-armhf/current/images/cdrom/initrd.gz
+
+ISO_PATH=$(basename $ISO_URL)
+KERNEL_PATH=$(basename $KERNEL_URL)
+INITRD_PATH=$(basename $INITRD_URL)
+
+IMG_PATH=debian.qcow2
+
+if [ ! -f $ISO_PATH ]; then
+ curl -L -o $ISO_PATH $ISO_URL
+fi
+
+if [ ! -f $KERNEL_PATH ]; then
+ curl -L -o $KERNEL_PATH $KERNEL_URL
+fi
+
+if [ ! -f $INITRD_PATH ]; then
+ curl -L -o $INITRD_PATH $INITRD_URL
+fi
+
+if [ ! -f $IMG_PATH ]; then
+ qemu-img create -f qcow2 $IMG_PATH 20G
+fi
+
+exec qemu-system-arm \
+ -machine virt \
+ -cpu cortex-a15 \
+ -smp 4 \
+ -m 2G \
+ -kernel $KERNEL_PATH \
+ -initrd $INITRD_PATH \
+ -append "console=ttyAMA0" \
+ -drive if=none,file=$ISO_PATH,media=cdrom,id=drive0 \
+ -drive if=none,file=$IMG_PATH,media=disk,id=drive1 \
+ -netdev user,id=netdev0 \
+ -device virtio-scsi-device \
+ -device scsi-cd,drive=drive0 \
+ -device scsi-hd,drive=drive1 \
+ -device virtio-net-device,netdev=netdev0 \
+ -nographic \
+ "$@"
diff --git a/vm/openbsd/run.sh b/vm/openbsd/run.sh
new file mode 100755
index 0000000..ac5d7a9
--- /dev/null
+++ b/vm/openbsd/run.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+set -e
+
+cd $(dirname -- "$0")
+
+if [ ! -f openbsd.iso ]; then
+ curl -L -o openbsd.iso https://cdn.openbsd.org/pub/OpenBSD/6.9/i386/cd69.iso
+fi
+
+if [ ! -f openbsd.qcow2 ]; then
+ qemu-img create -f qcow2 openbsd.qcow2 20G
+fi
+
+exec qemu-system-x86_64 \
+ -enable-kvm \
+ -cpu host \
+ -hda openbsd.qcow2 \
+ -cdrom openbsd.iso \
+ -m 2G \
+ -device e1000,netdev=net0 \
+ -netdev user,id=net0 \
+ -usb \
+ -device usb-tablet \
+ "$@"
diff --git a/vm/vm-win11 b/vm/win11/run.sh
index 195bbed..195bbed 100755
--- a/vm/vm-win11
+++ b/vm/win11/run.sh