wifidog 关于openwrt添加内核模块
这里内核模块分两中,一种是模块代码本身就在kernel.org官方内核中的,另一种是外加模块如额外驱动的需求。(在这里吐槽一下openwrt把内核本身的模块也搞的这么麻烦,还需要在另外的文件中加配置,不然就算内核本身选上并编译成了.ko但就是不给你install到根文件系统,对于习惯直接以内核config文件为准的来说着实别扭)。
内核自身模块
以最近添加nfs client nfsv3功能为例,需要在package/kernel/linux/moudles目录下找到相应类别的文件,nfsv3属于fs.mk,在此文件中的nfs配置段下仿照nfs添加配置,如下:
define KernelPackage/fs-nfsv3
SUBMENU:=$(FS_MENU)
TITLE:=NFS client v3 filesystem support
DEPENDS:=+kmod-fs-nfs
KCONFIG:= \
CONFIG_NFS_V3
FILES:= \
$(LINUX_DIR)/fs/nfs/nfsv3.ko
AUTOLOAD:=$(call AutoLoad,50,nfsv3)
endef
define KernelPackage/fs-nfsv3/description
Kernel module for NFS client v3 support
endef
$(eval $(call KernelPackage,fs-nfsv3))
AutoLoad、KernelPackage函数可以看include目录下kernel.mk定义,都是负责install还有生成etc/moules.d的配置文件
额外内核模块
这部分需要添加在较上层的目录,和package/kernel/linux同级目录package/kernel/下。在此每个模块都有单独的目录,根据需要在其中添加src目录,Makefile、.c源文件、Kconfig等。具体内容请参考已有模块目录,以此为模版修改就行了。
本文章由 http://www.wifidog.pro/2014/12/31/wifidog-openwrt%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97.html 整理编辑,转载请注明出处