为飞腾平台编译jailhouse

ops/2024/9/22 20:14:58/

需要基于上面成功编译的 Linux
https://www.yuque.com/kejilieren/mm0yge/upbx4gnx3aar6op5

  1. 创建 jailhouse 文件夹,从飞腾官方仓库克隆工程源码。
scilogyhunter@ubuntu:~/phytium-linux$ ls
phytium-linux-kernel
scilogyhunter@ubuntu:~/phytium-linux$ mkdir phytium-jailhouse
scilogyhunter@ubuntu:~/phytium-linux$ cd phytium-jailhouse/
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse$ git clone https://gitee.com/phytium_embedded/phytium-jailhouse.git
Cloning into 'phytium-jailhouse'...
remote: Enumerating objects: 1221, done.
remote: Counting objects: 100% (296/296), done.
remote: Compressing objects: 100% (141/141), done.
remote: Total 1221 (delta 148), reused 243 (delta 123), pack-reused 925
Receiving objects: 100% (1221/1221), 30.22 MiB | 1.56 MiB/s, done.
Resolving deltas: 100% (555/555), done.
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse$ ls
phytium-jailhouse
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse$ ls phytium-jailhouse/
pic  Readme.md  src
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse$ 

获取phytium-jailhouse源码,进入到目录phytium-jailhouse/src/jailhouse/下指定内核源码路径:

scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ ls
ci       CONTRIBUTING.md  Documentation  FAQ.md      include  Kbuild        Makefile     README.md  setup.py  tools
configs  COPYING          driver         hypervisor  inmates  LICENSING.md  pyjailhouse  scripts    TODO.md   VERSION
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ export KDIR=~/phytium-linux/phytium-linux-kernel
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ 

(注:~/phytium-linux/phytium-linux-kernel 是本地phytium-linux内核源码路径)

编译Jailhouse,在phytium-jailhouse/src/jailhouse/下执行make,同样,如果是在x86环境下编译,需要配置好aarch64交叉编译环境。

scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ ls
ci       CONTRIBUTING.md  Documentation  FAQ.md      include  Kbuild        Makefile     README.md  setup.py  tools
configs  COPYING          driver         hypervisor  inmates  LICENSING.md  pyjailhouse  scripts    TODO.md   VERSION
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ export ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ export KDIR=~/phytium-linux/phytium-linux-kernel
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ make

编译报错:

WARNING: Could not create the helper script to generate configurations on remote machines ("jailhouse-config-collect"). You need Python and the Mako library for it.

Jailhouse中编译python脚本需要提前安装python3、python3-pip和python3-mako软件包。

sudo apt-get install -y python3 python3-pip
sudo pip3 install mako

安装完python3、python3-pip和python3-mako软件包还是提示找不到"python",python 分两个不兼容的般本python2 和python3,之前的python 指python2,现在的python 对应python3。现在有python3 程序但没有python 程序。要使得python命令默认指向Python 3,可以安装python-is-python3包:

sudo apt-get install python-is-python3

重新编译则不再报错

make clean
make

(6)编译后的cell文件在jailhouse code的configs/arm64目录下,裸机程序在jailhouse code的inmates/demos/arm64目录下。

scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ ls
ci       CONTRIBUTING.md  Documentation  FAQ.md      include  Kbuild        Makefile       Module.symvers  README.md  setup.py  tools
configs  COPYING          driver         hypervisor  inmates  LICENSING.md  modules.order  pyjailhouse     scripts    TODO.md   VERSION
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ ls configs/arm64/
amd-seattle.c                 espressobin-inmate-demo.o         imx8mm.c                 jetson-tx1-inmate-demo.c       ls1028a-rdb-linux-demo.o             pine64-plus-linux-demo.cell
amd-seattle.cell              espressobin-linux-demo.c          imx8mm.cell              jetson-tx1-inmate-demo.cell    ls1028a-rdb.o                        pine64-plus-linux-demo.o
amd-seattle-inmate-demo.c     espressobin-linux-demo.cell       imx8mm-inmate-demo.c     jetson-tx1-inmate-demo.o       ls1043a-rdb.c                        pine64-plus.o
amd-seattle-inmate-demo.cell  espressobin-linux-demo.o          imx8mm-inmate-demo.cell  jetson-tx1-linux-demo.c        ls1043a-rdb.cell                     qemu-arm64.c
amd-seattle-inmate-demo.o     espressobin.o                     imx8mm-inmate-demo.o     jetson-tx1-linux-demo.cell     ls1043a-rdb-dpaa-linux-demo.c        qemu-arm64.cell
amd-seattle-linux-demo.c      foundation-v8.c                   imx8mm-linux-demo.c      jetson-tx1-linux-demo.o        ls1043a-rdb-dpaa-linux-demo.cell     qemu-arm64-inmate-demo.c
amd-seattle-linux-demo.cell   foundation-v8.cell                imx8mm-linux-demo.cell   jetson-tx1.o                   ls1043a-rdb-dpaa-linux-demo.o        qemu-arm64-inmate-demo.cell
amd-seattle-linux-demo.o      foundation-v8-inmate-demo.c       imx8mm-linux-demo.o      jetson-tx2.c                   ls1043a-rdb-inmate-demo.c            qemu-arm64-inmate-demo.o
amd-seattle.o                 foundation-v8-inmate-demo.cell    imx8mm.o                 jetson-tx2.cell                ls1043a-rdb-inmate-demo.cell         qemu-arm64-linux-demo.c
d2000.c                       foundation-v8-inmate-demo.o       imx8mn.c                 jetson-tx2-inmate-demo.c       ls1043a-rdb-inmate-demo.o            qemu-arm64-linux-demo.cell
d2000.cell                    foundation-v8-linux-demo.c        imx8mn.cell              jetson-tx2-inmate-demo.cell    ls1043a-rdb-linux-demo.c             qemu-arm64-linux-demo.o
d2000-inmate-demo.c           foundation-v8-linux-demo.cell     imx8mn-inmate-demo.c     jetson-tx2-inmate-demo.o       ls1043a-rdb-linux-demo.cell          qemu-arm64.o
d2000-inmate-demo.cell        foundation-v8-linux-demo.o        imx8mn-inmate-demo.cell  jetson-tx2.o                   ls1043a-rdb-linux-demo.o             rpi4.c
d2000-inmate-demo.o           foundation-v8.o                   imx8mn-inmate-demo.o     k3-am654-idk.c                 ls1043a-rdb.o                        rpi4.cell
d2000-inmate-rtos32.c         ft2004.c                          imx8mn-linux-demo.c      k3-am654-idk.cell              ls1046a-rdb.c                        rpi4-inmate-demo.c
d2000-inmate-rtos32.cell      ft2004.cell                       imx8mn-linux-demo.cell   k3-am654-idk-linux-demo.c      ls1046a-rdb.cell                     rpi4-inmate-demo.cell
d2000-inmate-rtos32.o         ft2004-inmate-demo.c              imx8mn-linux-demo.o      k3-am654-idk-linux-demo.cell   ls1046a-rdb-inmate-demo.c            rpi4-inmate-demo.o
d2000-inmate-rtos64.c         ft2004-inmate-demo.cell           imx8mn.o                 k3-am654-idk-linux-demo.o      ls1046a-rdb-inmate-demo.cell         rpi4-linux-demo.c
d2000-inmate-rtos64.cell      ft2004-inmate-demo.o              imx8mp.c                 k3-am654-idk.o                 ls1046a-rdb-inmate-demo.o            rpi4-linux-demo.cell
d2000-inmate-rtos64.o         ft2004-inmate-rtos32.c            imx8mp.cell              k3-am654-inmate-demo.c         ls1046a-rdb-linux-demo.c             rpi4-linux-demo.o
d2000-ivshmem-demo.c          ft2004-inmate-rtos32.cell         imx8mp-inmate-demo.c     k3-am654-inmate-demo.cell      ls1046a-rdb-linux-demo.cell          rpi4.o
d2000-ivshmem-demo.cell       ft2004-inmate-rtos32.o            imx8mp-inmate-demo.cell  k3-am654-inmate-demo.o         ls1046a-rdb-linux-demo.o             ultra96.c
d2000-ivshmem-demo.o          ft2004-inmate-rtos64.c            imx8mp-inmate-demo.o     k3-j7200-evm.c                 ls1046a-rdb.o                        ultra96.cell
d2000-linux-demo.c            ft2004-inmate-rtos64.cell         imx8mp-linux-demo.c      k3-j7200-evm.cell              macchiatobin.c                       ultra96-inmate-demo.c
d2000-linux-demo.cell         ft2004-inmate-rtos64.o            imx8mp-linux-demo.cell   k3-j7200-evm-inmate-demo.c     macchiatobin.cell                    ultra96-inmate-demo.cell
d2000-linux-demo.o            ft2004-linux-demo.c               imx8mp-linux-demo.o      k3-j7200-evm-inmate-demo.cell  macchiatobin-inmate-demo.c           ultra96-inmate-demo.o
d2000.o                       ft2004-linux-demo.cell            imx8mp.o                 k3-j7200-evm-inmate-demo.o     macchiatobin-inmate-demo.cell        ultra96-linux-demo.c
dts                           ft2004-linux-demo.o               imx8mq.c                 k3-j7200-evm-linux-demo.c      macchiatobin-inmate-demo.o           ultra96-linux-demo.cell
e2000q.c                      ft2004.o                          imx8mq.cell              k3-j7200-evm-linux-demo.cell   macchiatobin-linux-demo.c            ultra96-linux-demo.o
e2000q.cell                   hikey.c                           imx8mq-inmate-demo.c     k3-j7200-evm-linux-demo.o      macchiatobin-linux-demo.cell         ultra96.o
e2000q-inmate-demo.c          hikey.cell                        imx8mq-inmate-demo.cell  k3-j7200-evm.o                 macchiatobin-linux-demo.o            zynqmp-zcu102.c
e2000q-inmate-demo.cell       hikey-inmate-demo.c               imx8mq-inmate-demo.o     k3-j721e-evm.c                 macchiatobin.o                       zynqmp-zcu102.cell
e2000q-inmate-demo.o          hikey-inmate-demo.cell            imx8mq-linux-demo.c      k3-j721e-evm.cell              miriac-sbc-ls1046a.c                 zynqmp-zcu102-inmate-demo.c
e2000q-inmate-rtos32.c        hikey-inmate-demo.o               imx8mq-linux-demo.cell   k3-j721e-evm-inmate-demo.c     miriac-sbc-ls1046a.cell              zynqmp-zcu102-inmate-demo.cell
e2000q-inmate-rtos32.cell     hikey-linux-demo.c                imx8mq-linux-demo.o      k3-j721e-evm-inmate-demo.cell  miriac-sbc-ls1046a-inmate-demo.c     zynqmp-zcu102-inmate-demo.o
e2000q-inmate-rtos32.o        hikey-linux-demo.cell             imx8mq.o                 k3-j721e-evm-inmate-demo.o     miriac-sbc-ls1046a-inmate-demo.cell  zynqmp-zcu102-linux-demo-2.c
e2000q-inmate-rtos64.c        hikey-linux-demo.o                imx8qm.c                 k3-j721e-evm-linux-demo.c      miriac-sbc-ls1046a-inmate-demo.o     zynqmp-zcu102-linux-demo-2.cell
e2000q-inmate-rtos64.cell     hikey.o                           imx8qm.cell              k3-j721e-evm-linux-demo.cell   miriac-sbc-ls1046a-linux-demo.c      zynqmp-zcu102-linux-demo-2.o
e2000q-inmate-rtos64.o        imx8dxl.c                         imx8qm-inmate-demo.c     k3-j721e-evm-linux-demo.o      miriac-sbc-ls1046a-linux-demo.cell   zynqmp-zcu102-linux-demo.c
e2000q-linux-demo.c           imx8dxl.cell                      imx8qm-inmate-demo.cell  k3-j721e-evm.o                 miriac-sbc-ls1046a-linux-demo.o      zynqmp-zcu102-linux-demo.cell
e2000q-linux-demo.cell        imx8dxl-inmate-demo-aarch32.c     imx8qm-inmate-demo.o     ls1028a-rdb.c                  miriac-sbc-ls1046a.o                 zynqmp-zcu102-linux-demo.o
e2000q-linux-demo.o           imx8dxl-inmate-demo-aarch32.cell  imx8qm-linux-demo.c      ls1028a-rdb.cell               pine64-plus.c                        zynqmp-zcu102.o
e2000q.o                      imx8dxl-inmate-demo-aarch32.o     imx8qm-linux-demo.cell   ls1028a-rdb-inmate-demo.c      pine64-plus.cell
espressobin.c                 imx8dxl-inmate-demo.c             imx8qm-linux-demo.o      ls1028a-rdb-inmate-demo.cell   pine64-plus-inmate-demo.c
espressobin.cell              imx8dxl-inmate-demo.cell          imx8qm.o                 ls1028a-rdb-inmate-demo.o      pine64-plus-inmate-demo.cell
espressobin-inmate-demo.c     imx8dxl-inmate-demo.o             jetson-tx1.c             ls1028a-rdb-linux-demo.c       pine64-plus-inmate-demo.o
espressobin-inmate-demo.cell  imx8dxl.o                         jetson-tx1.cell          ls1028a-rdb-linux-demo.cell    pine64-plus-linux-demo.c
scilogyhunter@ubuntu:~/phytium-linux/phytium-jailhouse/phytium-jailhouse/src/jailhouse$ 

