openwrt 添加应用的几个步骤如下:

(1)在目录 ./feeds/luci/applications 下添加要增加的应用,譬如 "luci-test"

(2)里面应该包含以下几个目录

hbg@root:~/trunk/feeds/luci/applications/luci-test$ tree
.
├── ipkg                      //  1、包相关
│   ├── conffiles
│   ├── postinst
│   └── postrm
├── luasrc                  //   2、web界面相关
│   ├── controller
│   │   └── test.lua
│   ├── model
│   └── view
├── Makefile              //  3、编译相关
├── po
│   ├── en
│   │   └── test.po
│   └── zh_CN
│       └── test.po
├── root                   //  4、/etc/目录下相关文件
│   ├── config
│   │   └── test               
│   ├── init.d
│   │   └── test
│   └── uci-defaults
│       └── luci-dtest
└── src                    //  5、实现功能的主程序
    ├── test.c
    └── test.h

(3)除此之外,还需要修改  ./feeds/luci/contrib/package/luci 目录下的makefile,使其能够在 make menuconfig  中显示。

$(eval $(call application,dtest, test 1.0,\
       +PACKAGE_luci-app-test:libuci +libpthread +libubox +librt))

然后就可以在 make menuconfig中查找到test的选项了。

注意: 在执行命令"make menuconfig"之前,需要先清空 /tmp目录。

补充知识:

Categories(luci目录)

The LuCI modules are divided into several category directories, namely:

  • applications (Single applications or plugins for other modules or applications, 应用)
  • i18n (Translation files, 翻译文件)
  • libs (Independent libraries, 独立的库)
  • modules (Collections of applications, 应用集合)
  • themes (Frontend themes, 前端主题)

Each module goes into a subdirectory of any of this category-directories.

Module directory

The contents of a module directory are as follows:

Makefile

This is the module's makefile. If the module just contains Lua source code or resources then the following Makefile should suffice.

如果module中只有 lua 代码文件和资源文件,那么Makefile包含如下内容足以:

include ../../build/config.mk

include ../../build/module.mk

If you have C(++) code in your module your Makefile should at least contain the following things.

如果module中包含了 C 或 C++ 代码文件,则需要包含如下内容:

include ../../build/config.mk

include ../../build/gccconfig.mk

include ../../build/module.mk

compile:

# Commands to compile and link your C-code

# and to install them under the dist/ hierarchy

clean: luaclean

# Commands to clean your compiled objects

src

The src directory is reserved for C source code.

src 目录用来保存 C源码。

luasrc

luasrc contains all Lua source code files. These will automatically be stripped or compiled depending on the Make target and are installed in the LuCI installation directory.

Luasrc 目录用来保存所有的 lua 源代码。

lua

lua is equivalent to luasrc but containing Lua files will be installed in the Lua document root.

htdocs

All files under htdocs will be copied to the document root of the target webserver.

htdocs 目录将被拷贝到目标webserver下的文档根目录。

root

All directories and files under root will be copied to the installation target as they are.

拷贝到设备的根目录下。

dist

dist is reserved for the builder to create a working installation tree that will represent the file system on the target machine. DO NOT put any files there as they will get deleted.

ipkg

ipkg contains IPKG package control files, like preinst, posinst, prerm, postrm. conffiles. See IPKG documentation for details.

