Chinaunix首页 | 论坛 | 博客
  • 博客访问: 177216
  • 博文数量: 33
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-07 15:33
文章存档

2015年(23)

2014年(10)

分类: 嵌入式

2014-10-07 15:37:36

原文地址:openwrt添加内核模块 作者:谁与望天堂

        这里内核模块分两中,一种是模块代码本身就在kernel.org官方内核中的,另一种是外加模块如额外驱动的需求。(在这里吐槽一下openwrt把内核本身的模块也搞的这么麻烦,还需要在另外的文件中加配置,不然就算内核本身选上并编译成了.ko但就是不给你install到根文件系统,对于习惯直接以内核config文件为准的来说着实别扭)。


  • 内核自身模块

        以最近添加nfs client nfsv3功能为例,需要在package/kernel/linux/moudles目录下找到相应类别的文件,nfsv3属于fs.mk,在此文件中的nfs配置段下仿照nfs添加配置,如下:

点击(此处)折叠或打开

  1. define KernelPackage/fs-nfsv3
  2. SUBMENU:=$(FS_MENU)
  3. TITLE:=NFS client v3 filesystem support
  4. DEPENDS:=+kmod-fs-nfs
  5. KCONFIG:= \
  6. CONFIG_NFS_V3
  7. FILES:= \
  8. $(LINUX_DIR)/fs/nfs/nfsv3.ko
  9. AUTOLOAD:=$(call AutoLoad,50,nfsv3)
  10. endef

  11. define KernelPackage/fs-nfsv3/description
  12. Kernel module for NFS client v3 support
  13. endef

  14. $(eval $(call KernelPackage,fs-nfsv3))
AutoLoad、KernelPackage函数可以看include目录下kernel.mk定义,都是负责install还有生成etc/moules.d的配置文件
  • 额外内核模块

        这部分需要添加在较上层的目录,和package/kernel/linux同级目录package/kernel/
在此每个模块都有单独的目录,根据需要在其中添加src目录,Makefile、.c源文件、Kconfig
具体内容请参考已有模块目录,以此为模版修改就行了。

阅读(1485) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~