直接在Ubuntu下编译安装jaihouse

发布于:2024-05-24 ⋅ 阅读:(158) ⋅ 点赞:(0)

尝试直接在Ubuntu下编译安装运行jaihouse
github 上 jaihouse 仓库
https://github.com/siemens/jailhouse
参考:Raspberrypi 4B 运行 Jailhouse https://bbs.csdn.net/topics/615205697?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171206193616800225558691%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=171206193616800225558691&biz_id=&utm_medium=distribute.pc_chrome_plugin_search_result.none-task-community_post-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-615205697-null-null.nonecase&utm_term=jailhouse%E5%AE%9E%E9%99%85%E6%93%8D%E4%BD%9C&spm=1018.2226.3001.4187
x86下KVM启动Jailhouse
https://blog.csdn.net/weixin_40710708/article/details/109494163

运行环境

主机环境:inter i5-6500 物理机
操作系统:Ubuntu22.04

安装Ubuntu22.04 系统后,需要配置网络使其可连接 Internet,
安装 ssh 服务和 Git 程序。

sudo apt install openssh-server
sudo apt install git

安装主机环境 gcc 编译工具链(编译和运行都在 x86 本机,不需要交叉编译)

sudo apt-get install -y git make net-tools gcc-7 build-essential libncurses* libssl-dev bison flex
sudo apt-get install -y python3 python3-pip  mako  python-is-python3

下载jailhouse

git clone -b v0.12 https://github.com/siemens/jailhouse.git # 尤其注意下载0.12版本,master版本可能不行!
git clone https://github.com/siemens/jailhouse.git #下载最新版本

进入jailhouse 目录,使用 make 命令进行编译。编译报错提示编译工具链和内核编译版本不匹配。

scilogyhunter@ubuntu2204:~/jailhouse$ make
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  You are using:
  UPD     /home/scilogyhunter/jailhouse/hypervisor/include/generated/config.mk
  UPD     /home/scilogyhunter/jailhouse/hypervisor/include/generated/version.h
  CC [M]  /home/scilogyhunter/jailhouse/driver/cell.o
/bin/sh: 1: gcc-12: not found
make[3]: *** [scripts/Makefile.build:251: /home/scilogyhunter/jailhouse/driver/cell.o] Error 127
make[2]: *** [scripts/Makefile.build:488: /home/scilogyhunter/jailhouse/driver] Error 2
make[1]: *** [Makefile:2039: /home/scilogyhunter/jailhouse] Error 2
make: *** [Makefile:40: modules] Error 2
scilogyhunter@ubuntu2204:~/jailhouse$
scilogyhunter@ubuntu2204:~/jailhouse$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
scilogyhunter@ubuntu2204:~/jailhouse$

安装和主机系统版本一致的 gcc 版本。

scilogyhunter@ubuntu2204:~/jailhouse$ x86_64-linux-gnu-gcc-12
Command 'x86_64-linux-gnu-gcc-12' not found, but can be installed with:
sudo apt install gcc-12
scilogyhunter@ubuntu2204:~/jailhouse$ sudo apt install gcc-12
[sudo] password for scilogyhunter:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done

继续 make 编译

scilogyhunter@ubuntu2204:~/jailhouse$ make
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  You are using:           gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  CC [M]  /home/scilogyhunter/jailhouse/driver/cell.o
  CC [M]  /home/scilogyhunter/jailhouse/driver/main.o
  CC [M]  /home/scilogyhunter/jailhouse/driver/sysfs.o
  CC [M]  /home/scilogyhunter/jailhouse/driver/pci.o
  LD [M]  /home/scilogyhunter/jailhouse/driver/jailhouse.o
  CC      /home/scilogyhunter/jailhouse/configs/x86/apic-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/apic-demo.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/e1000-demo.o
  .
  .
  .
  GEN     /home/scilogyhunter/jailhouse/tools/jailhouse.8
  GEN     /home/scilogyhunter/jailhouse/tools/jailhouse-cell.8
  GEN     /home/scilogyhunter/jailhouse/tools/jailhouse-enable.8
  MODPOST /home/scilogyhunter/jailhouse/Module.symvers
