当前位置: 技术问答>linux和unix
驱动程序头文件的问题
来源: 互联网 发布时间:2016-08-04
本文导语: 在Ubuntu下写驱动程序,代码如下: #include static __init int init_module(void) { printk(KERN_DEBUG "Hello, kernel!n"); return 0; } static __exit void clean_module(void) { printk(KERN_DEBUG "Good-bye kernel!n"); } module_init(init_module); module_exit(cl...
在Ubuntu下写驱动程序,代码如下:
make文件是这样写的:
gcc -D__KERNEL__ -I/usr/src/linux-source-2.6.24/include -DMODULE -O2 -c hello.c
#include
static __init int init_module(void)
{
printk(KERN_DEBUG "Hello, kernel!n");
return 0;
}
static __exit void clean_module(void)
{
printk(KERN_DEBUG "Good-bye kernel!n");
}
module_init(init_module);
module_exit(clean_module);
make文件是这样写的:
gcc -D__KERNEL__ -I/usr/src/linux-source-2.6.24/include -DMODULE -O2 -c hello.c
|
ldd3上有讲:
http://elinux.cn/book/ldd3/linuxdrive3-CHP-2-SECT-2.html
http://elinux.cn/book/ldd3/linuxdrive3-CHP-2-SECT-4.html
http://elinux.cn/book/ldd3/linuxdrive3-CHP-2-SECT-2.html
http://elinux.cn/book/ldd3/linuxdrive3-CHP-2-SECT-4.html
|
若是2.6的内核,则用以下命令编译:
make -C /opt/bcm97405/kernel/stblinux-2.6.18 M=`pwd`
#Makefile for 2.6 kernel module
obj-m := module_name_you_want.o
module_name_you_want-objs := hello.o other_C_code_name.o
好象头文件包含不全,你试试以下链接里的代码,若是2.4的内核参考:
参考: http://blog.csdn.net/wenxy1/archive/2007/09/19/1791043.aspx
2. 内核源码不全?
去 www.kernel.org 下载对应版本的内核源代码。
|
缺少头文件和许可证
#include // init和exit相关宏
MODULE_LICENSE("GPL");
make 文件
make -c /usr/src/linux-source-2.6.24 M=$(pwd) modules
#include // init和exit相关宏
MODULE_LICENSE("GPL");
make 文件
make -c /usr/src/linux-source-2.6.24 M=$(pwd) modules
|
驱动头文件是在Makefile要指定 KERNELDIR=这个变量赋值为你的内核源码树
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。