#!/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 \