我想在我的旧 ARM Chromebook 笔记本电脑上启用 KVM 虚拟化,该笔记本电脑基于 Exynos5250 Arm 32 位 cpu 又名 Snow,型号为 xe303c12。我做的第一件事是将下面的图像直接添加到 SD 卡上:
它很有魅力,但是 kvm 被禁用了。因此,我开始寻找一个好的文档来了解如何启用 kvm,我发现了这个:
http://www.virtualopensystems.com/en/solutions/guides/kvm-on-chromebook/
我已按照所有说明进行操作,并且它有效,但仅适用于 Ubuntu 13.04 和 14.04。更多升级的ubuntu版本会带来很多问题并且无法运行。
所以,我想到了一个新的想法。如何按照教程中的说明在第一个分区上安装虚拟开放系统“未经验证的 u-boot”,并且,我可以将 grub 与安装的内核链接起来,而不是在原始 u-boot 之后启动另一个 u-boot由“hexdump0815”创建的 ubuntu jammy iso 映像?老实说我不确定hexdump0815是否使用了grub,但稍后我会解释这一点。
无论如何,我通过阅读这里得到了这个想法:
所以,现在,我要解释一下我的弗兰肯斯坦 SD 卡上的分区内容是什么。
1) /dev/sdh1 = 未知 = 16 MB。我通过执行以下操作创建了此分区:
$ dd if=nv_uboot-snow.kpart of=/dev/sdh1
我在哪里获得文件 nv_uboot-snow.kpart ?从这里 :
http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/nv_u-boot-snow.kpart
2) /dev/sdh2 = 未知 = 16 MB。该分区是通过执行以下脚本创建的:
$ ./scripts/sdcard.sh /dev/sdh
3) /dev/sdh3 = ext2 = 启动
在分区 /dev/sdh3 内,我复制了以下文件和文件夹(取自 hexdump0815“chromebook_snow-armv7l-jammy.img.gz”文件:
a) dtb-5.18.1-stb-cbe+ = 目录
b) extlinux = 目录
c) 额外 = 目录
d) config.5.18.1-stb-cbe+ :文件
e) initrd.img-5.18.1-stb-cbe+ :文件
f) System.map-5.18.1-stb-cbe+ :文件
g) vmlinux.kpart-5.18.1-stb-cbe+:文件
h) zImage-5.18.1-stb.cbe+:文件
在目录“dtb-5.18.1-stb-cbe+”内有以下文件:
a) exynos5250-snow.dtb
b) exynos5250-snow-rev5.dtb
c) exynos5250-spring.dtb
在“extlinux”目录中,有以下文件:
a) extlinux.conf :包含以下内容:
TIMEOUT 30
DEFAULT linux-snow-rev4
MENU TITLE snow chromebook boot options
# rev4 snow chromebook
LABEL linux-snow-rev4
MENU LABEL linux rev4 snow
LINUX ../zImage-5.18.1-stb-cbe+
INITRD ../initrd.img-5.18.1-stb-cbe+
FDT ../dtb-5.18.1-stb-cbe+/exynos5250-snow.dtb
APPEND console=tty1 root=LABEL=rootpart ro rootwait net.ifnames=0 ipv6.disable=1 fsck.repair=yes noresume
# rev5 snow chromebook
LABEL linux-snow-rev5
MENU LABEL linux rev5 snow
LINUX ../zImage-5.18.1-stb-cbe+
INITRD ../initrd.img-5.18.1-stb-cbe+
FDT ../dtb-5.18.1-stb-cbe+/exynos5250-snow-rev5.dtb
APPEND console=tty1 root=LABEL=rootpart ro rootwait net.ifnames=0 ipv6.disable=1 fsck.repair=yes noresume
# spring chromebook - untested
LABEL linux-spring
MENU LABEL linux spring
LINUX ../zImage-5.18.1-stb-cbe+
INITRD ../initrd.img-5.18.1-stb-cbe+
# rev4 snow chromebook
FDT ../dtb-5.18.1-stb-cbe+/exynos5250-spring.dtb
APPEND console=tty1 root=LABEL=rootpart ro rootwait net.ifnames=0 ipv6.disable=1 fsck.repair=yes noresume
在额外的目录中有以下文件:
a) 内核-chromebook_snow-legacy.tar.gz
b) uboot.kpart.cbe-snow
c) uboot.kpart.cbe-snow-alternative
d) uboot.kpart.cbe-spring
4) /dev/sdh4 :在这里我复制了 hexdump0818 准备的 jammy 用户区的所有文件。
就这样。我想做的是,是否以及如何使用 grub 或任何能够启动 hexdump0815 jammy iso 映像的机制来链接加载安装在分区 /dev/sdh1 上的“未经验证的 u-boot”。
正如我重复的那样,“未经验证的 u-boot”是由名为“build.sh”的脚本生成的,该脚本存储在 u-boot/scripts 目录中。如果我想做的事情是不可能的,你能向我解释一下如何在我的 chromebook 手臂上启用 kvm,使用最新的内核吗?我已经知道内核 5.7 上已经不再支持 ARM 32 上的 kvm,但对我来说使用低于 5.7 的内核是可以的。我已经为这个项目工作了好几个月了。我希望看到一些进展。谢谢。
PS:前几天我成功编译了内核版本。 5.4.244,启用所有 kvm 标志和 exynos 5250-snow.dtb 文件。