私はLinuxカーネルモジュールプログラミングを学んでいます。私はBeaglebone blackを使っています。シンプルな「Hello World」アプリケーションとmakefileを作りました。私は自分のメークファイルをチェックしています。しかし、私が 'make'に命令すると、次のエラーが表示されます。Linuxカーネルモジュールプログラミングのコンパイルエラー
[email protected]:/home/sonu# make
make: Warning: File `Makefile' has modification time 2.2e+02 s in the future
make -C /lib/modules/3.8.13-bone70/build M=/home/sonu modules
make: *** /lib/modules/3.8.13-bone70/build: No such file or directory. Stop.
make: *** [all] Error 2
私はいくつかのウェブサイトを参照しましたが、しかし、彼らはすべて私にパッケージのインストールを依頼しています。私は初心者なので。私はBeagleboneでイーサネットを使ってインターネット接続を設定して起動する方法も知らない。私が立ち往生しているのを助けてください。前もって感謝します。
コードは次のとおりです。
#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/init.h>
static int __init hello(void)
{
printk(KERN_INFO "Hello World!");
return 0;
}
static void __exit hello_cleanup(void)
{
printk(KERN_INFO "Bye");
}
module_init(hello);
module_exit(hello_cleanup);
Makefileがある:あなたがインストールしていないカーネルバージョンのためにあなたのモジュールをビルドしようとしていることが表示されます
obj-m+=Hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
$(CC) Hello.c -o test
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
rm test
あなたは助けを求めていますが、Makefile自体には何も与えていません(正しいことは*おそらく間違っていると仮定します)。また、コードもありません。 – tambre
@tambre私はメイクファイルを何回もクロスチェックしました。私はそれに欠陥がないと確信しています。あなたの便宜のために、私はコードを添付しました。それを通り抜けてください。 –
何も問題がないと思っても、それを添付することをお勧めします。 何が起きているのかを理解するのに役立ちます。さて、 '/ lib/modules/3.8.13-bone70/build'ディレクトリは存在しますか? – tambre