2019
10-27

openwrt-luci-app编译方式,openwrt-luci-app怎么编译openwrt的app软件包编译方法

路由器交流群

openwrt-luci-app怎么编译openwrt的app软件包编译方法

openwrt编译名词解析

AA:12.09 branch (Attitude Adjustment)
BB:14.07 branch (Barrier Breaker)
CC:15.05 branch (Chaos Calmer)
DD:Designated Driver

编译前准备工作:openwrt基础编译教程曲调版

从零开始编译OpenWRT(LEDE)固件——1.VMware Workstation v15.0.4虚拟机下载及安装

一:feeds/luci编译luci app文件方式

aa和bb下luci类ipk源码目录结构:
让我们来看一下luci-xware3我目录结构
例子:/feeds/luci/applications/luci-xware3

.
├── luasrc
│   ├── controller
│   │   └── xware3.lua
│   └── model
│       └── cbi
│           └── xware3.lua
├── Makefile
└── root
└── etc
├── config
│   └── xware3
├── init.d
│   └── xware3
└── uci-defaults
└── luci-xware3

Luasrc下是lua界面的文件,root目录下是xware3所需要的配置文件,启动脚本

aa&bb下的Makefile文件是这样的:
PO = xware3  #/feeds/luci/po/zh_CN/xware3.po 中文翻译文件
include ../../build/config.mk
include ../../build/module.mk

按照上面的目录结构把文件放到/feeds/luci/applications/luci-xware3下

然后编译/feeds/luci/contrib/package/luci文件
找到### Applications ###段,在下面添加:

$(eval $(call application, xware3,Luci configuration module,

+PACKAGE_luci–app–xware3:+wget  #这里添加依赖))

删除掉/build_dir/target-mips_34kc_uClibc-0.9.33.2/luci,luci-addons  这2个文件夹,或者执行make clean清除掉之前编译的文件
在make menuconfig中application菜单下选择想要编译的选项,运行 make V=99 即可编译出ipk文件了。

————————————————————————————————————

cc&dd的Makefile则是这样:
例子:/feeds/luci/applications/luci-hd-idle

.
├── luasrc
│   ├── controller
│   │   └── hd_idle.lua
│   └── model
│       └── cbi
│           └── hd_idle.lua
├── Makefile
├── po
│   ├── zh-cn
│   │   └── hd_idle.po
│   └── zh-tw
│       └── hd_idle.po
└── root
└── etc
└── uci-defaults
└── luci-hd_idle

include $(TOPDIR)/rules.mk

LUCI_TITLE:=Hard Disk Idle Spin-Down module
LUCI_DEPENDS:=+hd-idle #依赖文件,如果需要添加多个依赖:+wget +fdisk

include ../../luci.mk

# call BuildPackage – OpenWrt buildroot signature #这句一定要有,不然op编译菜单不显示出来
————————————————————————————————

然后执行下面2个命令,menuconfig中才能出现新加的选项:

./scripts/feeds update –a –i

./scripts/feeds install –a

二:package 类luci app编译

文件放在package/xunlei目录下,下面是目录结构:


.
├── files
│   ├── etc
│   │   ├── config
│   │   │   └── xunlei
│   │   ├── init.d
│   │   │   └── xunlei
│   │   ├── uci-defaults
│   │   │   └── luci-xunlei
│   │   └── xware
│   │       ├── cfg
│   │       ├── xlatest
│   │       └── xlup
│   └── usr
│       └── lib
│           └── lua
│               └── luci
│                   ├── controller
│                   │   └── xunlei.lua
│                   └── model
│                       └── cbi
│                           └── xunlei.lua
├── Makefile
├── po
│    └── xunlei.po

Makefile文件修改:注意Makefile的语法要用tab键

include $(TOPDIR)/rules.mk

PKG_NAME:=luci–app–xunlei

PKG_VERSION:=0.12

PKG_RELEASE:=17

PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

PO2LMO:=$(BUILD_DIR)/luci/build/po2lmo #设定po2lom程序地址

include $(INCLUDE_DIR)/package.mk

define Package/$(PKG_NAME) # $(PKG_NAME)为引用上面的PKG_NAME

SECTION:=luci

CATEGORY:=LuCI  #类别

SUBMENU:=3. Applications   #子菜单

DEPENDS:=+wget. #依赖

TITLE:=luci–app–xunlei

PKGARCH:=all

endef

define Package/$(PKG_NAME)/description

xware web UI

endef

define Build/Compile

endef

define Package/$(PKG_NAME)/postinst

#!/bin/sh

[ –n “${IPKG_INSTROOT}” ] || {

( . /etc/uci–defaults/luci–xunlei ) && rm –f /etc/uci–defaults/luci–xunlei

/etc/init.d/xunlei enable >/dev/null 2>&1

exit 0

}

endef

define Package/$(PKG_NAME)/install

$(CP) ./files/* $(1)  #复制files目录下所有文件

$(PO2LMO) ./po/xunlei.zh–cn.po $(1)/usr/lib/lua/luci/i18n/xunlei.zh–cn.lmo #直接编译po翻译文件。

endef

$(eval $(call BuildPackage,$(PKG_NAME)))

主要修改编注红色的地方,/etc/init.d,/etc/uci-defaults下的文件一定要设置有执行权限,没有的话可以在define Package/$(PKG_NAME)/postinst段落里面的exit 0前面添加

chmod +X /etc/init.d/xunlei

./file 为package/xunlei目录下file文件夹:package/xunlei/file

OpenWrt下编译ipk文件大致就是这样,如果是下载别人的源码,放到相应的目录即可

编译好ipk文件,可以用winrar/7z等打开后解压缩出源文件。

您可能感兴趣的文章

免费支持本站

支付宝打赏支付宝打赏微信打赏微信打赏

本文》有 0 条评论

留下一个回复 (您的评论需要经过审核才能显示)