内核源码树

linux驱动编程为什么要编译内核源码树,为什么内核版本跟内核源码树还有不兼容的情况。

第一点,设备驱动程序是内核的一部分,在编写驱动的时候,必定会用到内核的头文件和库。在linux发行版里可能并没有这些东西。

第二个,就算linux发行版里有这些东西,然而不同的内核版本之间,那些接口和调用可能会有比较大的差异,因此必须要保证你的代码和某个特定的内核对应,这样编译出来的模块才可以(也是只能)在运行这个内核版本的Linux系统中加载,否则一个很简单的异常就会导致内核崩溃,或者你的代码根本无法编译通过(接口名变了)。

 如果你只是想为内核编译第三方的模块,那么,你不需要下载内核源码。安装内核头文件包或许会更适合你。但是做嵌入式开发或者驱动开发,一个基本的Linux设备驱动开发环境由宿主机目标机组成,宿主机就是用来做驱动开发工作的主机,目标机就是用来运行和测试设备驱动的主机。这就需要下载内核版本然后编译生成源码树(构造内核源码树,其实就是编译linux内核的过程),以准备好驱动编译所需要的头文件和库(PC上编译的时候,内核有导出符号,系统中有头文件,这样就可以引用内核给你的接口了,但是只能编译你PC上版本的内核可加载的模块)。

转载于:https://my.oschina.net/wuqingyi/blog/830097

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值