ERROR: modpost: "ioremap_page_range" [/home/scilogyhunter/jailhouse/driver/jailhouse.ko] undefined!
ERROR: modpost: "__get_vm_area_caller" [/home/scilogyhunter/jailhouse/driver/jailhouse.ko] undefined!
ERROR: modpost: "lapic_timer_period" [/home/scilogyhunter/jailhouse/driver/jailhouse.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:144: /home/scilogyhunter/jailhouse/Module.symvers] Error 1
make[1]: *** [Makefile:1991: modpost] Error 2
make: *** [Makefile:40: modules] Error 2
scilogyhunter@ubuntu2204:~/jailhouse$

搜索解决方法,有人说 ubuntu 20.04,22.04均会出现这个问题,我的解决方法是换到18.04 -_-!
参考:https://blog.csdn.net/Inquisitor_/article/details/129253245

切换 V0.12 进行编译

scilogyhunter@ubuntu2204:~$ mkdir jailhousev12
scilogyhunter@ubuntu2204:~$ ls
Desktop    Downloads  jailhouse-images     jailhousev12  Pictures  snap       Videos
Documents  jailhouse  jailhouse-image.tar  Music         Public    Templates
scilogyhunter@ubuntu2204:~$ cd jailhousev12/
scilogyhunter@ubuntu2204:~/jailhousev12$ git clone -b v0.12 https://github.com/siemens/jailhouse.git
Cloning into 'jailhouse'...
remote: Enumerating objects: 25139, done.
remote: Counting objects: 100% (730/730), done.
remote: Compressing objects: 100% (225/225), done.
remote: Total 25139 (delta 506), reused 637 (delta 482), pack-reused 24409
Receiving objects: 100% (25139/25139), 5.48 MiB | 1.38 MiB/s, done.
Resolving deltas: 100% (17632/17632), done.
Note: switching to '92db71f257fabd3c08fa4b99498fa61a41ea831d'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

scilogyhunter@ubuntu2204:~/jailhousev12$ ls
jailhouse
scilogyhunter@ubuntu2204:~/jailhousev12$ cd jailhouse/
scilogyhunter@ubuntu2204:~/jailhousev12/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@ubuntu2204:~/jailhousev12/jailhouse$ make
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  You are using:           gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  UPD     /home/scilogyhunter/jailhousev12/jailhouse/hypervisor/include/generated/config.mk
  UPD     /home/scilogyhunter/jailhousev12/jailhouse/hypervisor/include/generated/version.h
  CC [M]  /home/scilogyhunter/jailhousev12/jailhouse/driver/cell.o
/home/scilogyhunter/jailhousev12/jailhouse/driver/cell.c: In function ‘jailhouse_cmd_cell_create’:
/home/scilogyhunter/jailhousev12/jailhouse/driver/cell.c:238:31: error: implicit declaration of function ‘cpu_down’; did you mean ‘cpu_dying’? [-Werror=implicit-function-declaration]
  238 |                         err = cpu_down(cpu);
      |                               ^~~~~~~~
      |                               cpu_dying
/home/scilogyhunter/jailhousev12/jailhouse/driver/cell.c:267:41: error: implicit declaration of function ‘cpu_up’ [-Werror=implicit-function-declaration]
  267 |                 if (!cpu_online(cpu) && cpu_up(cpu) == 0)
      |                                         ^~~~~~
cc1: all warnings being treated as errors
make[3]: *** [scripts/Makefile.build:251: /home/scilogyhunter/jailhousev12/jailhouse/driver/cell.o] Error 1
make[2]: *** [scripts/Makefile.build:488: /home/scilogyhunter/jailhousev12/jailhouse/driver] Error 2
make[1]: *** [Makefile:2039: /home/scilogyhunter/jailhousev12/jailhouse] Error 2
make: *** [Makefile:40: modules] Error 2
scilogyhunter@ubuntu2204:~/jailhousev12/jailhouse$

