Hi, Maybe, you need to add the "-bios none" option. I booted the image with the following options on Fedora 33.
~~~ $ qemu-system-riscv64 -bios none -nographic -machine virt -smp 1 -m 1G \ -kernel Fedora-Minimal-Rawhide-20200108.n.0-fw_payload-uboot-qemu-virt-smode.elf \ -device virtio-blk-device,drive=hd0 \ -drive file=Fedora-Minimal-Rawhide-20200108.n.0-sda.raw,format=raw,id=hd0 \ -device virtio-net-device,netdev=usernet \ -netdev user,id=usernet,hostfwd=tcp::10000-:22 ~~~ Takayuki Nagata 2021年7月6日(火) 10:16 Andrej Podzimek via devel <devel@lists.fedoraproject.org>: > > Hi Fedora developers! > > I'm trying to start a Fedora riscv64 VM on an ArchLinux x86_64 host based on > this wiki page: > https://fedoraproject.org/wiki/Architectures/RISC-V/Installing I have a > reasonably recent qemu and virt-manager: > > ``` > qemu 6.0.0-3 > qemu-arch-extra 6.0.0-3 > libvirt 1:7.3.0-1 > virt-manager 3.2.0-1 > ``` > > All virt-builder steps work perfectly fine and produce an image. > > However, I cannot start an instance. I tried the image prepared with > virt-builder, the manually downloaded image, the nightly image, direct kernel > loading (configured in libvirt / virt-manager), but none of that worked. > > For the nightly instances in particular, the wiki says one should extract > "firmware" from /opensbi/... in the image. However, there is _no_ such > directory in the image (and also no file called .elf). This information may > be outdated. > > When using the downloaded .elf file (as described in the "Download using > virt-builder" section), I get this from qemu: > > ``` > qemu-system-riscv64: Some ROM regions are overlapping > These ROM regions might have been loaded by direct user request or by default. > They could be BIOS/firmware images, a guest kernel, initrd or some other file > loaded into guest memory. > Check whether you intended to load all this guest code, and whether it has > been built to load to the correct addresses. > > The following two regions overlap (in the memory address space): > /usr/bin/../share/qemu/opensbi-riscv64-generic-fw_dynamic.bin (addresses > 0x0000000080000000 - 0x0000000080012558) > > VirtualMachineMedia/Fedora-Developer-Rawhide-20200108.n.0-fw_payload-uboot-qemu-virt-smode.elf > ELF program header segment 0 (addresses 0x0000000080000000 - > 0x000000008000d0e0) > ``` > > The qemu command line was: > > ``` > qemu-system-riscv64 \ > -nographic \ > -machine virt \ > -smp 8 \ > -m 32G \ > -kernel > VirtualMachineMedia/Fedora-Developer-Rawhide-20200108.n.0-fw_payload-uboot-qemu-virt-smode.elf > \ > -object rng-random,filename=/dev/urandom,id=rng0 \ > -device virtio-rng-device,rng=rng0 \ > -device virtio-blk-device,drive=hd0\ > -drive > file=VirtualMachineMedia/Fedora-Developer-Rawhide-20210421.n.0-sda.raw,format=raw,id=hd0 > \ > -device virtio-net-device,netdev=usernet \ > -netdev user,id=usernet,hostfwd=tcp::10000-:22 > ``` > > Idea No. 1: Drop the "-kernel ..." argument. In that case I get an OpenSBI > splash that looks like this: https://pastebin.com/5QKJqkRg Sadly, the VM is > frozen and nothing else happens. There is no network communication either. > > It looks like this^^^ configuration might start something, but fails to load > a kernel properly (or the like). The nightly image appears to contain > multiple bootloaders, but the wiki doesn't say how to run them. > > Idea No. 2: Delete /usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.bin to > see if the conflict goes away. (For the record, the file is owned by > qemu-arch-extra.) Well, qemu then says 'qemu-system-riscv64: Unable to load > the RISC-V firmware "opensbi-riscv64-generic-fw_dynamic.bin"'. > > Idea No. 3: Extract the kernel (vmlinuz-5.10.6-200.0.riscv64.fc33.riscv64) > and initramdisk (initramfs-5.10.6-200.0.riscv64.fc33.riscv64.img) from the > nightly image and load them "directly" (using virt-manager) like this: > https://pastebin.com/36RVR75r > > This^^^ failed the same way as all virt-manager experiments (with nightly / > manually downloaded / built with virt-builder) images: A black console with a > blinking cursor and nothing happens. No activity on the virtual bridge either. > > Interestingly, each time qemu starts and freezes, host CPU utilization is > about 200% (i.e., 2 cores worth of load, not 1 core, not 8 cores etc.). (The > host machine is a Ryzen 3950X with 32 CPUs altogether and 128 GB RAM.) > > What am I doing wrong (apart from not using Fedora as a host)? > Why am I getting a weird conflict with a system built-in OpenSBI? Could the > built-in firmware be incompatible with the Fedora image? > Are there any up-to-date instructions on how to get the recent nightly images > (without the /opensbi directory) working? > How can I debug why qemu / OpenSBI freezes? Does OpenSBI need a bit of > configuration to boot the image? > > I'll retry this on a Fedora VM if need be, but would also like to understand > what the issue is on Arch. Also, I wanted to double-check that the riscv64 > port actually works on current systems... > > Just about any hint would help a lot. :-) > > Cheers! > Andrej > > _______________________________________________ > devel mailing list -- devel@lists.fedoraproject.org > To unsubscribe send an email to devel-le...@lists.fedoraproject.org > Fedora Code of Conduct: > https://docs.fedoraproject.org/en-US/project/code-of-conduct/ > List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines > List Archives: > https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org > Do not reply to spam on the list, report it: > https://pagure.io/fedora-infrastructure _______________________________________________ devel mailing list -- devel@lists.fedoraproject.org To unsubscribe send an email to devel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure