😊
make[2]: *** /lib/modules/5.15.167.4-microsoft-standard-WSL2/build: No
状況
- Buildrootでカーネルモジュールをビルドしようとすると上記エラーが発生
- WSLを使用
原因
WSLを使っていること。
対策
WindowsマシンでやりたいならVMを使うのが手っ取り早い
(WSLでやる方法もあるにはあるらしい)
原因詳細
- カーネルモジュールのビルドにはカーネルのヘッダファイルが必要
- カーネルが定義している構造体やマクロを使うため
- カーネルのヘッダは、/lib/modules/<ver>/buildにある
- そのため、Makefileでは-C /lib/modules/$(uname -r)/buildでそこを指定してビルドしている
- WSLの場合は/lib/modules/<ver>/buildにヘッダはない
自前のパッケージならMakefileを書き換えてもいいが、第三者から提供されるモジュールの場合はそうもいかないよね
Discussion