成功在 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!