Debian系での話だけど,多分他のディストロでも同じことが言えるはず。
きっかけ
自分はこれまでzenカーネル(liquorix)というものを使っていたのだが,とある理由からそれを標準カーネルに切り替えたところ,今まで使っていたカーネルモジュール(主にデバイスドライバ類)が無いと怒られてしまった。
DKMS
Dynamic Kernel Module Support
の略。
linuxのソースツリーの外でカーネルモジュールを生成するための仕組みらしい。
/usr/src/hoge
にモジュールのソースを置いて,
# dkms add ${NAME}/${VERSION}
# dkms build ${NAME}/${VERSION}
# dkms install ${NAME}/${VERSION}
とすることで導入できる。 非常に簡単。
原因
標準カーネル向けのモジュールが(そもそも)ビルドされてなかった事が原因。
パッケージマネージャのDKMSのフックが,ヘッダーファイルの見つからないカーネル向けのビルドを無言でスキップしてくれるので気付くのが遅れた。
ちなみに当該カーネルのヘッダーファイルのパッケージを入れたら普通にビルドされた。