这里内核模块分两中,一种是模块代码本身就在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等。
具体内容请参考已有模块目录,以此为模版修改就行了。
阅读(1485) | 评论(0) | 转发(0) |