文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>内核模块编程之helloworld

内核模块编程之helloworld

时间:2010-11-19  来源:Bean_lee

虽然没有完成任何功能,但是helloworld表明总算弄出个内核模块来,这么个简单功能,也搞了好久。腿疼在家养病,除了用红花油揉腿,用电吹风烤腿,就捣鼓这个了。希望能给后来人以帮助,少走点弯路吧。当然我也是菜鸟,希望高手多指教。
__________________________________________________________________hello.c______
  1 #include <linux/init.h>   2 #include <linux/kernel.h>   3 #include <linux/module.h>   4    5 static int hello_init(void)   6 {   7             printk("Hello! This is the helloworld module!\n");   8                 return 0;   9 }  10   11 static void hello_exit(void)  12 {  13             printk("Module exit! Bye Bye!\n");  14                 return;  15 }  16   17 module_init(hello_init);  18 module_exit(hello_exit);  19 MODULE_LICENSE("GPL");

___________________________________________________________________hello.c______
_________________________________________________________________Makefile______   1 obj-m := hello.o   2 KERNELBUILD :=/lib/modules/`uname -r`/build   3 all:   4   make -C $(KERNELBUILD) M=$(shell pwd) modules   5 clean:   6   rm -rf *.o  *.ko  *.mod.c .tmp_versions modules* Module* _________________________________________________________________Makefile______
Makefile注意: 1 名字为 Makefile,最初,我命名为makefile结果报错,没有Makefile。不知道别的同学有没有遇到 这个问题,我是ubuntu系统 2 Makefile第二行uname -r 两边不是单引号,是波浪号同一个键的那个字符。
执行make之后,看到 root@libin:~/project/hello_kernel# make make -C /lib/modules/`uname -r`/build M=/home/libin/project/hello_kernel modules make[1]: 正在进入目录 `/usr/src/linux-headers-2.6.32-26-generic'   Building modules, stage 2.   MODPOST 1 modules make[1]:正在离开目录 `/usr/src/linux-headers-2.6.32-26-generic' root@libin:~/project/hello_kernel# ll 总用量 92 drwxr-xr-x  3 libin libin  4096 2010-11-19 13:03 ./ drwxr-xr-x 16 libin libin  4096 2010-11-19 12:07 ../ -rw-r--r--  1 root  root    361 2010-11-19 12:39 hello.c -rw-r--r--  1 root  root   2683 2010-11-19 12:39 hello.ko -rw-r--r--  1 root  root    279 2010-11-19 12:39 .hello.ko.cmd -rw-r--r--  1 root  root    690 2010-11-19 12:39 hello.mod.c -rw-r--r--  1 root  root   1852 2010-11-19 12:39 hello.mod.o -rw-r--r--  1 root  root  22698 2010-11-19 12:39 .hello.mod.o.cmd -rw-r--r--  1 root  root   1416 2010-11-19 12:39 hello.o -rw-r--r--  1 root  root  22603 2010-11-19 12:39 .hello.o.cmd -rw-r--r--  1 root  root    178 2010-11-19 12:36 Makefile -rw-r--r--  1 root  root     49 2010-11-19 13:03 modules.order -rw-r--r--  1 root  root      0 2010-11-19 12:39 Module.symvers drwxr-xr-x  2 root  root   4096 2010-11-19 13:03 .tmp_versions/
执行 insmod ./hello.ko  执行dmesg可以看到最后一行显示 [13887.977542] Hello! This is the helloworld module! 同样执行 rmmod hello     执行dmesg可以看到最后一行显示: [13973.243671] Module exit! Bye Bye!
也可以去/var/log/messages去查看,同样有打印信息




相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载