1

我正在关注 riscv.org 工具链构建指南。使用 qemu 运行本地构建的 rootfilesystem(带有busybox)和 Linux Kernel 进行仿真时,遇到以下错误:

使用本地构建的 root.bin 和内核映像运行 Qemu

danny@danny:~/test/riscv/work$ qemu-system-riscv -hda root-local.bin -kernel vmlinux-local -nographic

unassigned address was called?
with addr: 102000735F80006E
not implemented for riscv

使用 riscv.org 存储的 root.bin 和内核映像运行 Qemu

danny@danny:~/test/riscv/work$ qemu-system-riscv -hda root.bin -kernel vmlinux -nographic

[    0.150000] io scheduler cfq registered (default)
[    0.160000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.160000] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    0.160000] TCP: cubic registered
[    0.160000] htifbd: detected disk with ID 1
[    0.160000] htifbd: adding htifbd0
[    0.160000] VFS: Mounted root (ext2 filesystem) readonly on device 254:0.
[    0.160000] devtmpfs: mounted
[    0.160000] Freeing unused kernel memory: 64K (ffffffff80002000 - ffffffff80012000)
[    0.200000] EXT2-fs (htifbd0): warning: mounting unchecked fs, running e2fsck is recommended
#uname -a
Linux ucbvax 3.14.15-g4073e84-dirty #4 Sun Jan 11 07:17:06 PST 2015 riscv GNU/Linux

如果使用从 riscv.org 下载的 root.bin 和 vmlinux 进行 qemu 测试,看起来还可以,但看不到busybox 启动消息并且终端无法停止:

使用各种组合测试了 qemu,结果如下:

**root.bin       vmlinux      RESULT**
local-built    local-built  Unassigned address was called ....
Downloaded     Downloaded   Seem OK but without busybox starting bar
local-built    Downloaded   Kernelpanic-not syncing:No working init found     
Downloaded     local-built  Unassigned address was called .... 

我们正在启动一个项目,为世界各地的 Maker 构建和制造 RISCV 硅芯片,并现在测试工具链,以便将 Ubuntu Core 和 Android 移植到 RISCV。知道可能出了什么问题吗?

谢谢。

4

1 回答 1

1

QEMU 尚未完全更新以支持新的 RISC-V 特权规范(github issue)。更新目前正在进行中。

对于 ISA 模拟器,spike是一个不错的选择。它可能不具备 QEMU 的所有平台功能,但它可以作为 QEMU 更新完成时的起点。

于 2015-09-01T16:31:15.993 回答