openwrt插件都是以.ipk方式发布的,ipk可以直接通过opkg安装到系统。上文我们编译了简单的hello,本文探究hello.ipk的编译过程。
一. 环境准备
cd ~/openwrt/bin/ar71xx tar -xjvf OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz #解压SDK包 cd OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/package #进入package目录 mkdir hello #建立软件包目录
目录层次:
package/hello
|--- /src/hello.c
|--- /src/Makefile
|--- Makefile
二. 编码
1. 编辑编译hello的Makefile
vi hello/src/Makefile
hello: hello.o $(CC) $(LDFLAGS) hello.o -o hello hello.o: hello.c $(CC) $(CFLAGS) -c hello.c clean: rm *.o hello
2. 编辑发布hello.ipk的Makefile
vi hello/Makefile
#Makefile include $(TOPDIR)/rules.mk # Nameand release number of this package PKG_NAME:=hello PKG_RELEASE:=1 # This specifies the directory where we're going to build the program. # The root build directory, $(BUILD_DIR), is by default the build_mipsel # directory in your OpenWrt SDK directory PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk # Specify package information for this program. # The variables defined here should be self explanatory. # If youare running Kamikaze, delete the DESCRIPTION # variable below and uncomment the Kamikaze define # directivefor the description below define Package/hello SECTION:=utils CATEGORY:=Utilities TITLE:=Helloworld-- prints a snarky message endef # Specifywhat needs to be done to prepare for building the package. # In ourcase, we need to copy the source files to the build directory. # This isNOT the default. The default uses thePKG_SOURCE_URL and the #PKG_SOURCE which is not defined here to download the source from the web. # Inorder to just build a simple program that we have just written, it is # mucheasier to do it this way. define Build/Prepare mkdir -p $(PKG_BUILD_DIR) $(CP) ./src/* $(PKG_BUILD_DIR)/ endef # We donot need to define Build/Configure or Build/Compile directives # Thedefaults are appropriate for compiling a simple program such as this one # Specifywhere and how to install the program. Since we only have one file, # thehello executable, install it by copying it to the /bin directory on # therouter. The $(1) variable represents the root directory on the router running #OpenWrt. The $(INSTALL_DIR) variable contains a command to prepare the install #directory if it does not already exist. Likewise $(INSTALL_BIN) contains the # commandto copy the binary file from its current location (in our case the build #directory) to the install directory. define Package/hello/install $(INSTALL_DIR) $(1)/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/hello $(1)/bin/ endef # This line executes the necessary commands to compile our program. # The above define directives specify all the information needed, but this # line calls BuildPackage which in turn actually uses this information to # build apackage. $(eval $(call BuildPackage,hello))
三. 编译
cd ~/openwrt/bin/ar71xx/OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2 #sdk根目录 make #编译
如果顺利,会出现以下信息:
make[1] world make[2] package/compile make[3] -C package/hello compile make[2] package/index
编译成功会在 bin/arr71xx/packages 下生成 hello_1_ar71xx.ipk
四. 上传并测试
相关推荐
6. **生成IPK包**:编译完成后,新的IPK包将在`bin`目录下找到,可以使用`opkg`等包管理器安装到OpenWrt设备上。 这个压缩包中的“jwdlh”可能是软件包的名称或者是某个子目录,具体用途需要查看其内容才能确定。...
在OpenWRT环境中安装NPS.ipk是一个将NPS服务添加到系统中的过程,以便利用其强大的网络处理能力。 首先,让我们详细解释如何安装`openwrt nps.ipk`。在OpenWRT中,软件通常以IPK格式的包进行分发,这使得用户可以...
这些IPK文件包含源码软件的编译版本,以及必要的依赖信息,使得在OpenWRT设备上安装和管理软件变得简单。 `luci-app-store_0.1.8-7_all.ipk` 是一个Luci应用商店的插件,Luci是OpenWRT的图形化Web界面。这个插件...
openwrt插件扩展大全ipk3100个对应功能中文 解释
每个IPK文件包含了编译好的软件、依赖关系信息以及元数据,使得OpenWRT系统能够正确处理软件的安装过程。 软件包的种类广泛,涵盖了网络管理、系统工具、安全应用、编程语言、服务器软件等多个领域。例如,有些...
OpenWrt-SDK是一个用于在OpenWrt操作系统上定制和编译固件的工具链。它允许开发者仅针对特定平台的用户空间进行交叉编译,而不需要重新编译整个系统。SDK的使用场景包括但不限于: 1. 编译更新版本的软件包:开发者...
【描述】中的信息表明,这个项目是为一个特定的IPK软件开发的上位机支持软件,该软件是在Visual Studio 2013环境下编译的。这涉及到C++编程语言,因为Visual Studio 2013主要支持C++开发,并且可能使用了Microsoft的...
openwrt 应用商店ipk程序 无需编译直接安装
OpenWrt SDK是一个可再定位的、预编译好的OpenWrt工具链,适用于在不从头开始编译整个系统的前提下,针对一个特定平台交叉编译单个用户空间包。使用SDK的原因是为了保证二进制和特性兼容性,针对特定的发行版编译...
OpenWrt环境下编译fcgiwrap的源代码,内含其所依赖的fcgi包源代码,将文件 解压到OpenWrt-SDK的package目录下即可执行Make V=s完成整个编译过程,生成的ipk文件可直接安装到相应的路由器中,然后就可以用nginx取代原...
IPK是OpenWRT软件包的格式,用于分发编译好的软件。在本例中,"luci-app-syncdial_git-17.267.71996-a7afd7c-1_all.ipk"是一个LuCI界面的插件,用于图形化管理PPPoE并发多拨。LuCI是OpenWRT的Web管理界面,使得用户...
这个系统允许用户自定义和扩展设备的功能,通过编译源代码或安装预编译的IPK(IPK Package)包来实现。本文将详细讨论标题和描述中涉及的知识点,包括OpenWRT、Mentohust、Libpcap以及如何在Brcm63XX系列设备上安装...
在OpenWrt上运行tcpdump是一项基础而重要的网络诊断任务,tcpdump是一个强大的网络分析工具,它可以捕获网络上的数据包并提供详细的信息,帮助我们理解网络流量、检测问题或进行安全审计。以下是对OpenWrt环境安装和...
本文将详细介绍如何在OpenWRT环境下开发自己的程序固件IPK,并涵盖搭建开发环境、修改原有packages以及创建新的packages等内容。 #### 二、搭建开发环境 为了在OpenWRT环境中开发程序固件,首先需要搭建一个专门的...
在用 learn lede 在源码编译在过程中主要是报了一个错, 缺少原子操作也就是这个库造成在,有空整理一下吧。 几天以前用在 R9.3.7的安装openwrt里面软件包含了redis。install redis 直接安装成功。 然后现在不行了。...
在编译 OpenWRT 之前,需要 configure OpenWRT 的编译选项。可以使用 make menuconfig 命令来 configure OpenWRT 的编译选项。例如,可以选择目标路由器的型号、版本、编译器等。 编译 OpenWRT 需要下载许多软件包...
openwrt各软件包对应功能,方便查找
7. **打包与分发**:最后,将编译好的Qt包整合到OpenWrt固件中,以便用户可以通过OPKG或IPK包管理系统安装。 整个过程涉及到深入理解Linux内核、嵌入式开发、编译原理以及Qt框架的内部机制。在实际操作中,开发者...
只能使用openwrt和PandoraBox固件,查询了多种方法,都是需要对固件进行编译的,由于小弟不懂编程,只有通过网友们的安装配置经验进行参考,在刷好的固件基础上安装wifidog和Luci界面的配置,如果哪位高手能将Luci-...
4. 交叉编译与安装:回到OpenWrt的顶层目录,运行`make menuconfig`配置你的开发环境,然后执行`make`进行编译,最后使用`make install`将程序安装到模拟器或目标设备。 四、运行Hello, World程序 编译完成后,...