私はカーネルモジュールを構築しようとしています。私はここではFedora 25このようなファイルまたはディレクトリのエラーはありません。なにが問題ですか?
によ私のMakefileです:
obj-m += simple.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
これはsimple.cファイルです:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
/* This function is called when the module is loaded. */
int simple_init(void)
{
printk(KERN_INFO "Loading Module\n");
return 0;
}
/* This function is called when the module is removed. */
void simple_exit(void) {
printk(KERN_INFO "Removing Module\n");
}
/* Macros for registering module entry and exit points. */
module_init(simple_init);
module_exit(simple_exit);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Simple Module");
MODULE_AUTHOR("SGG");
私はmakeコマンドを使用した後に取得していますエラー:
make -C /lib/modules/4.11.3-202.fc25.x86_64/build M=/home/nubian/Downloads/ch02/ch2 modules
make[1]: *** /lib/modules/4.11.3-202.fc25.x86_64/build: No such file or directory. Stop.
Makefile:7: recipe for target 'default' failed
make: *** [default] Error 2
'/ lib/modules/4.11.3-202.fc25.x86_64/build'は、カーネルモジュールが構築されているディレクトリへのリンクでなければなりません。それは...ですか? http://elixir.free-electrons.com/linux/v4.9.33/source/README#L124 – stark
を参照してください。これは、kernel-develをインストールしようとしたときに表示されるメッセージです。最後のメタデータの有効期限チェック:1:09:07前の月Jun 19 12:26:54 2017. パッケージkernel-devel-4.11.5-200.fc25.x86_64は既にインストールされており、スキップしています。 –
カーネル '4.11.3-202.fc25'を実行していますが、' kernel-devel-4.11.5-200.fc25'パッケージをインストールしていることに注意してください。これらは一致しないので、ビルドは成功できません。パッケージを新しいカーネルに更新したが、まだシステムをリブートしていない可能性があるので、実際にはそのカーネルを実行していないでしょうか? – MadScientist