需要基于上面成功编译的 Linux
https://www.yuque.com/kejilieren/mm0yge/upbx4gnx3aar6op5
- 创建 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,则不需要这步,直接安装即可)