0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

用Petalinux工具鏈幫助創(chuàng)建一個最小的Xen系統(tǒng)

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 作者:AMD 賽靈思開發(fā)者 ? 2022-10-14 10:19 ? 次閱讀

問題背景:

在使用 Xen dom0-less 的時候,會有一個問題產(chǎn)生: 可以用 'xl' 命令 boot 起來的 image,在 dom0-less 的情況下卻 boot 不起來。

是否有參考例子可以用 Petalinux 工具鏈幫助創(chuàng)建一個最小的 Xen 系統(tǒng)?

是否有參考例子可以指導創(chuàng)建一個可以在 dom0_less下boot 起來的最小 DomU Linux image?

解決方案:

用下面兩個 kconfig 選項在任何 ARM64 Linux kernel 下都可以生成 dom0less kernel:

4e77a700-4aef-11ed-a3b6-dac502259ad0.png

在 Petalinux kernel 下只需簡單用下面這條命令來配置上述兩項:

4e8b44cc-4aef-11ed-a3b6-dac502259ad0.png

打開配置界面:

4e9fcb2c-4aef-11ed-a3b6-dac502259ad0.png

選擇這兩個:

4ebf9588-4aef-11ed-a3b6-dac502259ad0.png

關于 rootfs,任何的 INITRD ("Image Packaging Configuration" -> "Root filesystem type" -> "INITRD") 都可以,沒有特殊的要求。當然,越小越好,所以本文建議盡量去掉 rootfs 中的你認為不必要的東西,不需要 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],關于 MMC 的例子(也適用于其它的應用)

從 Petalinux 2019.1開始且沒有修改 xen,比起手動編輯 xen.dtb,使用 ImageBuilder 更不容易出錯。

假設 dom0 正在為您引導,那么此次將跳過 dom0 的指令。假設 “xen-Image” 是 dom0 的內(nèi)核,“xen-root .cpio.gz” 是 dom0 的 rootfs。(可以從預構建的 2019.1 獲取 xen-root .cpio.gz,方法是: dd if=xen-root .cpio.gz。U-boot =xen-root .cpio.gz bs=64 skip=1)

另外,作為一種快捷方式,本文沒有提供關于如何使用 Petalinux 2019.1 構建 Xen 2021.2 的說明,而是直接從預構建的 2021.2 中獲取 Xen 管理程序二進制文件:

4ee19228-4aef-11ed-a3b6-dac502259ad0.png

然后修改下面的 ImageBuilder配置文件 "xen.cfg":

4f03dacc-4aef-11ed-a3b6-dac502259ad0.png

正如您所看到的,我們還需要提供 “Image-domU” 和 “xen-rootfs-domU.cpio.gz”,它們是 domU 的內(nèi)核和 ramdisk。

domU rootfs
===========
關于rootfs(用root權限):

4f3130f8-4aef-11ed-a3b6-dac502259ad0.png

增加:

4f620a5c-4aef-11ed-a3b6-dac502259ad0.png

需要這個的原因是一個 dom0less domU isttyAMA0 (不是 ttyPS0 )的控制臺,所以需要在 etc/inittab 中添加一個 getty ttyAMA0 行。

domU kernel
===========
對于 domU 內(nèi)核,以下步驟應該是足夠的:

4f7eed20-4aef-11ed-a3b6-dac502259ad0.png

增加:

4f9f5402-4aef-11ed-a3b6-dac502259ad0.png

如果您對上面的命令有問題(已經(jīng)看到它在這里的幾個 Ubuntu 工作站崩潰),可以通過以下步驟實現(xiàn)相同的事情,在 sourcing 2019.1 tools/settings.sh 之后:

4fb34d0e-4aef-11ed-a3b6-dac502259ad0.png

ImageBuilder
============
最后,我們

運行 imagebuilder 如下:

4fe7aebe-4aef-11ed-a3b6-dac502259ad0.png

生成 uboot 腳本 xen_boot.scr, 在 0xC00000 地址加載:

500f2c78-4aef-11ed-a3b6-dac502259ad0.png

然后用如下命令開始運行系統(tǒng):

503002d6-4aef-11ed-a3b6-dac502259ad0.png

之后可以看到兩個 domains 開始運行了,并且可以通過 Ctrl-AAA 來在它們之間切換。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9027

    瀏覽量

    366493
  • Linux系統(tǒng)

    關注

    4

    文章

    590

    瀏覽量

    27318
  • MMC
    MMC
    +關注

    關注

    0

    文章

    76

    瀏覽量

    30443
  • rootfs
    +關注

    關注

    0

    文章

    19

    瀏覽量

    4657

