パッケージ固有のカーネルモジュールをオートビルドする

パッケージによってはカーネルモジュールをカーネルソースとは別に作成するものがあります。たとえば virtualbox とか。 virtualbox では vboxdrv とか vboxnetflt とかのモジュールを作って使いますよね。パッケージのソースだけではなくカーネルソースも元にパッケージ固有のモジュールを組み立てるやつです。

そんなパッケージ固有のカーネルモジュールは、カーネルのバージョンを変えたらその都度リビルドする必要があります。カーネルをバージョンアップしたあとなどに vboxdrv の読み込みに失敗しましたというようなメッセージが出たら、モジュールのリビルドが必要な可能性大です。

ただ、カーネルのバージョンを変えたときに実際にはどのパッケージをリビルドすればいいのか。これはわかりにくいのも確かです。そんなときに役立つパッケージがこれ。

sys-kernel/module-rebuild
A utility to rebuild any kernel modules which you have installed


名前も効果もそのまんまです。


インストール

$ sudo emerge -v module-rebuild

普通にマージするだけ。

リストアップする

$ sudo module-rebuild list

∗∗ Packages which I will emerge are:
	=app-emulation/virtualbox-modules-3.1.4
	=x11-drivers/ati-drivers-10.2

list オプションをつけるとリストアップしてくれます。 list であっても実行には root 権限が必要です。

実際にリビルドする

$ sudo module-rebuild rebuild

rebuild オプションをつけるとコンパイルを行います。実際には emerge (というか ebuild) が走ります。