安装
将phytium-jailhouse 文件夹从执行编译的 X86 设备拷贝到 E2000q 开发板上,再在E2000q 开发板的phytium-jailhouse/src/jailhouse/目录下进行 ‘sudo make install’(如果是在 x86 上运行 jailhouse,则不需要这步,直接安装即可)


http://www.ppmy.cn/ops/44186.html

相关文章

C语言之指针详解(4)

文章目录 一、回调函数二、qsort使用举例2.1使用qsort函数排序整型数据2.2使用qsort函数排序结构体数据 三、qsort函数的模拟实现 一、回调函数 首先我们先来了解一下什么是回调函数 回调函数通俗来讲就是一个通过函数指针调用的函数。 如果你把函数的指针(地址&am…

计算机毕业设计Hadoop+Hive地震预测系统 地震数据分析可视化 地震爬虫 大数据毕业设计 Spark 机器学习 深度学习 Flink 大数据

2024 届本科毕业论文(设计) 基于Hadoop的地震预测的 分析与可视化研究 姓 名:____田伟情_________ 系 别:____信息技术学院___ 专 业:数据科学与大数据技术 学 号:__2011103094________ 指导…

[数据集][目标检测]RSNA肺炎检测数据集VOC+YOLO格式6012张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):6012 标注数量(xml文件个数):6012 标注数量(txt文件个数):6012 标注…

