blob: c53adb7d3e4881ea99cef9691d72cad702ce2381 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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 \
"$@"
|