問題背景:
在使用 Xen dom0-less 的時候,會有一個問題產(chǎn)生: 可以用 'xl' 命令 boot 起來的 image,在 dom0-less 的情況下卻 boot 不起來。
是否有參考例子可以用 Petalinux 工具鏈幫助創(chuàng)建一個最小的 Xen 系統(tǒng)?
是否有參考例子可以指導(dǎo)創(chuàng)建一個可以在 dom0_less下boot 起來的最小 DomU Linux image?
解決方案:
用下面兩個 kconfig 選項(xiàng)在任何 ARM64 Linux kernel 下都可以生成 dom0less kernel:
在 Petalinux kernel 下只需簡單用下面這條命令來配置上述兩項(xiàng):
打開配置界面:
選擇這兩個:
關(guān)于 rootfs,任何的 INITRD ("Image Packaging Configuration" -> "Root filesystem type" -> "INITRD") 都可以,沒有特殊的要求。當(dāng)然,越小越好,所以本文建議盡量去掉 rootfs 中的你認(rèn)為不必要的東西,不需要 Xen 來支持dom0less domU rootfs 或 kernel,所以將其去掉以節(jié)省字節(jié)空間。
制作好 kernel 和 rootfs 后,就可以用 ImageBuilder 來創(chuàng)建一個可以 boot 的腳本 boot.scr
這里可以看到 dom0less DomU kernel 和 rootfs 的配置用了NUM_DOMUS=1, DOMU_KERNEL[0] 和 DOMU_RAMDISK[0],關(guān)于 MMC 的例子(也適用于其它的應(yīng)用)
從 Petalinux 2019.1開始且沒有修改 xen,比起手動編輯 xen.dtb,使用 ImageBuilder 更不容易出錯。
假設(shè) dom0 正在為您引導(dǎo),那么此次將跳過 dom0 的指令。假設(shè) “xen-Image” 是 dom0 的內(nèi)核,“xen-root .cpio.gz” 是 dom0 的 rootfs。(可以從預(yù)構(gòu)建的 2019.1 獲取 xen-root .cpio.gz,方法是: dd if=xen-root .cpio.gz。U-boot =xen-root .cpio.gz bs=64 skip=1)
另外,作為一種快捷方式,本文沒有提供關(guān)于如何使用 Petalinux 2019.1 構(gòu)建 Xen 2021.2 的說明,而是直接從預(yù)構(gòu)建的 2021.2 中獲取 Xen 管理程序二進(jìn)制文件:
然后修改下面的 ImageBuilder配置文件 "xen.cfg":
正如您所看到的,我們還需要提供 “Image-domU” 和 “xen-rootfs-domU.cpio.gz”,它們是 domU 的內(nèi)核和 ramdisk。
domU rootfs
===========
關(guān)于rootfs(用root權(quán)限):
增加:
需要這個的原因是一個 dom0less domU isttyAMA0 (不是 ttyPS0 )的控制臺,所以需要在 etc/inittab 中添加一個 getty ttyAMA0 行。
domU kernel
===========
對于 domU 內(nèi)核,以下步驟應(yīng)該是足夠的:
增加:
如果您對上面的命令有問題(已經(jīng)看到它在這里的幾個 Ubuntu 工作站崩潰),可以通過以下步驟實(shí)現(xiàn)相同的事情,在 sourcing 2019.1 tools/settings.sh 之后:
ImageBuilder
============
最后,我們
運(yùn)行 imagebuilder 如下:
生成 uboot 腳本 xen_boot.scr, 在 0xC00000 地址加載:
然后用如下命令開始運(yùn)行系統(tǒng):
之后可以看到兩個 domains 開始運(yùn)行了,并且可以通過 Ctrl-AAA 來在它們之間切換。
審核編輯:劉清
-
ARM
+關(guān)注
關(guān)注
134文章
9169瀏覽量
369224 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
596瀏覽量
27510 -
MMC
+關(guān)注
關(guān)注
0文章
77瀏覽量
30548 -
rootfs
+關(guān)注
關(guān)注
0文章
19瀏覽量
4677
原文標(biāo)題:開發(fā)者分享|嵌入式 Xen dom0-less 解決方案
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論