qemu ppc64le host, riscv64 guest

master
forksand 3 years ago
parent 1f3d01976c
commit 2b39ed9d69

@ -0,0 +1,77 @@
#!/bin/bash
set -x
sudo qemu-system-riscv64 \
-serial telnet:localhost:2018,server,nowait \
-monitor telnet:127.0.0.1:2019,server,nowait \
-vga none \
-runas vriscv64-build \
-daemonize \
-display none \
-M virt \
-smp 8 \
-m 8192 \
-name vriscv64-build \
-device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::47721-:22 \
-kernel /srv/kvm/vriscv64-build/vmlinux \
-initrd /srv/kvm/vriscv64-build/initrd.img \
-append "root=/dev/vda1 rw ipv6.disable=1 selinux=0" \
-bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-device,rng=rng0 \
-device virtio-blk-device,drive=hd0 \
-device virtio-blk-device,drive=hd1 \
-drive file=/srv/kvm/vriscv64-build/root.img,format=qcow2,cache=writeback,discard=on,id=hd0 \
-drive file=/srv/kvm/vriscv64-build/home.img,format=qcow2,cache=writeback,discard=on,id=hd1
exit
-append "root=/dev/vda1 rw ipv6.disable=1 selinux=0" \
# To update kernel:
# * update guest debian.
# * copy guest kernel & initrd to host
# scp -p vriscv64-build:/boot/vmlinux-5.10.0-5-riscv64 /srv/kvm/vriscv64-build/vmlinux
# scp -p vriscv64-build:/boot/initrd.img-5.10.0-5-riscv64 /srv/kvm/vriscv64-build/initrd.img
# chown vriscv64-build:vriscv64-build /srv/kvm/vriscv64-build/vmlinux /srv/kvm/vriscv64-build/initrd.img
# chmod 400 /srv/kvm/vriscv64-build/vmlinux chmod 400 /srv/kvm/vriscv64-build/initrd.img
# kernel, initrd.img for install:
# https://cdimage.debian.org/cdimage/ports/snapshots
# https://cdimage.debian.org/cdimage/ports/debian-installer/2020-12-03/riscv64/debian-installer-images_20201202_riscv64.tar.gz
-nic tap,model=virtio,mac=52:54:00:12:34:16 \
-kernel /home/jebba/devel/distros/debian/riscv/vmlinux \
-initrd /home/jebba/devel/distros/debian/riscv/initrd.img \
# IMAGE
# qemu-img create -f qcow2 /srv/kvm/vriscv64-build/home.img 20G
# chown vriscv64-build:vriscv64-build /srv/kvm/vriscv64-build/home.img
# chmod 600 /srv/kvm/vriscv64-build/home.img
# qemu-img create -f qcow2 /home/jebba/KVM/riscv64-build/boot.img 256M
# qemu-img create -f qcow2 /home/jebba/KVM/riscv64-build/swap.img 128M
# qemu-img create -f qcow2 /home/jebba/KVM/riscv64-build/root.img 2G
# Resize
# qemu-img resize foo.img +10G
# qemu-img resize /home/jebba/KVM/riscv64-build/root.img +10G
#misc
-device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::22549-:22 \
-append "root=/dev/vda1 rw" \
-daemonize \
-display none \
-nographic \
-display none \
-kernel /home/jebba/devel/distros/debian/riscv/debian-installer-images/installer-riscv64/20201202/images/netboot/vmlinux \
-initrd /home/jebba/devel/distros/debian/riscv/debian-installer-images/installer-riscv64/20201202/images/netboot/initrd.gz \
-net nic,model=virtio \
-net user,hostfwd=tcp:192.168.110.22:22549-:22 \
-kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \
-bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-device,rng=rng0
-M virt \
-device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::22549-:22 \
-M sifive_u \

@ -0,0 +1,70 @@
#!/bin/bash
set -x
sudo qemu-system-riscv64 \
-serial telnet:localhost:2016,server,nowait \
-monitor telnet:127.0.0.1:2017,server,nowait \
-vga none \
-runas vriscv64-sid \
-daemonize \
-display none \
-M virt \
-smp 8 \
-m 8192 \
-name vriscv64-sid \
-device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::22549-:22 \
-kernel /srv/kvm/vriscv64-sid/vmlinux \
-initrd /srv/kvm/vriscv64-sid/initrd.img \
-append "root=/dev/vda1 rw ipv6.disable=1 selinux=0" \
-bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-device,rng=rng0 \
-device virtio-blk-device,drive=hd0 \
-drive file=/srv/kvm/vriscv64-sid/root.img,format=qcow2,cache=writeback,discard=on,id=hd0
exit
-append "root=/dev/vda1 rw ipv6.disable=1 selinux=0" \
# To update kernel:
# * update guest debian.
# * copy guest kernel & initrd to host
# scp -p vriscv64-sid:/boot/vmlinux-5.10.0-5-riscv64 /srv/kvm/vriscv64-sid/vmlinux
# scp -p vriscv64-sid:/boot/initrd.img-5.10.0-5-riscv64 /srv/kvm/vriscv64-sid/initrd.img
# chown vriscv64-sid:vriscv64-sid /srv/kvm/vriscv64-sid/vmlinux /srv/kvm/vriscv64-sid/initrd.img
# chmod 400 /srv/kvm/vriscv64-sid/vmlinux chmod 400 /srv/kvm/vriscv64-sid/initrd.img
# kernel, initrd.img for install:
# https://cdimage.debian.org/cdimage/ports/snapshots
# https://cdimage.debian.org/cdimage/ports/debian-installer/2020-12-03/riscv64/debian-installer-images_20201202_riscv64.tar.gz
-nic tap,model=virtio,mac=52:54:00:12:34:16 \
-kernel /home/jebba/devel/distros/debian/riscv/vmlinux \
-initrd /home/jebba/devel/distros/debian/riscv/initrd.img \
-device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::22549-:22 \
-append "root=/dev/vda1 rw" \
-daemonize \
-display none \
-nographic \
-display none \
-kernel /home/jebba/devel/distros/debian/riscv/debian-installer-images/installer-riscv64/20201202/images/netboot/vmlinux \
-initrd /home/jebba/devel/distros/debian/riscv/debian-installer-images/installer-riscv64/20201202/images/netboot/initrd.gz \
-net nic,model=virtio \
-net user,hostfwd=tcp:192.168.110.22:22549-:22 \
-kernel /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf \
-bios /usr/lib/riscv64-linux-gnu/opensbi/generic/fw_jump.elf \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-device,rng=rng0
-M virt \
-device virtio-net-device,netdev=usernet -netdev user,id=usernet,hostfwd=tcp::22549-:22 \
-M sifive_u \
# IMAGE
# qemu-img create -f qcow2 /home/jebba/KVM/riscv64-sid/boot.img 256M
# qemu-img create -f qcow2 /home/jebba/KVM/riscv64-sid/swap.img 128M
# qemu-img create -f qcow2 /home/jebba/KVM/riscv64-sid/root.img 2G
# Resize
# qemu-img resize foo.img +10G
# qemu-img resize /home/jebba/KVM/riscv64-sid/root.img +10G
Loading…
Cancel
Save