编译依旧报错。

在 Ubuntu18.04 上再次尝试编译安装 jailhouse

前面的环境准备还需要重新执行一次。
没有安装python 和 Mako 的话会报一个警告。

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

注意:使用 apt 安装 Mako 一直失败,需要先安装 python 机 pip,再 用 pip 来安装Mako。

下载最新版 jailhouse 失败,这里下载的 V0.12 版。进入 jailhouse,make 命令编译:

scilogyhunter@ubuntu1804:~/jailhouse$ make
  UPD     /home/scilogyhunter/jailhouse/hypervisor/include/generated/config.mk
  CC      /home/scilogyhunter/jailhouse/configs/x86/apic-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/apic-demo.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/e1000-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/e1000-demo.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/f2a88xm-hd3.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/f2a88xm-hd3.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/imb-a180.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/imb-a180.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/ioapic-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/ioapic-demo.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/ivshmem-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/ivshmem-demo.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/linux-x86-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/linux-x86-demo.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/pci-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/pci-demo.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/qemu-x86.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/qemu-x86.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/smp-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/smp-demo.cell
  CC      /home/scilogyhunter/jailhouse/configs/x86/tiny-demo.o
  OBJCOPY /home/scilogyhunter/jailhouse/configs/x86/tiny-demo.cell
  UPD     /home/scilogyhunter/jailhouse/hypervisor/include/generated/version.h
  CC [M]  /home/scilogyhunter/jailhouse/driver/cell.o
  CC [M]  /home/scilogyhunter/jailhouse/driver/main.o
  CC [M]  /home/scilogyhunter/jailhouse/driver/sysfs.o
  CC [M]  /home/scilogyhunter/jailhouse/driver/pci.o
  LD [M]  /home/scilogyhunter/jailhouse/driver/jailhouse.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/asm-defines.s
  GEN     /home/scilogyhunter/jailhouse/hypervisor/arch/x86/include/generated/asm/asm-defines.h
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/svm.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/amd_iommu.o
  AS      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/svm-vmexit.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/apic.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/dbg-write.o
  AS      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/entry.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/setup.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/control.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/mmio.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/iommu.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/paging.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/pci.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/i8042.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/vcpu.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/efifb.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/ivshmem.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/ioapic.o
  AR      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/lib-amd.a
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/vmx.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/vtd.o
  AS      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/vmx-vmexit.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/cat.o
  AR      /home/scilogyhunter/jailhouse/hypervisor/arch/x86/lib-intel.a
  LDS     /home/scilogyhunter/jailhouse/hypervisor/hypervisor.lds
  CC      /home/scilogyhunter/jailhouse/hypervisor/setup.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/printk.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/paging.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/control.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/lib.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/mmio.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/pci.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/ivshmem.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/uart.o
  CC      /home/scilogyhunter/jailhouse/hypervisor/uart-8250.o
  LD      /home/scilogyhunter/jailhouse/hypervisor/hypervisor-amd.o
  OBJCOPY /home/scilogyhunter/jailhouse/hypervisor/jailhouse-amd.bin
  LD      /home/scilogyhunter/jailhouse/hypervisor/hypervisor-intel.o
  OBJCOPY /home/scilogyhunter/jailhouse/hypervisor/jailhouse-intel.bin
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../alloc.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../cmdline.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../pci.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../printk.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../setup.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../string.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../test.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../uart-8250.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/cpu-features.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/excp.o
  AS      /home/scilogyhunter/jailhouse/inmates/lib/x86/header-64.o
  AS      /home/scilogyhunter/jailhouse/inmates/lib/x86/header-common.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/ioapic.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/irq.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/mem.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/pci.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/printk.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/setup.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/smp.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/timing.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/uart.o
  AR      /home/scilogyhunter/jailhouse/inmates/lib/x86/lib.a
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/cpu-features-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/excp-32.o
  AS      /home/scilogyhunter/jailhouse/inmates/lib/x86/header-common-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/irq-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/ioapic-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/printk-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/setup-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/uart-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../alloc-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../pci-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../string-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../cmdline-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../setup-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../test-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../uart-8250-32.o
  CC      /home/scilogyhunter/jailhouse/inmates/lib/x86/../printk-32.o
  AS      /home/scilogyhunter/jailhouse/inmates/lib/x86/header-32.o
  AR      /home/scilogyhunter/jailhouse/inmates/lib/x86/lib32.a
  CC      /home/scilogyhunter/jailhouse/inmates/demos/x86/tiny-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/demos/x86/tiny-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/demos/x86/tiny-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/demos/x86/apic-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/demos/x86/apic-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/demos/x86/apic-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/demos/x86/ioapic-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/demos/x86/ioapic-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/demos/x86/ioapic-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/demos/x86/32-bit-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/demos/x86/32-bit-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/demos/x86/32-bit-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/demos/x86/pci-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/demos/x86/pci-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/demos/x86/pci-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/demos/x86/e1000-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/demos/x86/e1000-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/demos/x86/e1000-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/demos/x86/../ivshmem-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/demos/x86/ivshmem-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/demos/x86/ivshmem-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/demos/x86/smp-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/demos/x86/smp-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/demos/x86/smp-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/tests/x86/mmio-access.o
  LD      /home/scilogyhunter/jailhouse/inmates/tests/x86/mmio-access-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/tests/x86/mmio-access.bin
  CC      /home/scilogyhunter/jailhouse/inmates/tests/x86/mmio-access-32.o
  LD      /home/scilogyhunter/jailhouse/inmates/tests/x86/mmio-access-32-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/tests/x86/mmio-access-32.bin
  CC      /home/scilogyhunter/jailhouse/inmates/tests/x86/sse-demo.o
  LD      /home/scilogyhunter/jailhouse/inmates/tests/x86/sse-demo-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/tests/x86/sse-demo.bin
  CC      /home/scilogyhunter/jailhouse/inmates/tests/x86/sse-demo-32.o
  LD      /home/scilogyhunter/jailhouse/inmates/tests/x86/sse-demo-32-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/tests/x86/sse-demo-32.bin
  CC      /home/scilogyhunter/jailhouse/inmates/tools/x86/linux-loader.o
  LD      /home/scilogyhunter/jailhouse/inmates/tools/x86/linux-loader-linked.o
  OBJCOPY /home/scilogyhunter/jailhouse/inmates/tools/x86/linux-loader.bin
  GEN     /home/scilogyhunter/jailhouse/pyjailhouse/pci_defs.py
  CC      /home/scilogyhunter/jailhouse/tools/jailhouse.o
  LD      /home/scilogyhunter/jailhouse/tools/jailhouse
  CC      /home/scilogyhunter/jailhouse/tools/ivshmem-demo.o
  LD      /home/scilogyhunter/jailhouse/tools/ivshmem-demo
  GEN     /home/scilogyhunter/jailhouse/tools/jailhouse-config-collect
  CC      /home/scilogyhunter/jailhouse/tools/jailhouse-gcov-extract.o
  LD      /home/scilogyhunter/jailhouse/tools/jailhouse-gcov-extract
  GEN     /home/scilogyhunter/jailhouse/tools/jailhouse.8
  GEN     /home/scilogyhunter/jailhouse/tools/jailhouse-cell.8
  GEN     /home/scilogyhunter/jailhouse/tools/jailhouse-enable.8
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/scilogyhunter/jailhouse/driver/jailhouse.mod.o
  LD [M]  /home/scilogyhunter/jailhouse/driver/jailhouse.ko
