カーネルモジュールだけをコンパイルする方法(Debian GNU/Linux)

なんかしばらくすると忘れていたのでメモを残しておく。
linux-source-2.6.32パッケージをインストールしておくと、/usr/src/linux-source-2.6.32.tar.bz2がインストールされる。これを展開して、カーネル全体ではなく、例えばKVMだけといった具合に必要なモジュールだけをコンパイルしたい。

# cd linux-source-2.6.32
# cp /boot/config-2.6.32-5-amd64 .config
# make oldconfig
# make modules_prepare
# cp /lib/modules/`uname -r`/build/Modules.symvers .

これで準備が完了。あとはKVMコンパイルする。

# cd arch/x86/kvm
# make -C /usr/src/linux-source-2.6.32 M=`pwd` modules
# make -C /usr/src/linux-source-2.6.32 M=`pwd` modules_install

(追記:2013-05-10)CentOSでも基本的に同じ。kernel-develパッケージにModules.symversが入っている。