単純なカーネルモジュールをコンパイルしようとしています。 Makefileは次のとおりです。
obj-m += hello-l.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
エラーは次のとおりです。
make[1]: Entering directory "/usr/src/linux-4.3.0-sabayon"
Makefile:340: scripts/Kbuild.include: No such file or directory
Makefile:605: arch/x86/Makefile: No such file or directory
/bin/sh: ./scripts/gcc-goto.sh: No such file or directory
Makefile:778: scripts/Makefile.kasan: No such file or directory
Makefile:779: scripts/Makefile.extrawarn: No such file or directory
make[1]: *** No rule to make target "scripts/Makefile.extrawarn". Stop.
make[1]: Leaving directory "/usr/src/linux-4.3.0-sabayon"
Makefile:4: recipe for target "all" failed
make: *** [all] Error 2
Ubuntuマシンでこのコードをコンパイルできました。最も単純なコードでもコンパイルするために必要なファイルがsabayonマシンにないのはなぜですか?
回答:
回答№1は0次のコマンドは何を示していますか:
ls -al /usr/src/linux-4.3.0-sabayon
カーネル開発ヘッダーがSabayon Linuxマシンにインストールされていますか? Fedoraでは、rpmはkernel-develと呼ばれます。 Gentooの派生物であるUbuntuで、同様のパッケージがどのように呼び出されるのか、私にはわかりません。