Linux

2015年9月21日 (月)

dkmsの--kernelsourcedirは機能しない

dkmsの--kernelsourcedirは機能しない

この記事は残しておきますが、2.2.0.3-5で修正されたようです。回避策2のリンク先参照。

問題の説明

Debian GNU/Linux dkms version 2.2.0.3-2の話です。これを書いた時点での最新版です。

いろいろあって、カーネルソースが行方不明になるとdkmsはビルドに失敗します。そうするとDebianやUbuntuの場合は次のようなメッセージが出ます。

Error! Your kernel headers for kernel 4.1.7 cannot be found.
Please install the linux-headers-4.1.7 package,
or use the --kernelsourcedir option to tell DKMS where it's located

すでにlinux-headers-4.1.7パッケージはインストール済みで、さらに--kernelsourcedirを指定しても同じメッセージがでます。/usr/sbin/dksmの中を見ると、このメッセージを出すチェック部分には--kernelsourcedirの指定は効いていないようです。

回避策1

カーネルソース(ヘッダ)へは/lib/modules/kernel-version/buildと/lib/modules/kernel-version/sourceからシンボリックリンクが張られています。linux-headers-4.1.7パッケージのインストール先である/usr/src/linux-headers-4.1.7へのリンクに変更したら、正しく動きました。--kernelsourcedirは不要です。

元々のリンク先はカーネルをビルドしたディレクトリになっていました。linux-headersパッケージをインストールする時に張り直してくれないんだろうか? ビルドディレクトリを消してからヘッダをインストールすればいいのだろうか?

回避策2

ぐぐったらパッチがありました。4年前だよ。これの動作は未確認ですが。

その他のカテゴリー