Name
Size
Modified
πŸ“ 23.05/ - Mon May 18 2026 1:41:55 PM
πŸ“ 24.10/ - Mon May 18 2026 1:41:55 PM
πŸ“ 25.12/ - Mon May 18 2026 1:41:55 PM
πŸ“ kmods/ - Mon May 18 2026 1:41:55 PM
πŸ“„ setup.sh πŸ«† 3.98 kB Mon May 11 2026 9:03:42 PM
πŸ“„ Zerogiven_Feed.pub πŸ«† 106 B Fri Dec 26 2025 9:58:59 AM
πŸ“„ Zerogiven_Feed.rsa.pub πŸ«† 178 B Sun May 10 2026 5:00:37 PM

Zerogiven OpenWRT Package Feed

Custom package feed for OpenWRT containing various packages and kernel modules.

Note: This feed is in an early beginning stage so it could happen that directory structure changes and your feed not updating anymore.

  • OpenWRT ≀ 24.10: remove all Zerogiven_* entries from /etc/opkg/customfeeds.conf and re-run setup.
  • OpenWRT β‰₯ 25.12: remove all Zerogiven feed lines from /etc/apk/repositories.d/customfeeds.list and re-run setup.

Automated Setup (setup.sh)

The script automatically detects whether your router uses opkg (OpenWRT ≀ 24.10) or apk (OpenWRT β‰₯ 25.12) and configures the feeds accordingly:

wget -qO - https://raw.githubusercontent.com/Zerogiven-OpenWRT-Packages/package-feed/refs/heads/main/setup.sh | sh

Quick Setup (Copy & Paste)

OpenWRT β‰₯ 25.12 (apk)

# Get OpenWRT version (minor for packages, patch for kmods)
V=$(grep DISTRIB_RELEASE /etc/openwrt_release | cut -d"'" -f2 | cut -d'.' -f1,2)
VP=$(grep DISTRIB_RELEASE /etc/openwrt_release | cut -d"'" -f2)
# Get CPU arch
A=$(cat /etc/apk/arch 2>/dev/null || apk --print-arch)
# Get target/subtarget
T=$(grep DISTRIB_TARGET /etc/openwrt_release | cut -d"'" -f2)

# Add feeds to /etc/apk/repositories.d/customfeeds.list
mkdir -p /etc/apk/repositories.d
grep -q "package-feed/raw/main/$V/packages/$A" /etc/apk/repositories.d/customfeeds.list 2>/dev/null || \
  echo "https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/$V/packages/$A/packages.adb" >> /etc/apk/repositories.d/customfeeds.list
grep -q "package-feed/raw/main/$V/all" /etc/apk/repositories.d/customfeeds.list 2>/dev/null || \
  echo "https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/$V/all/packages.adb" >> /etc/apk/repositories.d/customfeeds.list
# Kernel modules (optional)
grep -q "package-feed/raw/main/kmods/$VP/$T" /etc/apk/repositories.d/customfeeds.list 2>/dev/null || \
  echo "https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/kmods/$VP/$T/packages.adb" >> /etc/apk/repositories.d/customfeeds.list

# Add public key
mkdir -p /etc/apk/keys
wget -qO /etc/apk/keys/Zerogiven_Feed.rsa.pub https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/Zerogiven_Feed.rsa.pub

apk update

OpenWRT ≀ 24.10 (opkg)

# Get OpenWRT version (minor for packages, patch for kmods)
V=$(grep DISTRIB_RELEASE /etc/openwrt_release | cut -d"'" -f2 | cut -d'.' -f1,2)
VP=$(grep DISTRIB_RELEASE /etc/openwrt_release | cut -d"'" -f2)
# Get CPU arch
A=$(opkg print-architecture | grep -v all | tail -1 | awk '{print $2}')
# Get target/subtarget
T=$(grep DISTRIB_TARGET /etc/openwrt_release | cut -d"'" -f2)

# Add arch-specific packages
grep -q Zerogiven_Feed /etc/opkg/customfeeds.conf || echo "src/gz Zerogiven_Feed https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/$V/packages/$A" >> /etc/opkg/customfeeds.conf
# Add arch-independent packages (LuCI apps, etc.)
grep -q Zerogiven_All /etc/opkg/customfeeds.conf || echo "src/gz Zerogiven_All https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/$V/all" >> /etc/opkg/customfeeds.conf
# Add kmods (optional) - uses patch version (e.g., 24.10.3)
grep -q Zerogiven_Kmod_Feed /etc/opkg/customfeeds.conf || echo "src/gz Zerogiven_Kmod_Feed https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/kmods/$VP/$T" >> /etc/opkg/customfeeds.conf