原文標題:開發(fā)者分享|嵌入式 Xen dom0-less 解決方案

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何在PetaLinux流程外創(chuàng)建模塊

    PetaLinux強大的實用工具,支持設計人員輕松創(chuàng)建 Linux 鏡像并在自己的目標平臺上運行。
    發(fā)表于 09-28 11:01 ?1057次閱讀

    【Artix-7 50T FPGA試用體驗】Petalinux安裝教程

    。然后在/opt目錄下創(chuàng)建petalinux安裝路徑/opt/pkg/petalinux。最后進行p
    發(fā)表于 12-03 19:12

    【Artix-7 50T FPGA試用體驗】基于官方BSP的PetaLinux工程創(chuàng)建

    是BSP文件的存放路徑,由于本人利用虛擬機開發(fā),所以路徑是共享文件夾。這樣就創(chuàng)建PetaLinux的工程(硬件工程在BSP中),可以開始Linux軟件開發(fā)。其中工程文件結(jié)構如下:
    發(fā)表于 12-14 19:04

    petalinux是否可以PLB總線支持Microblaze系統(tǒng)

    創(chuàng)建項目。然后我成功地遷移了petalinux并且運行良好。 現(xiàn)在PLB總線用于EDK9.2。當我編譯linux的內(nèi)核時,會出現(xiàn)
    發(fā)表于 05-08 08:19

    如何在petalinux上運行精靈?

    你好,我petalinux配置PL比特流創(chuàng)建BOOT.bin。我使用xsdk創(chuàng)建linu
    發(fā)表于 05-01 14:45

    petalinux項目創(chuàng)建錯誤顯示參數(shù)無效的解決辦法?

    你好我嘗試使用安裝在ubuntu機器上的petalinux 2016.3創(chuàng)建項目。dev @ Archeopteryx:?/ petalinx2016-3 $
    發(fā)表于 05-07 07:07

    無法下載petalinux怎么辦

    適用于所有操作系統(tǒng),但我無法安裝?我也無法下載petalinux,所以租賃幫助我通過些說明如何下載和安裝petalinux以及如何在ubi
    發(fā)表于 05-22 15:03

    怎樣使用petalinux工具去制作linux系統(tǒng)

    基于xilinx zcu102開發(fā)板我的開發(fā)板的xilinx zcu102開發(fā)板,使用xilinx公司提供的petalinux工具制作linux系統(tǒng)。當linux
    發(fā)表于 12-15 09:04

    基于Ubuntu的PetaLinux安裝教程

    PetalLinux是Xilinx公司推出的嵌入式Linux開發(fā)工具,專門針對Xilinx公司的FPGA SoC芯片和開發(fā)板,用戶可以在PetaLinux工具幫助下進行完整的開發(fā)流程
    的頭像 發(fā)表于 07-04 07:32 ?6475次閱讀

    Docker 構建 PetaLinux 開發(fā)環(huán)境應用教程

    0. 背景 0.1 PetaLinux 是什么 PetaLinux 是 Xilinx 推出的用于在其自家 SoC 上構建嵌入式 Linux 的工具集,集成了編譯、調(diào)試、仿真等眾多
    發(fā)表于 11-15 11:24 ?2333次閱讀

    Petalinux BSP安裝與構建過程

    ,或者是qemu系統(tǒng)仿真環(huán)境。 下面是BSP的安裝步驟: 將目錄切換到你將創(chuàng)建petalinux工程的目錄下。例:如果你想要在/hom
    發(fā)表于 11-15 11:50 ?7903次閱讀

    如何在Petalinux創(chuàng)建Linux內(nèi)核模塊?

    創(chuàng)建內(nèi)核模塊 Petalinux可以幫助工程師簡化內(nèi)核模塊的創(chuàng)建工作。在petalinux工程目錄下,使用命令“
    的頭像 發(fā)表于 03-02 11:10 ?4288次閱讀

    如何創(chuàng)建PetaLinux項目

    電子發(fā)燒友網(wǎng)站提供《如何創(chuàng)建PetaLinux項目.zip》資料免費下載
    發(fā)表于 11-01 14:34 ?1次下載
    如何<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>PetaLinux</b>項目

    PetaLinux工具文檔:參考指南

    電子發(fā)燒友網(wǎng)站提供《PetaLinux工具文檔:參考指南.pdf》資料免費下載
    發(fā)表于 09-15 11:48 ?0次下載
    <b class='flag-5'>PetaLinux</b><b class='flag-5'>工具</b>文檔:參考指南

    PetaLinux工具文檔

    電子發(fā)燒友網(wǎng)站提供《PetaLinux工具文檔.pdf》資料免費下載
    發(fā)表于 09-15 10:43 ?0次下載
    <b class='flag-5'>PetaLinux</b><b class='flag-5'>工具</b>文檔