The support for riscv64 is very experimental and requires special preparations. Basically you need to prepare your system according to:
https://fedorapeople.org/groups/risc-v/disk-images/readme.txt
Which means you need to install latest qemu-system-riscv (tested
with qemu 00928a421d47f49691cace1207481b7aad31b1f1
) or install
the one provided by Rich:
https://copr.fedorainfracloud.org/coprs/rjones/riscv/
And you need to download a suitable image and bootable kernel to the right location:
- kernel: https://fedorapeople.org/groups/risc-v/disk-images/bbl
needs to be downloaded in
$AVOCADO_VT_DATA/images/f28-riscv64-kernel
- image: https://fedorapeople.org/groups/risc-v/disk-images/stage4-disk.img.xz
needs to be downloaded in
$AVOCADO_VT_DATA/images/
, extracted and converted toqcow2
using namef28-riscv64.qcow2
.
Basically you can go into $AVOCADO_VT_DATA/images
and execute:
curl https://fedorapeople.org/groups/risc-v/disk-images/bbl -o f28-riscv64-kernel curl https://fedorapeople.org/groups/risc-v/disk-images/stage4-disk.img.xz | xz -d > stage4-disk.img qemu-img convert -f raw -O qcow2 stage4-disk.img f28-riscv64.qcow2 rm stage4-disk.img
Also I'd recommend booting the guest:
qemu-system-riscv64 \ -nographic \ -machine virt \ -smp 4 \ -m 2G \ -kernel f28-riscv64-kernel \ -object rng-random,filename=/dev/urandom,id=rng0 \ -device virtio-rng-device,rng=rng0 \ -append "console=ttyS0 ro root=/dev/vda" \ -device virtio-blk-device,drive=hd0 \ -drive file=f28-riscv64.qcow2,format=qcow2,id=hd0 \ -device virtio-net-device,netdev=usernet \ -netdev user,id=usernet,hostfwd=tcp::10000-:22
and running the Fedora-25.ks post-install steps:
dnf -y install @standard @c-development @development-tools python net-tools sg3_utils python-pip grubby --remove-args="rhgb quiet" --update-kernel=$(grubby --default-kernel) dhclient chkconfig sshd on iptables -F systemctl mask tmp.mount echo 0 > /selinux/enforce sed -i "/^HWADDR/d" /etc/sysconfig/network-scripts/ifcfg-eth0 # if package groups were missing from main installation repo # try again from installed system dnf -y groupinstall c-development development-tools # include avocado: allows using this machine with remote runner # Fallback to pip as it's not yet built for riscv64 dnf -y install python2-avocado || pip install python2-avocado
Tip
If you want to use riscv without kvm (eg. on x86 host) use something
like avocado run --vt-machine-type riscv64-mmio --vt-arch riscv64
--vt-extra-params enable_kvm=no --vt-guest-os Fedora.28 -- boot
which sets the right machine/arch and disables kvm (uses tcg).