# Add public key
wget -qO /tmp/key.pub https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/Zerogiven_Feed.pub && opkg-key add /tmp/key.pub

opkg update

Manual Setup

OpenWRT β‰₯ 25.12 (apk)

1. Add Feeds to /etc/apk/repositories.d/customfeeds.list

Edit /etc/apk/repositories.d/customfeeds.list and add:

https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/<OpenWRT_Version>/packages/<cpu_arch>/packages.adb
https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/<OpenWRT_Version>/all/packages.adb
https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/kmods/<OpenWRT_Patch_Version>/<target>/<subtarget>/packages.adb

Replace the placeholders:

  • <OpenWRT_Version> - Your OpenWRT minor version (e.g., 25.12)
  • <OpenWRT_Patch_Version> - Your OpenWRT full version including patch (e.g., 25.12.1)
  • <cpu_arch> - Your CPU architecture (e.g., x86_64, aarch64_cortex-a53)
  • <target> - Your target platform (e.g., x86, mediatek)
  • <subtarget> - Your subtarget (e.g., 64, filogic)

2. Add Public Key

mkdir -p /etc/apk/keys
wget https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/Zerogiven_Feed.rsa.pub \
  -O /etc/apk/keys/Zerogiven_Feed.rsa.pub

3. Update Package Lists

apk update

4. Persist Key Across Sysupgrade (optional)

OpenWRT's default sysupgrade backup may not include /etc/apk/keys/, in which case the key is lost after a firmware update and apk update will fail signature verification until it is reinstalled. To preserve it explicitly, add the path to /etc/sysupgrade.conf:

grep -q '^/etc/apk/keys/Zerogiven_Feed.rsa.pub$' /etc/sysupgrade.conf 2>/dev/null || \
  echo '/etc/apk/keys/Zerogiven_Feed.rsa.pub' >> /etc/sysupgrade.conf

If you skip this, simply re-run setup.sh after each sysupgrade to reinstall the key.

This step is only relevant for OpenWRT >= 25.12. On OpenWRT <= 24.10, /etc/opkg/keys/ is preserved by default and no action is needed.


OpenWRT ≀ 24.10 (opkg)

1. Add Feeds to customfeeds.conf

Edit /etc/opkg/customfeeds.conf and add:

# Arch-specific packages
src/gz Zerogiven_Feed https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/<OpenWRT_Version>/packages/<cpu_arch>

# Arch-independent packages (LuCI apps, themes, translations, etc.)
src/gz Zerogiven_All https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/<OpenWRT_Version>/all

# Kernel modules (optional) - requires patch version!
src/gz Zerogiven_Kmod_Feed https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/kmods/<OpenWRT_Patch_Version>/<target>/<subtarget>

Replace the placeholders:

  • <OpenWRT_Version> - Your OpenWRT minor version (e.g., 23.05, 24.10)
  • <OpenWRT_Patch_Version> - Your OpenWRT full version including patch (e.g., 24.10.3)
  • <cpu_arch> - Your CPU architecture (e.g., x86_64, aarch64_cortex-a53)
  • <target> - Your target platform (e.g., x86, mediatek, bcm27xx)
  • <subtarget> - Your subtarget (e.g., 64, filogic, bcm2710)

2. Add Public Key

wget https://github.com/Zerogiven-OpenWRT-Packages/package-feed/raw/main/Zerogiven_Feed.pub -O /tmp/Zerogiven_Feed.pub
opkg-key add /tmp/Zerogiven_Feed.pub

3. Update Package Lists

opkg update

Feed Structure

Feed Directory Index File Contents
Packages <version>/packages/<arch>/ packages.adb / Packages.gz Architecture-specific packages
All <version>/all/ packages.adb / Packages.gz Architecture-independent packages (LuCI apps, themes, translations)
Kmods kmods/<patch_version>/<target>/<subtarget>/ packages.adb / Packages.gz Kernel modules (tied to specific kernel version)

Note: OpenWRT β‰₯ 25.12 uses packages.adb (read by apk). OpenWRT ≀ 24.10 uses Packages.gz (read by opkg). Kernel modules require the full patch version because they are compiled against a specific kernel version.