您的位置:首页 > 运维架构

openwrt-drivers-各文件之前联系

2015-12-14 15:05 309 查看
之前要做一个东西.当编译上svn库以后 .checkout 下来的代码都带一些.svn文件。编译出来的版本烧写到板子上以后。发现驱动无法加载.

uname -a 发现linux版本号后面都带了一个+号。类似这种:

Linux OpenWrt 3.10.14+ #296 Mon Dec 14 14:55:40 CST 2015 mips GNU/Linux

在3.10.14后面多了一个加号。

然后去驱动文件夹看一下。

/lib/modules/3.10.14/

发现驱动文件存放的路径下面3.10.14后面没有 +号。所以驱动无法加载。

所以,为了使/lib/modules/3.10.14/ 变成 /lib/modules/3.10.14+/ 开始了我们添加+号的过程。

首先,openwrt 的总的.mk文件,放在了根目录下的include 中.

它下面存在了各种,mk

其中,我们关心的是kernel.mk

这里面定义了一些内核的编译规则,其中就包括了内核驱动文件存放路径这一块。

寻找LINUX_UNAME_VERSION关键字。

其中看到了UNAME这个东东。它是不是和uname 命令有关系呢。

是的,这个就指定了内核驱动文件的存放路径。我们只要在这个变量后面添加一个+号就大功告成了。

LINUX_UNAME_VERSION:=$(LINUX_UNAME_VERSION)+

编译来的版本,/lib/modules/3.10.14+/就变成这样了。

下面扩展一下,openwrt makefile中,是如何定义驱动的。

在openwrt 的package\kernel\linux\modules目录下面,定义了一些驱动模块的.mk。

其中定义了一些模块的定义宏,依赖关系等内容。

它包含了trunk\target\linux\ramips\modules.mk文件。

这里面定义的是ramips模块单独定义的一些内容。

最终,openwrt 会将生成的所有的,ko文件,全部都copy到

trunk\staging_dir\target-mipsel_24kec+dsp_uClibc-0.9.33.2\root-ramips\lib\modules\3.10.14+目录下面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: