如何给Linux内核添加自己的头文件?

sherlock_lai 2008-05-08 03:54:31
我写了一个字符驱动模块(比较大),在这个驱动模块中包含了一些自己的头文件(内核库里没有的),这个驱动编译是通过的,但是在insmod的时候出现unresolved symbol,我想应该就是内核库中没有我的头文件的关系,我直接把我的这些头文件放到内核源码的include文件夹中再编译内核,但是没用,insmod时还是同样错误,请教高人要怎么做啊?
...全文
1090 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sherlock_lai 2008-05-13
  • 打赏
  • 举报
回复
等上去 待解决
sherlock_lai 2008-05-11
  • 打赏
  • 举报
回复
驱动模块在加载和使用的时候才会链接函数库,所以编译的时候包含了头文件能通过,但是内核库里没有,就会出现unresolved symbol,还有EXPORT_SYMBOL只有内核里有这个函数你才可能EXPORT。。。看来有些人没搞清楚我的问题,Focus老兄 比较清楚
goodyun82 2008-05-10
  • 打赏
  • 举报
回复
unresolved symbol肯定不是没有包含同文件的问题。如果是没有包含头文件,那么应该是编译就出错。你的问题应该是用到其他模块或者是内核的变量和函数。用EXPORT_SYMBOL,具体用法就到网上查吧,到处都是。
sherlock_lai 2008-05-09
  • 打赏
  • 举报
回复
就是比如printk 函数,可以给驱动模块调用,我就想在内核中增加一些函数能给驱动模块调用的,要怎么做?
zj888 2008-05-09
  • 打赏
  • 举报
回复
编译通过了,insmod有unresolved symbol,要检查一下是不是引用了extern符号
sherlock_lai 2008-05-08
  • 打赏
  • 举报
回复
楼上的,驱动中用到的函数应该一般都是在进内核的时候才链接到内核的函数库的,如果你直接include *.c,那么函数就存在你的*.o文件里了,那样驱动会很大
linux scr 是起什么作用的?
我的意思是我函数要编译进内核,然后给驱动调用的,不是给用户用的,这些函数是不是直接放在linux源码的lib下就行了? 还有Makefile要怎么改?
sherlock_lai 2008-05-08
  • 打赏
  • 举报
回复
试了include.c可以的。。。我没用linux时都这么做,但是用了linux怎么也得弄个库进去才规范吧
弄个库到内核好象要修改Makefile的? 哪个高人来指点下怎么修改 哪里有资料?
sherlock_lai 2008-05-08
  • 打赏
  • 举报
回复
楼上的 你的意思是把用到的函数生成库文件放到linux源码里? 头文件放到linux源码的include文件夹下,库函数放到源码的lib文件夹下,然后编译内核,这样会自动生成库文件吗? 是否要修改linux源码的Makefile?

等会试试直接include .c
设备树(device tree)机制是Linux内核linux-3.x版本开始引进的一种机制,目的是解决内核源码的arch/arm目录下代码混乱的问题:随着ARM生态的快速发展,在内核源码的arch/arm目录下,存放着几十种arm芯片和几百个开发板相关的源文件,很多开发板和处理器的中断、寄存器等相关硬件资源都在这个目录下以.c或.h的文件格式定义。而对于内核来说,与这些硬件耦合,会导致内核代码混乱不堪,每个开发板上运行的内核镜像都必须单独编译配置,无法通用。什么时候Linux内核能像Windows镜像那样,无论你的电脑什么配置,一个Windows安装包,都可以直接下载安装运行呢?设备树机制,实现了Linux内核和硬件平台的解耦:每个硬件平台的硬件资源使用一个设备树文件(xxx.dts)来描述,而不是在arch/arm下以.c 或 .h 文件来定义。Linux内核是一个通用的内核,在启动过程中,在通过解析设备树中的硬件资源来初始化某个具体的平台。 引入设备树后,很多和内核驱动开发的工作也发生了变化:以往驱动工程师关注的头文件宏定义、寄存器定义,现在这些基本上不用关注,关注的重点则转向了如何根据硬件平台去配置和修改设备树文件。很多驱动的编程接口也发生了变化,开始慢慢使用device tree提供的编程接口去开发驱动。本期课程主要面向嵌入式开发人员,分享Linux下驱动开发所需要的设备树知识和必备技能

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