Ubuntu22.04之扩展并挂载4T硬盘(二百三十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Tensors张量操作

定义Tensor 下面是一个常见的tensor,包含了里面的数值,属性,以及存储位置 tensor([[0.3565,0.1826,0.6719],[0.6695,0.5364,0.7057]],dtypetorch.float32,devicecuda:0)Tensor的属…

AIGC行业的发展前景与市场需求

简介:探讨当前时机是否适合进入AIGC行业,考虑行业发展阶段和市场需求。 方向一:行业前景 AIGC(人工智能生成内容)行业是近年来随着人工智能技术的快速发展而兴起的一个新兴领域,它涉及到使用人工智能技术来…

掌握SQL注入检测:深入理解SQLMAP工具

引言 在网络安全领域,SQL注入是一个广泛存在的漏洞,它允许攻击者通过Web应用对数据库执行非法的SQL命令。SQLMAP是检测这类漏洞的顶尖工具之一。本文将深入探讨SQLMAP工具,从其基本介绍到高级使用技巧,帮助读者全面理解并有效运用…

【笔记】树(Tree)

一、树的基本概念 1、树的简介 之前我们都是在谈论一对一的线性数据结构,可现实中也有很多一对多的情况需要处理,所以我们就需要一种能实现一对多的数据结构--“树”。 2、树的定义 树(Tree)是一种非线性的数据结构&#xff0…