[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: qemu-system-riscv64 freezes



On Sun, Aug 30, 2020 at 07:55:05PM +0200, Elie-Laurent Benaroya wrote:
> Hello,
> 
> I am trying to build a Linux virtual machine for RISC V on Debian 10.
> I use a tutorial from "GNU LINUX Magazine France" (in French, no 230).
> Actually I have got a problem at the last step when "qemu-system-riscv64"
> is launched.
> 
> I set up the cross-compilation toolchain, used debootstrap for the root
> change and cross-compiled the Linux kernel from the git repository (version
> 5.1.y).
> The pk was compiled with the --with-payload=../../linux/vmlinux option and
> a 10G disk image was created. Finally I launch the command:
> qemu-system-riscv64 -nographic -machine virt -m 1.9G -kernel
> 2/riscv-pk/build/bbl -object rng-random,filename=/dev/urandom,id=rng0
> -device virtio-rng-device,rng=rng0 -append "console=ttyS0 rw root=/dev/vda"
> -device virtio-blk-device,drive=hd0 -drive file=rootfs.
> img,format=raw,id=hd0 -device virtio-net-device,netdev=usernet -netdev
> user,id=usernet,hostfwd=tcp::22222-:22
> But the program freezes after the following lines:
[...]

Hello,

I unfortunately don't know the exact reason for this particular
freeze, but the following points might be worth a thought:

- At the time when Debian 10 ("Buster") was released, the RISC-V
  support in upstream qemu was still rather new and later qemu
  versions have introduced changes that have fixed a number of
  issues that have led to crashes or freezes in qemu 3.1 (the
  version that was current when Buster was frozen and that is
  therefore included in Buster).  I would therefore recommend
  using qemu 5.0 or newer, even if you have to build it manually.

  I have run a number of tests and I cannot get a current kernel
  (5.7) and a current OpenSBI (0.8) to work properly in qemu
  3.1 while they work fine in a (manually-built) qemu 5.0.

- Is there a particular reason why you use BBL instead of
  OpenSBI? OpenSBI is nowadays the de-facto standard SBI
  implementation and probably gets a lot more testing than
  BBL does.

- If your aim is setting up a Debian/riscv64 VM, I would like to
  recommend following the steps described at

    https://wiki.debian.org/RISC-V#Setting_up_a_riscv64_virtual_machine

  This works out-of-the-box in Debian/unstable; for doing it in
  Buster you need to install the opensbi and u-boot-qemu packages
  from unstable first (they are arch-all and can be installed on
  a Buster system without problems) and you need to install at
  least qemu 5.0.  Once you have done that, you can just
  copy-and-paste the instructions from the aforementioned wiki
  page and get a working system (I've just successfully tried
  that on a freshly setup Buster system).

If you have further questions, feel free to ask.

Regards,
Karsten
-- 
Ich widerspreche hiermit ausdrücklich der Nutzung sowie der
Weitergabe meiner personenbezogenen Daten für Zwecke der Werbung
sowie der Markt- oder Meinungsforschung.


Reply to: