mbox series

[bug#69899,0/7] support to use `guix system vm' with riscv64.

Message ID cover.1710861023.git.zhengjunjie@iscas.ac.cn
Headers show
Series support to use `guix system vm' with riscv64. | expand

Message

Z572 March 19, 2024, 3:15 p.m. UTC
hello!. this patchset make `guix system vm --target=riscv64-linux-gnu' work.
and `guix system vm --system=riscv64-linux` also work, But there is a problem
that the qemu running with --system=riscv64-linux is also riscv architecture,
now you have to manually modify to use native qemu or the guix of qemu-system
on qemu-user is too slow. and must enable qemu-binfmt.

Zheng Junjie (7):
  bootloader: Add u-boot-qemu-riscv64-bootloader.
  vm: use #$ for kernel-arguments.
  vm: When target riscv64-linux, use u-boot-qemu-riscv64-bootloader.
  gnu: linux-libre-riscv64-generic: add more options.
  linux-initrd: don't add hid-apple module for riscv64-linux.
  vm: add arguments to use virt machine type for qemu-riscv64.
  vm: If not the same local architecture, don't enable kvm.

 gnu/bootloader/u-boot.scm   | 15 ++++++++++++++
 gnu/packages/linux.scm      | 19 +++++++++++++++++-
 gnu/system/linux-initrd.scm |  5 ++++-
 gnu/system/vm.scm           | 40 ++++++++++++++++++++++++++-----------
 4 files changed, 65 insertions(+), 14 deletions(-)


base-commit: 83c5e7169d3bfa23a51225a8d809a435c1f2dd6b

Comments

Leo Famulari March 26, 2024, 4:07 p.m. UTC | #1
Hi, thanks for these patches!

On Tue, Mar 19, 2024 at 11:15:53PM +0800, Zheng Junjie wrote:
> hello!. this patchset make `guix system vm --target=riscv64-linux-gnu' work.
> and `guix system vm --system=riscv64-linux` also work, But there is a problem
> that the qemu running with --system=riscv64-linux is also riscv architecture,
> now you have to manually modify to use native qemu or the guix of qemu-system
> on qemu-user is too slow. and must enable qemu-binfmt.

So, what should we do about the problem? What's the ideal solution for
Guix? I don't have any experience with this subject matter.
Z572 March 27, 2024, 9:15 a.m. UTC | #2
Leo Famulari <leo@famulari.name> writes:

> Hi, thanks for these patches!
>
> On Tue, Mar 19, 2024 at 11:15:53PM +0800, Zheng Junjie wrote:
>> hello!. this patchset make `guix system vm --target=riscv64-linux-gnu' work.
>> and `guix system vm --system=riscv64-linux` also work, But there is a problem
>> that the qemu running with --system=riscv64-linux is also riscv architecture,
>> now you have to manually modify to use native qemu or the guix of qemu-system
>> on qemu-user is too slow. and must enable qemu-binfmt.
>
> So, what should we do about the problem? What's the ideal solution for
> Guix? I don't have any experience with this subject matter.

I've come up with two ideas:

1. Force the current system's qemu to be used, on x86_64 and -s
riscv64-linux, use x86_64's qemu.
2. add an environment variable, GUIX_QEMU, to allow the internal qemu
execution to be replaced

There may be other solutions, but I can't think of them yet.
Ludovic Courtès March 31, 2024, 9:03 p.m. UTC | #3
Hi,

Zheng Junjie <zhengjunjie@iscas.ac.cn> skribis:

>   bootloader: Add u-boot-qemu-riscv64-bootloader.
>   vm: use #$ for kernel-arguments.
>   vm: When target riscv64-linux, use u-boot-qemu-riscv64-bootloader.
>   gnu: linux-libre-riscv64-generic: add more options.
>   linux-initrd: don't add hid-apple module for riscv64-linux.
>   vm: add arguments to use virt machine type for qemu-riscv64.
>   vm: If not the same local architecture, don't enable kvm.

Applied, thanks!

Ludo’.