qemu-system-mips:可用内存比配置小得多

问题描述 投票:0回答:1

我正在 Ubuntu 24.04 主机上运行 Debian Buster 安装,使用 qemu-system-mips。

机器开始使用

qemu-system-mips -M malta \
-m size=2G -hda hda.img \
-kernel vmlinux-4.19.0-21-4kc-malta \
-initrd initrd.img-4.19.0-21-4kc-malta \
-append "root=/dev/sda1 console=ttyS0 nokaslr" \
-nic "user,model=e1000,hostfwd=tcp::5555-:22" \
-nographic

到目前为止启动良好。请注意,我通过“-m size=2G”为来宾请求 2GB 初始(和总)内存。然而,对于客人来说,只有一小部分可用。来自/var/log/kern.log:

Oct 10 16:42:04 mipsvm kernel: [    0.000000] Memory: 223980K/262144K available (7436K kernel code, 547K rwdata, 1616K rodata, 1844K 

以及来自 /proc/meminfo:

MemTotal:         248648 kB
MemFree:           19680 kB
MemAvailable:      82624 kB

如何使整个 2GB 可供来宾操作系统使用?

memory mips qemu debian-buster
1个回答
0
投票

MIPS Malta 板将其 RAM 放置在地址映射中的多个位置:

  • 地址 0 是前 256MB RAM 的别名
  • 地址 0x8000_0000 拥有所有 RAM,最多可使用 2GB
  • 地址 0x2000_0000 是 RAM 偏移量 0x2000_0000 的别名

访客日志表明它只查看地址 0,并且不适用于地址 0x8000_0000 处的 RAM。你的问题不在于 QEMU 端,而在于 guest。

我认为“忽略 256MB 以上的任何内容”是内核默认设置。 QEMU 的马耳他模拟中添加了对 2GB RAM 的支持的提交消息表示,您可以通过在“append”字符串中添加类似的内容来明确告诉 Linux RAM 在哪里:

mem=256m@0x0 mem=256m@0x90000000 mem=1536m@0x20000000

我认为

mem=256m@0x0 mem=1792m@0x90000000

也可以。

https://people.debian.org/~aurel32/qemu/mips/README.txt 表示这仅适用于 64 位 MIPS 内核,因此您的 32 位 MIPS 内核可能会被 256MB 困住了。

© www.soinside.com 2019 - 2024. All rights reserved.