#!/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 65536 \ -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/sda1 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 \ -object iothread,id=iothread-virtioscsi0 \ -device virtio-scsi-pci,id=virtioscsi0,addr=0x1,iothread=iothread-virtioscsi0 \ -device scsi-hd,bus=virtioscsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0 \ -drive file=/srv/kvm/vriscv64-build/root.img,format=qcow2,cache=writeback,discard=on,id=drive-scsi0 \ -object iothread,id=iothread-virtioscsi1 \ -device virtio-scsi-pci,id=virtioscsi1,addr=0x2,iothread=iothread-virtioscsi1 \ -device scsi-hd,bus=virtioscsi1.0,channel=0,scsi-id=0,lun=1,drive=drive-scsi1,id=scsi1 \ -drive file=/srv/kvm/vriscv64-build/home.img,format=qcow2,cache=writeback,discard=on,id=drive-scsi1 \ -object iothread,id=iothread-virtioscsi2 \ -device virtio-scsi-pci,id=virtioscsi2,addr=0x3,iothread=iothread-virtioscsi2 \ -device scsi-hd,bus=virtioscsi2.0,channel=0,scsi-id=0,lun=2,drive=drive-scsi2,id=scsi2 \ -drive file=/srv/kvm/vriscv64-build/srv.img,format=qcow2,cache=writeback,discard=on,id=drive-scsi2 exit -device virtio-blk-device,drive=hd0 \ -drive file=/srv/kvm/vriscv64-build/root.img,format=qcow2,cache=writeback,discard=on,id=hd0 \ -device virtio-blk-device,drive=hd1 \ -drive file=/srv/kvm/vriscv64-build/home.img,format=qcow2,cache=writeback,discard=on,id=hd1 \ -device virtio-scsi-pci,id=virtioscsi0,bus=pci.3,addr=0x1,iothread=iothread-virtioscsi0 \ -device virtio-scsi-pci,id=virtioscsi0,bus=pci.3,addr=0x1,iothread=iothread-virtioscsi0 -drive file=/dev/rbd/nvmepool/vm-192-disk-1,if=none,id=drive-scsi0,cache=writeback,discard=on,format=raw,aio=threads,detect-zeroes=unmap -device scsi-hd,bus=virtioscsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100 -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 \