「generic/build」がなくてmakeが中止してしまう際の解決方法

2018年7月8日Linux・Ubuntu TipsLinux,Ubuntu,Kernel

 

カーネルのアップデート後、ビルドをしようとしたら次のようなエラーがでて中止してしまった。

make -C /lib/modules/`uname -r`/build M=`pwd` V=0 clean
make[1]: *** /lib/modules/4.16.0-041600-generic/build: そのようなファイルやディレクトリはありません.  中止.
Makefile:15: ターゲット 'clean' のレシピで失敗しました
make: *** [clean] エラー 2

どうやらこれは、linux-headersがないために発生する模様。次の手順でこれらをインストール&配置してあげれば、正常に動作するようになる。

linux-headersをインストールする

使用しているカーネルに合ったlinux-headersをインストールする。

$ sudo apt-get install linux-headers-$(uname -r)

なお、最新のカーネルを使用している場合、aptリポジトリにまだ存在していない場合がある。その際は、インターネット上からダウンロードしdpkg等でインストールをしよう。

シンボリックリンクをはる

/build配下は上記でインストールしたlinux-headersを参照するようにしてあげる必要がある。
シンボリックリンクでこれを解決する。

$ sudo ln -s /usr/src/linux-headers-$(uname -r)/ /lib/modules/$(uname -r)/build

これで通常通り、makeが通るようになる。

Posted by webnetforce