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

openwrt配置内核驱动_OpenWrt添加驱动模块相关推荐

  1. openwrt配置内核驱动_openWRT最小内核/应用模块的添加++++config.in/Kbuild调用树(先后顺序)...

    openWRT编译初体验: sudo apt-get update sudo apt-get install gcc g++ binutils patch bzip2 flex bison make ...

  2. openwrt配置内核驱动_Openwrt编译 -- 用户自定义添加app的开机自启动

    一.概述 1.在openwrt系统内init进程被procd取代,procd作为父进程可以监控子进程的状态.一旦子进程退出后即可在某一个时刻尝试进行重启进程. 2.如果应用软件需要在 boot 时自动 ...

  3. openwrt配置内核驱动_openwrt 增加RTC(MCP7940 I2C总线)驱动详解

    标签: 一.硬件平台 1.1 控制器:MT7620(A9内核) 1.2 RTC芯片:MCP7940(I2C总线) 二.软件平台 2.1.开发环境:Ubuntu12.04 2.2.软件版本:openwr ...

  4. openwrt配置内核驱动_openwrt增加内核模块的方法

    开发环境为ubuntu.首先搭建编译环境. sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf get ...

  5. openwrt配置内核驱动_为斐讯K2P编译OpenWRT LEDE,并启用mtk闭源wifi驱动及H3C认证

    写在最前:只有A1/A2版的K2P才能照本文编译固件并刷入,B1/B2版切莫作死. 一.简述 写在最前,只有A1/A2版本的K2P能照本文编译固件并刷入,B1版本切莫作死.虽然斐讯迟早翻车 现在已经翻 ...

  6. win7(主机)+win7虚拟机(vmware,被调试机)+windbg配置内核驱动调试

    一.安装环境 主机:Windows 7 虚拟机:VMware 9 +win7(被调试机) Windbg: 6.12 二.虚拟机配置 1.右击虚拟机系统->设置->弹出虚拟机设置框-> ...

  7. 【内核驱动】 内核驱动中添加系统调用

    开发环境: Redhat6.5 开发板: Tiny4412 (ARM Cortex A9) 1. 系统调用概述 系统调用请点击 系统调用概述 2. 实现系统调用的步骤 添加一个系统调用比较简单,下面以 ...

  8. Linux内核配置网口驱动,linux内核编译,配置本机驱动

    1.前言 编译linux内核失败的原因很多时候就是驱动选错,适合自己本机的驱动没编译进去.面对特殊平台(或者有些洁癖者,我就是^_^),要编译精简内核,只要本机驱动,其他都不需要.面对内核里面这么多驱 ...

  9. 从入门到精通ARM(4412)-Linux内核驱动编程【下】-李志勇-专题视频课程

    从入门到精通ARM(4412)-Linux内核驱动编程[下]-247人已学习 课程介绍         嵌入式绝对是当前IT领域最炙手可热的话题了.其主要应用领域涵盖与人类相关的各行各业: * 消费电 ...

最新文章

  1. springboot 整合redis 实现KeySpaceNotification 键空间通知
  2. discuz,ecshop的伪静态规则(apache+nginx)
  3. SAP HUM 如何把HU号码与Outbound Delivery 解除Assignment?
  4. 3MIN干完一周的工作量?快来看看应该如何部署 Kubernetes!
  5. gin HTTP/2 服务器推送
  6. 机器学习、深度学习、强化学习课程超级大列表!
  7. angularjs mysql_AngularJS SQL
  8. matlab没有找到图形用户界面,MATLAB中不能设计图形用户界面。
  9. ffmpeg转换格式
  10. 安卓运行时监听配置更改:sim卡、本地语言、键盘显示或隐藏、字体大小、UI模式、屏幕方向、屏幕布局(另一个屏幕)、可用屏幕大小(横纵向)、无屏幕大小(外接屏幕)。
  11. POJ 1002 电话号码字符串处理
  12. App丛林法则:如何抓住“女人心”
  13. 中国生物能源行业市场规模预测及未来战略规划建议报告2022-2028年
  14. VC安装驱动详细解释
  15. win10配置JDK环境变量
  16. C++之责任链(Chain of Responsibility)模式
  17. R语言学习记录:array()函数
  18. win7局域网共享设置_win7局域网共享,教你在智能电视上看win7系统电脑资源
  19. Mac item2 配色,大小写敏感及常用快捷键
  20. 三菱PLC GX Work2学习笔记

热门文章

  1. 学生信息管理系统Java版(信息自动生成)
  2. 三体归零者和盘龙鸿蒙,《三体》里归零者那么厉害,为什么不能逆转降维打击?...
  3. 计算机底层:进程与线程。
  4. 华为服务器bios中修改磁盘格式,华为服务器设置bios
  5. 你说的每一句我都记着,还带时间呢:简洁版纪念日
  6. 廖雪峰python#统计学生人数
  7. 【已解决】Failed to discover available identity versions when contacting http://controller:5000/v3.
  8. 兰博基尼推出全新混动超跑Revuelto
  9. 180/360度舵机控制方法
  10. vuex中mutation和action的详细区别