如何在 OpenWRT 中创建自定义包提要?

How does one create a custom package feed in OpenWRT?

我有许多在 OpenWRT 下构建的自定义包,我想将它们添加到自定义提要中,这样我就可以让 IoT 设备为这些自定义包提取更新。

我查看了所有 OpenWRT 文档并进行了几次 google 搜索,但没有找到任何细节。我在哪里可以找到创建自定义提要所需文件的文档、教程或示例?

参见 OpenWRT official doc:

路由器配置

配置 OpenWRT 路由器以了解新的自定义提要位置;在 /etc/opkg.conf 添加这样的内容

# customfeeds
src/gz custompackages http://s3.amazonaws.com/mycustompackages-orwhatever

假设您进行包签名,您还需要接受您的自定义签名密钥。

wget http://s3.amazonaws.com/mycustompackages/public.key
opkg-key add public.key

需要服务器文件

现在你需要设置 HTTP 服务器,我已经成功地建立了一个 S3 存储桶。

  • Packages.gz - 包的压缩版本
  • Packages - 包的未压缩版本
  • Packages.sig -
  • custom_public.key -
  • yourpackage.ipk - 实际要安装的ipk包文件

如何创建文件

  • 您可以使用 ipkg-build 创建 ipk 文件;我用过 this version
  • 您可以使用 ipkg-make-index.sh 脚本创建 Packages 索引文件。 (我用过this one
  • 通过 gzip 压缩 Packages 文件获得 Packages.gz
  • 使用 usign 为包签名创建 Private/Public 密钥
  • 也使用 usign 创建 Packages.sig 文件

示例脚本

此示例假设您的私钥是 private.key

ipkg-build mypackage .
mv mypackage.ipk packages/
cd packages
../ipkg-make-index.sh . > Packages
usign -S -m Packages -s ../keys/private.key -x Packages.sig
gzip -fk Packages