openwrt 添加驱动程序到openwrt
来源:互联网 发布:知乎 wordpress 编辑:程序博客网 时间:2024/04/29 22:56
1.建立源文件
1.1在./package/kernel下建立example文件
mkdir example
1.2进入example文件,建立Makefile
内容如下:
#Kernel module example
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=example
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
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)"
define KernelPackage/example
SUBMENU:=Other modules
TITLE:=Support Module for example
FILES:=$(PKG_BUILD_DIR)/example.ko
AUTOLOAD:=$(call AutoLoad,81,example)
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)/
$(CP) -R ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" $(MAKE_OPTS) CONFIG_EXAMPLE=m modules
endef
$(eval $(call KernelPackage,example))
1.3在example下建立src目录
mkdir src
在src目录下创建Makefile文件,如下:
obj-${CONFIG_EXAMPLE}+= example.o
在创建Kconfig文件
config EXAMPLE
tristate "Just a example"
help
This is a example, for debugging kernel model.
If unsure, say N.
#include <linux/kernel.h>
/* hello_init ---- 初始化函数,当模块装载时被调用,如果成功装载返回0 否则返回非0值 */
static int __init hello_init(void)
{
printk("I bear a charmed life.\n");
return 0;
}
/* hello_exit ---- 退出函数,当模块卸载时被调用 */
static void __exit hello_exit(void)
{
printk("Out, out, brief candle\n");
}
module_init(hello_init);
module_exit(hello_exit);
1.1在./package/kernel下建立example文件
mkdir example
1.2进入example文件,建立Makefile
内容如下:
#Kernel module example
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=example
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
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)"
define KernelPackage/example
SUBMENU:=Other modules
TITLE:=Support Module for example
FILES:=$(PKG_BUILD_DIR)/example.ko
AUTOLOAD:=$(call AutoLoad,81,example)
endef
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)/
$(CP) -R ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" $(MAKE_OPTS) CONFIG_EXAMPLE=m modules
endef
$(eval $(call KernelPackage,example))
1.3在example下建立src目录
mkdir src
在src目录下创建Makefile文件,如下:
obj-${CONFIG_EXAMPLE}+= example.o
在创建Kconfig文件
config EXAMPLE
tristate "Just a example"
help
This is a example, for debugging kernel model.
If unsure, say N.
增加example.c文件
#include <linux/init.h>
#include <linux/module.h>#include <linux/kernel.h>
/* hello_init ---- 初始化函数,当模块装载时被调用,如果成功装载返回0 否则返回非0值 */
static int __init hello_init(void)
{
printk("I bear a charmed life.\n");
return 0;
}
/* hello_exit ---- 退出函数,当模块卸载时被调用 */
static void __exit hello_exit(void)
{
printk("Out, out, brief candle\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
.##########################################
然后 make menuconfig
kernel modules ------>
other modules------>
< > kmod-example
0 0
- openwrt 添加驱动程序到openwrt
- openwrt-开发-添加自已的工程到openwrt
- 添加一个自己的工程到openWrt
- openwrt
- OpenWRT
- openWRT
- openWRT
- openwrt
- openwrt
- Openwrt
- openwrt
- OpenWrt
- Openwrt
- OpenWrt
- OpenWrt
- openWRT添加模块
- OpenWRT添加模块 实例
- openWRT添加工具包
- 高德地图 如何查询该坐标是否在 我画的范围内 用到了”射线法“
- SDUT 3311 KMP的应用
- 原生javascript制作无缝滚动
- Xcode7.0beta真机调试出现"Could not find Developer Disk Image"揭示
- Spring 整合 Mina
- openwrt 添加驱动程序到openwrt
- 常用的C库头文件
- PHP识别二维码(php-zbarcode)
- 瀑布流
- adb shell下提示read-only file system
- 使用CAS登录模块连接数据库验证用户合法性
- libevent代码阅读(10)——“hello-world.c”之 把事件处理器添加到event_base对象的注册的事件处理器的队列
- C语言:浮点数在内存中的表示
- 静态方法和继承的关系