φ(.. )メモシテオコウ Linuxに新しいハイパーバイザが出たので試そうと思ったんだけど。。。

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するだけ。