如何创建OpenWrt主机包?

时间:2018-04-09 13:55:24

标签: openwrt

我使用OpenWrt构建我的软件,以部署在客户的目标设备上。为了成功,我需要在主机系统上使用一个特殊工具。任何人都可以给我一些关于如何编写一个为主机而不是目标构建工具的软件包的提示和提示吗?

在过去几个小时内在Internet上搜索OpenWrt主机工具和主机软件包之后,我提出的最好的工具是以下软件包Makefile。但是这些命令不会被OpenWrt调用。

我错过了什么?或者我整体上走错了路?

include $(TOPDIR)/rules.mk

PKG_NAME := project-traits
PKG_VERSION := 6.0.0

PKG_SOURCE_URL := <internal git repository>

HOST_BUILD_PARALLEL := 1
HOST_CONFIGURE_PARALLEL := 1
HOST_BUILD_DIR := $(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION)

include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk

MAKE_PATH := llvm-build

CMAKE_OPTIONS += -B$(HOST_BUILD_DIR)/$(MAKE_PATH) -H$(HOST_BUILD_DIR)/llvm && echo

define Host/Prepare
    echo 'This is the generator build!'
    # stripped: fetch the LLVM source code
    # stripped: fetch the traits generator source code
endef

# Use Host/Compile from cmake.mk

define Host/Install
    # stripped: install the build generator into the staging dir
endef

$(eval $(call HostBuild))

在要求目标包中,我已经包含

PKG_BUILD_DEPENDS += project-traits/host

为了保密并且为了将粘贴的代码简化为必需品,我删掉了一些东西或者将它们排除在外。但是你 应该得到意图。我在命令行或构建日志中看不到任何构建的输出。 OpenWrt似乎只是忽略了我的生成器工具,因此无法构建目标包。

如果它有任何不同之处:我没有构建直接的OpenWrt源文件。相反,我从客户那里获得了一个预先构建的OpenWrt SDK。但除了预先填充的设备配置文件外,我还无法弄清楚区别的是什么。

对此有任何帮助&#34;轻轻地&#34;记录的主题表示赞赏。

2 个答案:

答案 0 :(得分:0)

Creating packages
make menuconfig

中选择包

例如。在grep -rns PKG_SOURCE_URL ./目录下想到Linux命令openwrt-17.01.4/package/utils,您将获得Makefile。

复制此文件以构建您自己的包。

答案 1 :(得分:0)

你有OpenWrt SDK吗?如果是,我建议您将包Makefile存储在$ROOT_DIR/feeds/packages/utils/$package_name中。如果没有从www.downloads.openwrt.org下载。

完成此操作后,请在./feeds/update -i中输入$ROOT_DIR来更新Feed包。稍后在同一$ROOT_DIR类型./feeds/install $package_name中。如果一切正常,您将收到$package_name was installed

之类的消息

最后,你必须compile包来获取.ipk文件。您可以在make package/$package_name/compile中再次键入$ROOT_DIR来完成此操作。您可以在$ROOT_DIR/bin/...

中找到自己的套餐