OPKG(Open/OpenWrt Package)是一个轻量快速的软件包管理系统,是 IPKG 的克隆, 目前已成为开源嵌入式系统领域的事实标准。OPKG 常用于路由、交换机等嵌入式设备中, 用来管理软件包的下载、安装、升级、卸载和查询等,并处理软件包的依赖关系。功能和 桌面Linux操作系统Ubuntu中的 apt-get、Redhat 中的 yum 类似。
在./build_dir/target-aarch64_cortex-a53_musl/helloworld-1.0目录存放编译过程文件: ./build_dir/target-aarch64_cortex-a53_musl/helloworld-1.0├── helloworld ├── helloworld.c ├── helloworld.o ├── ipkg-aarch64_cortex-a53 │ └── helloworld │ ├── CONTROL │ │ ├── contro...
那么这里的$(1)就是指的传入的参数dropbear.这里包含了一些检查和补充变量定义.继续深究下去的线索是第25~32行之间.这里我将它简化后就是展开BuildTarget/ipkg;同时第33行,将dropbear当作参数传给函数Build/DefaultTargets. BuildTarget/ipkg定义在package-ipkg.mk中,我们需要重点关注其中的冒号,这个形成我们的依赖关系...
三、软件包Makefile中的宏定义 软件包定义用于编译前的软件包选择和编译后的IPKG安装包生成。这些设置的参数传递给 buildroot进行交叉编译,buildroot 是交叉编译环境的统称。这些是在menuconfig和生成的IPKG安装包实体中显示的。 Package宏定义 一些宏定义以“Package/”开头,Package开头的定义用于“make menuconfig”选择及...
软件包的信息均以PKG_ 开头,其意思和作用如下:PKG_NAME表示软件包名称,将在menuconfig和ipkg可以看到。PKG_VERSION表示软件包版本号。 PKG_RELEASE表示Makefile的版本号。 PKG_SOURCE表示源代码的文件名。 PKG_SOURCE_URL表示源代码的下载网站位置。@SF表示在sourceforge网站,@GNU表示在GNU网站,還有@GNOME、@KERNEL。
(DUMP), \ $(Dumpinfo/Package), \ $(foreach target, \ $(if $(Package/$(1)/targets),$(Package/$(1)/targets), \ $(if $(PKG_TARGETS),$(PKG_TARGETS), ipkg) \ ), $(BuildTarget/$(target)) \ ) \ ) $(if $(PKG_HOST_ONLY)$(DUMP),,$(call Build/DefaultTargets,$(1))) ...
: PKG_NAME:软件包名称,将在menuconfig和ipkg可以看到。 PKG_VERSION:软件版本号。 PKG_RELEASE:Makefile的版本号 PKG_SOURCE:源代码的文件名。 PKG_SOURCE_URL:源代码的下载网站位置。 PKG_MD5SUM:源代码文件的效验码。用于核对软件包是否下载正确。
opkg 工具 (一个 ipkg 变种) 是一个用来从本地软件仓库或互联网软件仓库上下载并安装 OpenWrt 软件包的轻量型软件包管理器。 GNU/Linux 用户可能会对 apt-get,aptitude,pacman,yum 等比较熟悉,也会看出其相似之处。它与 NSLU2 上同样用于嵌入式设备的 Optware 也有相似之处。OPKG 没有仅仅将软件安装到一...
${IPKG_INSTROOT}/lib/functions.sh default_postinst$0 $@ Package/prerm 脚本#!/bin/sh . ${IPKG_INSTROOT}/lib/functions.sh default_prerm $0$@ 而若不是最新编译的固件, /lib/functions.sh 中是没有 default_postinst default_prerm函数的,所以会造成 127错误。
Menuconfig menuconfig是一个基于文本的工具,它处理选择的目标(需要还是不需要)、编译生成软件包(openwrt下是IPKG格式)以及内核选项(编译成模块还是内核)等等 # make menuconfig 在你离开并保存配置文件(默认都是.config)后,将自动配置依赖关系,让你可以着手编译更新的固件。 大众可通过'menuconfig'这一简单的图形化的...