我两年来一直致力于的项目是在最新版本的 Linux 上启用 KVM(在 libvirt 和 virt-manager 的支持下),并在旧的但仍然不错的 ARM Chromebook 型号 xe303c12 上启用其内核。
我的目标是为armV7虚拟化FreeBSD 13.2。我几乎完成了这个项目。今天我使用的是 Ubuntu 22.04(但它也适用于 Devuan 5); KVM已启用; libvirt 9.7.0 和 virt-manager 运行良好。
我几乎已经能够虚拟化 FreeBSD 了。几乎,因为我发现了一个需要解决的问题,否则整个项目就会失败。 Ubuntu 只识别 1 GB 可用内存,但 ARM Chromebook 有 2 GB 内存焊接到主板上。因此,在我尝试使用旧内核(和 ubuntu)版本启用 KVM 的第一个项目的过渡过程中,1 GB 内存丢失了,您可以在这里找到:
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/#setting-up-the-boot-medium
我的项目使用更新的内核版本(5.4)和 ubuntu 版本(22.04)。我认为当我重新编译内核时,我丢失了一些在虚拟开放系统开发人员使用的 3.13 内核上启用的内核条目。遗憾的是,我不知道我的内核配置缺少哪些条目。
我已经检查了发出命令的操作系统的可用内存:
# free -m
如果我不恢复 1 GB 内存,我就无法虚拟化 FreeBSD,因为对于能够运行主机和来宾操作系统来说,只有 1 GB 的内存量非常小。
那么,您能帮我找到应该添加哪些内核条目才能获得所有 2 GB 可用内存吗?
虚拟开放系统提供了它自己的内核配置文件,我已将其保存在此处:
https://pastebin.ubuntu.com/p/j4B54TChKD/
使用他们的内核配置文件,我发现我总共有 2 GB 可用内存(我花了 400 MB 来加载 Linux,所以只剩下 600 MB;这不好。事实上,我遇到了很多 qemu 崩溃),但是如果我使用我的配置文件,操作系统启动时只有 1 GB。
我想共享两个内核配置文件:
- 内核 3.13 dmesg 日志文件可识别 2 GB,此处:
https://pastebin.ubuntu.com/p/gsw9SM4zY3/
- 内核 5.4 dmesg 日志文件仅识别 1 GB,此处:
https://pastebin.ubuntu.com/p/W6Mgj4jGg2/
我比较了 dmesg 日志(内核 3.13 与内核 5.4 配置文件),我认为这就是我只有 1 GB 可用内存的原因:
OF: fdt: 忽略内存范围 0x40000000 - 0x80000000
此行不存在于内核 3.13 dmesg 日志文件中,但存在于内核 5.4 dmesg 日志文件中。似乎涉及 dtb 文件生成。
你怎么认为 ?