首页 【智能路由器】openwrt创建用户软件包

【智能路由器】openwrt创建用户软件包

举报
开通vip

【智能路由器】openwrt创建用户软件包【智能路由器】openwrt创建用户软件包 【智能路由器】openwrt创建用户软件 包 openwrt根目录 先看看openwrt初次编译好后的目录结构: 如上图所示: arvik_note:本人更改软件包记录笔记,不必理会。 include:存放 *.mk 文件 build_dir:建立工具链时的临时目录,解压、编译、补丁等文件存放点 staging_dir:工具链的安装位置 target:平台相关代码及配置文件 dl:下载目录,编译期间从网上下载的数据包都会放在此目录,数据包会解压到bui...

【智能路由器】openwrt创建用户软件包
【智能路由器】openwrt创建用户软件包 【智能路由器】openwrt创建用户软件 包 openwrt根目录 先看看openwrt初次编译好后的目录结构: 如上图所示: arvik_note:本人更改软件包记录 笔记 哲学笔记pdf明清笔记pdf政法笔记下载课堂笔记下载生物化学笔记PDF ,不必理会。 include:存放 *.mk 文件 build_dir:建立工具链时的临时目录,解压、编译、补丁等文件存放点 staging_dir:工具链的安装位置 target:平台相关代码及配置文件 dl:下载目录,编译期间从网上下载的数据包都会放在此目录,数据包会解压到build_dir目录下 package:包含了我们在配置文件里设定懂得所有编译好的软件包 feeds:执行./srcipts/feeds install后的缓存文件存放点 bin:对应平台编译好的二进制文件以及相关ipk文件 创建软件包 ?????????????????????以下内容摘自官方WIKI ????????????????????? 构建方法 openwrt靠Makefile文件来添加软件,Makefile文件最关键,一般来说它提供了下载、编译、安装这个软件包的步骤。 这里Makefile的格式跟一般的Makefile不一样,因为它的功能跟普通Makefile就是不一样 的。它是一种编写方便的 模板 个人简介word模板免费下载关于员工迟到处罚通告模板康奈尔office模板下载康奈尔 笔记本 模板 下载软件方案模板免费下载 。 以package/bridge/Makefile文件为例: include $(TOPDIR)/rules.mk PKG_NAME:=bridge PKG_VERSION:=1.0.6 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/bridge-utils-$(PKG_VERSION) PKG_SOURCE:=bridge-utils-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/bridge PKG_MD5SUM:=9b7dc52656f5cbec846a7ba3299f73bd PKG_CAT:=zcat include $(INCLUDE_DIR)/package.mk define Package/bridge SECTION:=base CATEGORY:=Network TITLE:=Ethernet bridging configuration utility #DESCRIPTION:=This variable is obsolete. use the Package/name/description define instead! URL:= endef define Package/bridge/description Ethernet bridging confwww.sm136.comiguration utility Manage ethernet bridging; a way to connect networks together to form a larger network. endef define Build/Configure $(call Build/Configure/Default,--with-linux-headers=$(LINUX_DIR)) endef define Package/bridge/install $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_BUILD_DIR)/brctl/brctl $(1)/usr/sbin/ endef $(eval $(call BuildPackage,bridge)) 软件包变量 建立一个软件包不需要太多工作;大部分工作都隐藏在其它的 makefiles 中,编写工作被抽象成对几个变量的赋值。 PKG_NAME -软件包的名字, 在 menuconfig 和 ipkg 显示 PKG_VERSION -软件包的版本,主干分支的版本正是我们要下载的 PKG_RELEASE -这个 makefile 的版本 PKG_BUILD_DIR -编译软件包的目录 PKG_SOURCE -要下载的软件包的名字,一般是由 PKG_NAME 和 PKG_VERSION 组成 PKG_SOURCE_URL -下载这个软件包的链接 PKG_MD5SUM -软件包的 MD5 值 PKG_CAT -解压软件包的方法 (zcat, bzcat, unzip) PKG_BUILD_DEPENDS -需要预先构建的软件包,但只是在构建本软件包时,而不是运行的时候。它的语法和下面的DEPENDS一样。 PKG_*变量定义了从何处下载这个软件包;@SF是 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示从sourceforge网站下载的一个特殊关键字。md5sum用来检查从网上下载的软件包是否完好无损。PKG_BUILD_DIR定义了软件包源代码的解压路径。 注意到上面示例文件底部的最后一行吗,这是最为关键的BuildPackage宏。它是在$(INCLUDE_DIR)/package.mk文件里定义的。BuildPackage宏只 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 一个参数,即要编译的软件包名,在本例中是”bridge”。所有其他信息都通过宏来获得,这提供了一种内在的简洁性。比如BuildPackage需要软件包的一大串描述信息,我们并不要向它传递冗长的参数,因为我们已经约定描述信息定义在DESCRIPTION宏,BuildPackage从里面读取就可以了。 BuildPackage相关的宏 Package/ 描述软件包在menuconfig和ipkg中的信息,可以定义如下变量: SECTION - 软件包类型 (尚未使用) CATEGORY - menuconfig中软件包所属的一级目录,如Network SUBMENU - menuconfig中软件包所属的二级目录,如dial-in/up TITLE - 软件包标 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 DESCRIPTION - 软件包的详细说明 URL - 软件的原始位置,一般是软件作者的主页 MAINTAINER - (optional) 软件包维护人员 DEPENDS - (optional) 依赖项,运行本软件依赖的其他包 Package/conffiles (可选) 软件包需要复制的配置文件列表,一个文件占一行 Build/Prepare (可选) 一组解包源代码和打补丁的命令,一般不需要。 Build/Configure (可选) 如果源代码编译前需要configure且指定一些参数,就把这些参数放在这儿。否则可以不定义。 Build/Compile (可选) 编译源代码命令。 Package/install 软件安装命令,主要是把相关文件拷贝到指定目录,如配置文件。 Package/preinst 软件安装之前被执行的脚本,别忘了在第一句加上#!/bin/sh。如果脚本执行完毕要取消安装过程,直接让它返回false即可。 Package/postinst 软件安装之后被执行的脚本,别忘了在第一句加上#!/bin/sh。 Package/prerm 软件删除之前被执行的脚本,别忘了在第一句加上#!/bin/sh。如果脚本执行完毕要取消删除过程,直接让它返回false即可。 Package/postrm 软件删除之后被执行的脚本,别忘了在第一句加上#!/bin/sh。 为什么一些定义是”Package/”前缀,另一些定义却是”Build”前缀,这是因为我们支持一个特性:从单个源代码构建多个软件包。OpenWrt工作在一个Makefile对应一个源代码的假设之上,但是你可以把编译生成的程序分割成任意多个软件包。因为编译只要一次,所以使用全局的”Build”定义是最合适的。然后你可以增加很多“Package/”定义,为各软件包分别指定安装方法。建议你去看看dropbear包,这是一个很好的示范。 提示: 对于所有在pre/post, install/removal脚本中使用的变量,都应该使用"$$"代替"$"。这是告诉make暂时不要解析这个变量,而是把它当成普通字符串以及用"$"代替"$$"。 在编辑好Makefile文件,并放到指定目录后,这个新的软件包将在下次执行make menuconfig 时出现,你可以选择这个软件包,保存退出,用make编译。现在就把一个软件成功移植到OpenWrt中了~ ???????????????????????????以上内容摘自官方WIKI ??????????????????????????? 创建软件包arvik_hello 按照如下命令步骤: 先建一个软件集合的目录arvik_app cd ./packet mkdir arvik_app 1 2 在arvik_app目录下建立arvik_hello目录 cd ./arvik_app mkdir arvik_hello 接着在arvik_hello中建立src目录和Makefile文件 cd ./arvik_hello mkdir src touch Makefile 该处Makefile文件内容如下,可参照上面软件包变量读懂每句含义,在此不赘述。需要注意的是代码里每行行末是没有空格的,否则可能会出错。 好了,openwrt就靠这个Makefile来添加我们的arvik_hello软件包了。 ######################################### #author:arvik #email:1216601195@qq.com #csdn:######################################### include $(TOPDIR)/rules.mk ARVIK_APP_DIR:=arvik_app PKG_NAME:=arvik_hello PKG_VERSION:=1.0.0 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(ARVIK_APP_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk define Package/$(PKG_NAME) SECTION:=Utilities CATEGORY:=Arvik_Applications TITLE:=a Test Program offer by arvik MAINTAINER:=arvik endef define Package/$(PKG_NAME)/description This is a test program that provides a MAkefile template ! endef define Build/Prepare mkdir -p $(PKG_BUILD_DIR) $(CP) ./src/* $(PKG_BUILD_DIR)/ endef define Build/Configure endef define Package/$(PKG_NAME)/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/ endef $(eval $(call BuildPackage,$(PKG_NAME))) 下面就进入src目录来建立我们软件源文件和Makefile文件了。 cd ./src touch hello.c touch Makefile 1 2 3 hello.c内容如下: #include int main() { printf("arvik hello world!\n"); return 0; } 此处Makefile文件内容如下: ######################################### #author:arvik #email:1216601195@qq.com #csdn:######################################### EXEC:=arvik_hello SRC:=hello.c all: $(EXEC) $(EXEC): $(SRC) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(SRC) $(LDLIBS) .PHONY:clean clean: -rm -f $(EXEC) *.elf *.gdb *.o 检验软件包 make menuconfig 退回openwrt根目录,执行make menuconfig,找到Arvik_Applications选项,进入 重新编译一次即可(或者单独只编译一次arvik_hello即可,命令 make package/arvik_app/arvik_hello/compile V=99)。 运行arvik_hello root@OpenWrt:/# arvik_hello arvik hello world! 成功~
本文档为【【智能路由器】openwrt创建用户软件包】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_037433
暂无简介~
格式:doc
大小:71KB
软件:Word
页数:0
分类:生活休闲
上传时间:2018-04-29
浏览量:43