openwrt-luci-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等打开后解压缩出源文件。
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包