私はカップル年のCプログラミング経験を持っています。今、私はLinuxカーネルモジュールの開発に取り組むことに決めました。しかし、私は始めることさえできません。私はubuntuでこのコードをコンパイルしました。Linuxカーネルモジュールをコーディングするには?
#include <linux/module.h>
int init_module(void){ printk("<1> hellp"); return 0;}
void cleanup_module(void){ printk("<1> bye");}
ただし、insmodは機能していません。エラーメッセージは「無効なモジュール形式」です。私はそれがバージョンの互換性にいくつかの問題かもしれないと思った。それを解決する良い方法はありません。だから、実際のカーネルモジュール開発者が私に助言を与えることができますか?私は学習を始める前にどのような環境を準備すべきですか?
ありがとうございます!
* "あなたは、__initと__exitマクロが含まれていない..." * - '__init'と' __exit'の使用が必要とされていません。起動が完了した後に解放できるテキストセクションのみを指定します。ドライバモジュールに必要なのは、 'module_init()'と 'module_exit()'を使って2つのエントリポイントの宣言です。 – sawdust