openwrt配置内核驱动_OpenWrt添加驱动模块

本文档详细介绍了如何在OpenWrt环境中添加一个新的内核驱动模块。首先在package/kernel/目录下创建example目录,接着建立Makefile并配置编译规则。然后在该目录下创建src目录,并在src目录中编写Kconfig、Makefile和example.c源代码文件,实现简单的驱动功能。通过make menuconfig将驱动模块加入到OpenWrt配置中,最后编译并加载模块。

1. 添加模块目录

在package/kernel/下执行命令:

mkdir example

2. 建立Makefile

在package/kernel/example建立Makefile文件,命令:vim Makefile,内容如下:

#Kernel module example

include $(TOPDIR)/rules.mk

include $(INCLUDE_DIR)/kernel.mk

PKG_NAME:=example

PKG_RELEASE:=1

include $(INCLUDE_DIR)/package.mk

define KernelPackage/example

SUBMENU:=Other modules

TITLE:=Support Module for example

FILES:=$(PKG_BUILD_DIR)/$(PKG_NAME).ko

AUTOLOAD:=$(call AutoLoad,81,$(PKG_NAME))

endef

EXTRA_KCONFIG:= \

CONFIG_$(PKG_NAME)=m

EXTRA_CFLAGS:= \

$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \

$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \

MAKE_OPTS:= \

ARCH="$(LINUX_KARCH)" \

CROSS_COMPILE="$(TARGET_CROSS)" \

SUBDIRS="$(PKG_BUILD_DIR)" \

EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \

$(EXTRA_KCONFIG)

define Build/Compile

$(MAKE) -C "$(LINUX_DIR)" \

$(MAKE_OPTS) \

modules

endef

$(eval $(call KernelPackage,$(PKG_NAME)))

3. 建立src目录

在package/kernel/example下建立src目录,命令:mkdir src,在src目录下建立Kconfig、Makefile和example.c文件。

3.1 Kconfig文件内容

config EXAMPLE

tristate "Just a example"

help

This is a example, for debugging kernel model.

If unsure, say N.

3.2 Makefile文件内容

obj-${CONFIG_EXAMPLE} += example.o

3.3 example.c文件内容

#include

#include

#include

static int __init example_init(void)

{

printk("hello example lede init!\n");

return 0;

}

static void __exit example_exit(void)

{

printk("hello example lede exit!\n");

}

module_init(example_init);

module_exit(example_exit);

MODULE_AUTHOR("hello world");

MODULE_DESCRIPTION("example driver");

MODULE_LICENSE("GPL");

4. 配置make menuconfig

在openwrt目录make menuconfig–>kernel module–>other module–>kmod-example选中,执行编译命令:make package/kernel/example/compile V=s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值