BB Black入门基础之内核的编译(下)编写简单的内核模块
[复制链接]
本帖最后由 lonerzf 于 2013-12-31 14:44 编辑
有网友说我之前发的帖子好像有点乱。我也看到了,不过我这能力有限,真不知道怎么改,帖子的中代码出现井号,那么下面的代码全没了,如果出现欧元符,文章之后面的文字全没了。这个问题嘛。。。改了几次,最后不想动了。我这里再分个帖吧。
这里编写一个简单的内核模块并安装。
咱们新建一个hello文件夹,里边放hello.c和Makefile,hello.c代码如下:
#include /* Needed by all modules */
#include /* Needed for KERN_INFO */
#include /* Needed for the macros */
static int __init hello_start(void)
{
printk(KERN_INFO "Loading hello.ko module...\n");
printk(KERN_INFO "Hello world\n");
return 0;
}
static void __exit hello_end(void)
{
printk(KERN_INFO "Goodbye: hello.ko exiting...\n");
}
module_init(hello_start);
module_exit(hello_end);
MODULE_DESCRIPTION("Example kernel module based on many sources on the internet.");
MODULE_AUTHOR("am0802");
MODULE_LICENSE("GPL");
Makefile 代码如下:
obj-m := hello.oPWD := $(shell pwd)KDIR := ${PWD}/..
default: make -C $(KDIR) SUBDIRS=$(PWD) modules
接着编译模块
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 复制代码
这一步完成之后可以得到hello.ko,将hello.ko复制到BB Black中去。
insmod hello.ko即可。
安装和查看内核模块,我是这么干的。不多说啦,见图就啥都明白了。
总结一下,就是先用depmod方式检查是否可以正确安装模块。通过之后insmod 安装模块,需要打印信息用命令查看。
这下内核编译算是告一段落了,接下来寒假可以学习驱动程序开发啦。