成功在 Tiny6410开发板上加载hello world模块
今天弄了整整一天,终于在赖子同学的帮助下将最简单的hello world模块加载上去了,发次博客将过程简单的记录下。
首先在home下新建一个工作目录hello_mod,然后编辑hello_module.c文件(编辑的时候记得不要把代码敲错了,今天就出现了这个问题的^_^)
1. #include <linux/kernel.h>
2. #include <linux/module.h>
3.
4.
5. static int __init mini6410_hello_module_init(void)
6. {
7. "Hello, Mini6410 module is installed !\n");
8. return 0;
9. }
10.
11. static void __exit mini6410_hello_module_cleanup(void)
12. {
13. "Good-bye, Mini6410 module was removed!\n");
14. }
15.
16. module_init(mini6410_hello_module_init);
17. module_exit(mini6410_hello_module_cleanup);
18. MODULE_LICENSE("GPL");
然后就是写Makefile啦,驱动里面的Makefile跟应用程序里Makefile的内容方面还是有很多区别的⊙﹏⊙b,目前还木有搞清楚区别,还需要多多学习啊...
1. ARCH := arm
2. CROSS_COMPILE := arm-linux-
3.
4. #ifneq ($(KERNELRELEASE),)
5. obj-m :=module_test.o
6. #else
7. KDIR ?=/opt/FriendlyARM/mini6410/linux/linux-2.6.38
8. PWD := $(shell pwd)
9. default:
10. make -C $(KDIR) M=$(PWD) modules
11. #endif
12.
13. .PHONY:clean
14. clean:
15. rm -f *.ko *.order *.symvers *.o
注意ARCH 和CROSS_COMPILE 的填写。这里先留一个疑问,之前没有注释这三行(带#号的)直接在hello_mod里面make,结果没有错误,但是也没有生成*.ko文件。赖子同学重新帮我修改了Makefile,注释掉了三行(代码中带#的),再make就生成了*.ko文件,下到板子里insmod,OK!