私は非常に単純なhello worldカーネルモジュールを作成しています。これは私がカーネル3.3.8にアップグレードするまで機能しました。今は...それは、終了時にinit
関数を呼び出し、exit
関数が初期化時に呼び出されています。カーネルモジュールのInit関数とExit関数が間違った順序で呼び出されています
ルートの@ cop4610::私は私の名前が正しい
// Needed for module definitions #include <linux/module.h> // Needed for initilization modules #include <linux/init.h> // Must declare some license MODULE_LICENSE("Dual BSD/GPL"); // Function to be called on insmod // Returns 0 on success static int __init mymod_init(void) { // Prints kernel alert. Check /var/log/syslog printk(KERN_ALERT "Module was loaded, this is the printk."); return 0; } // Function to be called on rmmod static void __exit mymod_exit(void) { // Prints kernel alert. Check /var/log/syslog printk(KERN_ALERT "Module was unloaded, this is the printk"); } // Register these functions module_init(mymod_init); module_exit(mymod_exit);
サンプル出力であることを確認作った/home/cop4610/Downloads/linux-3.3.8/mymodule#は mymodule.koルートをにinsmod @ cop4610:/home/cop4610/Downloads/linux-3.3.8/mymodule# tail/var/log/syslog Oct 12 10:08:20 cop4610カーネル:[633.567832] モジュールがアンロードされました。これはprintk
です。
次はこの幸せのビデオですライブライブ: http://www.youtube.com/watch?v=8aJNSpCd7as&feature=youtu.be
は、アップグレード後にモジュールの再構築作りましたか? –
私はカーネルのアップグレード以来、ゼロから再作成しました;) – Ben
は__initと__exitマクロは現在オプションですか? –