Jailhouseという新しいハイパーバイザの紹介記事がLWNに載ってたのでちょっとためそかなーと思ったけど、READMEによるとLinux 3.12だとまだ動かせないみたいでした\(^o^)/
Currently it requires kvm.git, next branch on the host (in order to get support for nested unrestricted guest mode). 3.13 is expected to include all necessary feature for this test.
それでも一応メモだけしておくと、makeでコンパイルエラーが出るのでカレントディレクトリもインクルードパスに追加する必要あり。
masami@saga:~/codes/jailhouse (master)$ make make -C /lib/modules/`uname -r`/build SUBDIRS=`pwd` modules make[1]: Entering directory '/home/masami/linux-kernel' CC [M] /home/masami/codes/jailhouse/main.o /home/masami/codes/jailhouse/main.c:27:23: fatal error: jailhouse.h: No such file or directory #include <jailhouse.h> ^ compilation terminated. scripts/Makefile.build:308: recipe for target '/home/masami/codes/jailhouse/main.o' failed make[2]: *** [/home/masami/codes/jailhouse/main.o] Error 1 Makefile:1228: recipe for target '_module_/home/masami/codes/jailhouse' failed make[1]: *** [_module_/home/masami/codes/jailhouse] Error 2 make[1]: Leaving directory '/home/masami/linux-kernel' Makefile:27: recipe for target 'modules' failed make: *** [modules] Error 2
こんな感じで。
masami@saga:~/codes/jailhouse (master)$ git diff diff --git a/Makefile b/Makefile index b693c93..821ce8e 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,8 @@ subdir-y := hypervisor config inmate obj-m := jailhouse.o ccflags-y := -I$(src)/hypervisor/arch/$(SRCARCH)/include \ - -I$(src)/hypervisor/include + -I$(src)/hypervisor/include \ + -I$(src) jailhouse-y := main.o
これでカーネルモジュール等ができるので次にユーザーランドのツール(jailhouseコマンド)を作る。これはtoolsディレクトリに移動して普通にmakeするだけ。