scilogyhunter@ubuntu1804:~/jailhouse$

终于编译成功了。
image.png

安装 jailhouse

scilogyhunter@ubuntu1804:~/jailhouse$ sudo make install
  Building modules, stage 2.
  MODPOST 1 modules
  INSTALL /home/scilogyhunter/jailhouse/driver/jailhouse.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
sign-file: certs/signing_key.pem: No such file or directory
  DEPMOD  5.3.0-28-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
install -m 644 hypervisor/jailhouse*.bin /lib/firmware
install -d -m 755 /usr/local/libexec/jailhouse
install -m 644 inmates/tools/x86/*.bin /usr/local/libexec/jailhouse
install jailhouse ivshmem-demo /usr/local/sbin
install jailhouse-config-collect jailhouse-cell-linux jailhouse-cell-stats jailhouse-config-create jailhouse-hardware-check /usr/local/libexec/jailhouse
install -d -m 755 /usr/local/share/jailhouse
install -m 644 jailhouse-config-collect.tmpl root-cell-config.c.tmpl /usr/local/share/jailhouse
install -m 644 jailhouse-completion.bash /usr/share/bash-completion/completions/jailhouse
install -d -m 755 /usr/local/share/man/man8
install -m 644 jailhouse.8 jailhouse-cell.8 jailhouse-enable.8 /usr/local/share/man/man8
python -m pip install --upgrade --force-reinstall  .
The directory '/home/scilogyhunter/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/scilogyhunter/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Processing /home/scilogyhunter/jailhouse
Installing collected packages: pyjailhouse
  Running setup.py install for pyjailhouse ... done
Successfully installed pyjailhouse-0.12
scilogyhunter@ubuntu1804:~/jailhouse$

哎,又报错了。

下载最新版 jailhouse,编译成功,安装也是报错,但少些。

scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$ sudo make install
  Building modules, stage 2.
  MODPOST 1 modules
  INSTALL /home/scilogyhunter/jailhouselast/jailhouse/driver/jailhouse.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
sign-file: certs/signing_key.pem: No such file or directory
  DEPMOD  5.3.0-28-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
install -m 644 hypervisor/jailhouse*.bin /lib/firmware
install -m 644 inmates/tools/x86/*.bin /usr/local/libexec/jailhouse
WARNING: Could not install Python-based helpers. You need Python and pip in order to install them.
install jailhouse demos/ivshmem-demo demos/cache-timings /usr/local/sbin
install -m 644 jailhouse-completion.bash /usr/share/bash-completion/completions/jailhouse
install -m 644 jailhouse.8 jailhouse-cell.8 jailhouse-enable.8 /usr/local/share/man/man8
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$ 

提示需要 python 和 pip,系统其实已安装python 和 pip,但指向的都是 2.7 版,不是 3.x 版。jailhouse 可能是需要3.x 版的 Python。

scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$ pip --version
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$ python --version
Python 2.7.17
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$ pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$ python3 --version
Python 3.6.9
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$

设置 Python 软连接为Python3,sudo 加 -H 参数再次执行

scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$ sudo -H make install
  Building modules, stage 2.
  MODPOST 1 modules
  INSTALL /home/scilogyhunter/jailhouselast/jailhouse/driver/jailhouse.ko
At main.c:160:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:72
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:79
sign-file: certs/signing_key.pem: No such file or directory
  DEPMOD  5.3.0-28-generic
Warning: modules_install: missing 'System.map' file. Skipping depmod.
install -m 644 hypervisor/jailhouse*.bin /lib/firmware
install -m 644 inmates/tools/x86/*.bin /usr/local/libexec/jailhouse
install jailhouse demos/ivshmem-demo demos/cache-timings /usr/local/sbin
install jailhouse-config-collect jailhouse-cell-linux jailhouse-cell-stats jailhouse-config-create jailhouse-config-check jailhouse-hardware-check /usr/local/libexec/jailhouse
install -m 644 jailhouse-config-collect.tmpl root-cell-config.c.tmpl /usr/local/share/jailhouse
install -m 644 jailhouse-completion.bash /usr/share/bash-completion/completions/jailhouse
install -m 644 jailhouse.8 jailhouse-cell.8 jailhouse-enable.8 /usr/local/share/man/man8
python3 -m pip install --upgrade --force-reinstall  .
Processing /home/scilogyhunter/jailhouselast/jailhouse
Installing collected packages: pyjailhouse
  Found existing installation: pyjailhouse 0.12
    Uninstalling pyjailhouse-0.12:
      Successfully uninstalled pyjailhouse-0.12
  Running setup.py install for pyjailhouse ... done
Successfully installed pyjailhouse-0.12
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$

还剩一个错误

安装内容

jailhouse 包相对位置 系统安装位置
driver/jailhouse.ko /lib/modules/5.3.0-28-generic/extra/driver/jailhouse.ko
hypervisor/jailhouse-amd.bin
hypervisor/jailhouse-intel.bin /lib/firmware/jailhouse-amd.bin
/lib/firmware/jailhouse-intel.bin
inmates/tools/x86/*.bin /usr/local/libexec/jailhouse
demos/ivshmem-demo
demos/cache-timings /usr/local/sbin
jailhouse-config-collect
jailhouse-cell-linux
jailhouse-cell-stats
jailhouse-config-create
jailhouse-config-check
jailhouse-hardware-check /usr/local/libexec/jailhouse
jailhouse-config-collect.tmpl
root-cell-config.c.tmpl /usr/local/share/jailhouse
jailhouse-completion.bash /usr/share/bash-completion/completions/jailhouse
jailhouse.8
jailhouse-cell.8
jailhouse-enable.8 /usr/local/share/man/man8
scilogyhunter@ubuntu1804:~/jailhouselast/jailhouse$ find / -name "*jailhouse*"
/usr/local/libexec/jailhouse
/usr/local/libexec/jailhouse/jailhouse-config-collect
/usr/local/libexec/jailhouse/jailhouse-cell-linux
/usr/local/libexec/jailhouse/jailhouse-config-check
/usr/local/libexec/jailhouse/jailhouse-cell-stats
/usr/local/libexec/jailhouse/jailhouse-config-create
/usr/local/libexec/jailhouse/jailhouse-hardware-check
/usr/local/share/jailhouse
/usr/local/share/jailhouse/jailhouse-config-collect.tmpl
/usr/local/share/man/man8/jailhouse.8
/usr/local/share/man/man8/jailhouse-enable.8
/usr/local/share/man/man8/jailhouse-cell.8
/usr/local/sbin/jailhouse
/usr/local/lib/python3.6/dist-packages/pyjailhouse-0.12.egg-info
/usr/local/lib/python3.6/dist-packages/pyjailhouse
/usr/local/lib/python2.7/dist-packages/pyjailhouse-0.12.egg-info
/usr/local/lib/python2.7/dist-packages/pyjailhouse
/usr/share/bash-completion/completions/jailhouse
/usr/src/linux-headers-5.3.0-28-generic/include/config/jailhouse
/usr/src/linux-headers-5.4.0-150-generic/include/config/jailhouse
/usr/src/linux-hwe-5.4-headers-5.4.0-150/arch/x86/include/asm/jailhouse_para.h
/usr/src/linux-headers-5.3.0-28/arch/x86/include/asm/jailhouse_para.h
/dev/jailhouse
/sys/class/misc/jailhouse
/sys/devices/virtual/misc/jailhouse
/sys/devices/jailhouse
/sys/bus/pci/drivers/jailhouse-pci-stub
/sys/module/jailhouse
/sys/module/jailhouse/drivers/pci:jailhouse-pci-stub

参考https://blog.csdn.net/ScilogyHunter/article/details/138890464 运行jailhouse。启动虚拟机时卡死,目前未能解决。


网站公告

今日签到

点亮在社区的每一天
去签到