openwrt 添加 应用(luci-application)的更多相关文章

  1. struct2访问或添加request/session/application

    访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute()  {     ActionConte ...

  2. Xcode7.2中如何添加一个Empty Application模板

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) Xcode 6.0正式版之后已经没有所谓的Empty Appl ...

  3. openwrt 添加luci选项

    刚刚下载的openwrt trunk版本,安装后没有luci选项,如下图 需要添加luci页面选项. 步骤如下: (1)修改配置文件 .config , 将 CONFIG_FEED_luci is n ...

  4. 开发OpenWrt路由器上LuCI的模块

    [题外话] 学校里最近改造了校园网,要求必须用iNode验证,万幸的是路由器能刷OpenWrt,并且OpenWrt上有好多iNode认证的开源项目,比如njit8021xclient(以下简称njit ...

  5. OpenWRT添加模块 Makefile和Config.in

    添加模块编译 在网上找了一下,很多关于编译Openwrt系统的资料,不过这些事情芯片厂商提供的开发包都已经办得妥妥了,但是没有找到系统介绍的资料,添加一个包的介绍有不多,其中有两个很有参考价值: ht ...

  6. OpenWrt路由器通过LuCI界面实现Guest SSID功能

    转自: http://blog.ltns.info/linux/guest_ssid_over_openwrt_router/ 之前尝试过 Tomato路由器设置VLAN实现Guest SSID功能, ...

  7. openwrt web管理luci界面修改

    转自:http://blog.csdn.net/user_920/article/details/8504979 以前都没听过openwrt和luci,只接触过简单的php语言.由于工作原因,要修改下 ...

  8. openwrt开源系统LUCI配置界面

    转自:http://www.right.com.cn/forum/thread-131035-1-1.html 本人菜鸟,最近在学习这方面的知识,在参考资料的基础上总结如下内容.这篇文章针对如何对op ...

  9. openWRT学习之LUCI之中的一个helloworld演示样例

    备注1:本文 讲述的是原生的openWRT环境下的LUCI 备注2:本文參考了诸多资料.感谢网友分享.參考资料: http://www.cnblogs.com/zmkeil/archive/2013/ ...

随机推荐

  1. 四.redis 事务

    redis对事务的支持目前还比较简单.redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令. 由于redis是单线程来处理所有client的请求的所 ...

  2. this关键字、访问修饰符、super关键字

    this关键字.访问修饰符.super关键字 Java关键字this只能用于方法方法体内,而且只能用在非静态方法内.当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个 ...

  3. Java静态代理和动态代理

    今天介绍一下代理设计模式,在业务场景中使用代理模式的好处有很多,包括什么权限校验,事务管理等等,具体有什么好处大家自动百度吧,我这里只解释代理模式的设计原理.首先这个设计模式出来的时候先是静态代理模式 ...

  4. PPT资料下载 - 问题驱动的软件测试设计:强化测试用例设计

    测试用例设计是整个软件测试过程中非常重要的测试活动,需求规格说明是测试人员开展测试设计的主要参考输入.而在测试实践中基于需求规格说明得到的测试用例,在测试覆盖率.测试效率.测试有效性和测试质量等方面的 ...

  5. 部署 instance 到 OVS vlan100 - 每天5分钟玩转 OpenStack(138)

    上一节创建了 OVS vlan network vlan100,今天部署 instance 到该网络.launch 新的 instance “cirros-vm1”,网络选择 vlan100. cir ...

  6. Time_wait问题小结

    TIME_WAIT的产生原因 因为TCP连接是双向的,所以在关闭连接的时候,两个方向各自都需要关闭.先发FIN包的一方执行的是主动关闭:后发FIN包的一方执行的是被动关闭.主动关闭的一方会进入TIME ...

  7. WebADI应用到Office 2016 64-bit

    升级后的用户环境: Windows 2016 bit Office 2016 64 bit IE 11 64 bit 功能定义 功能:CUX_LINE_IMP_ADI 类型:SSWA servlet ...

  8. 设计模式 -- 桥接模式(Bridge Pattern)

    桥接模式 Bridge Pattern 结构设计模式 定义: 分离抽象部分和实现部分,使他们独立运行. 避免使用继承导致系统类个数暴增,可以考虑桥接模式. 桥接模式将继承关系转化为关联关系,减少耦合, ...

  9. 学习AngularJs:Directive指令用法(完整版)

    这篇文章主要学习AngularJs:Directive指令用法,内容很全面,感兴趣的小伙伴们可以参考一下   本教程使用AngularJs版本:1.5.3 AngularJs GitHub: http ...

  10. 自定义连接池java.lang.ClassCastException: com.sun.proxy.$Proxy4 cannot be cast to java.sql.Connection

    原因:Connection.getInterfaces() 与数据库驱动有关,数据库驱动不同 Connection.getInterfaces() 的结果也就不同,Connection.getInte ...