Ipq40xx image builder fails for GL-Inet B1300

Just downloaded the snapshot image builder for ipq40xx and it fails to build an image for GL-Inet B1300:

$ make image PROFILE=glinet_gl-b1300
Building images for ipq40xx - GL.iNet GL-B1300
Packages: ath10k-firmware-qca4019 base-files busybox dnsmasq dropbear firewall fstools ip6tables ipq-wifi-glinet_gl-b1300 iptables kernel kmod-ath10k kmod-gpio-button-hotplug kmod-ipt-offload kmod-leds-gpio kmod-usb-dwc3-of-simple kmod-usb-phy-qcom-dwc3 kmod-usb3 libc libgcc logd mtd netifd odhcp6c odhcpd-ipv6only opkg ppp ppp-mod-pppoe swconfig uci uclient-fetch wpad-mini
...
Unknown package 'ipq-wifi-glinet_gl-b1300'.
...
Collected errors:
 * opkg_install_cmd: Cannot install package ipq-wifi-glinet_gl-b1300.
Makefile:134: recipe for target 'package_install' failed
make[2]: *** [package_install] Error 255
Makefile:100: recipe for target '_call_image' failed
make[1]: *** [_call_image] Error 2
Makefile:175: recipe for target 'image' failed
make: *** [image] Error 2

I'm not really familiar with imagebuilder, but it builds from source just fine - roughly following quickstart-build-images:

$ mkdir -p /tmp/pkg
$ cd /tmp/pkg
$ git clone https://git.lede-project.org/source.git
$ cd source
$ ./scripts/feeds update -a
$ ./scripts/feeds install -a
$ cat >.config <<EOF
CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
CONFIG_TARGET_ipq40xx=y
CONFIG_TARGET_DEVICE_ipq40xx_DEVICE_glinet_gl-b1300=y
CONFIG_TARGET_DEVICE_PACKAGES_ipq40xx_DEVICE_glinet_gl-b1300=""
CONFIG_PACKAGE_luci=y
EOF
$ make defconfig oldconfig
$ time make -j$(($(nproc) * 2))
$ du -hs bin/targets/ipq40xx/generic/*
4,0K    bin/targets/ipq40xx/generic/config.seed
6,1M    bin/targets/ipq40xx/generic/openwrt-ipq40xx-glinet_gl-b1300-initramfs-fit-uImage.itb
5,6M    bin/targets/ipq40xx/generic/openwrt-ipq40xx-glinet_gl-b1300-squashfs-sysupgrade.bin
4,0K    bin/targets/ipq40xx/generic/openwrt-ipq40xx.manifest
1,4M    bin/targets/ipq40xx/generic/packages
4,0K    bin/targets/ipq40xx/generic/sha256sums

(this 'needlessly' enables luci and multi-profile/ device specific rootfs', but building such a minimal set of packages shouldn't take much longer than 15-40 minutes and requires at least 10 GB free space, of course you can extend your package selection after "make defconfig oldconfig" via "make menuconfig" or "make xconfig")

What I can imagine to confuse imagebuilder though is ipq-wifi-glinet_gl-b1300 replacing parts of ath10k-firmware-qca4019 (namely /lib/firmware/ath10k/QCA4019/hw1.0/board-2.bin), while imagebuilder stumbling over this would be a bug in opkg (if opkg falls over the file duplication - or a packaging bug in ipq-wifi because of the underscore, which isn't allowed in package names), the reason for doing so will be obsolete in a couple of days PR#881.

As far as I understand -- IB fails because the package ipq-wifi-glinet_gl-b1300 does not exist/doesn't get created by the build bots.

Maybe the IB profile for B1300 is outdated, because it explicitly includes ipq-wifi-glinet_gl-b1300.

Thanks to

https://github.com/openwrt/openwrt/commit/856f0d5d0d9bd3248cee136cea90749a80d5b3d9

merged just two hours ago, this issue should now be fixed, but it might take a few more hours before the snapshot/ imagebuilder binaries contain those changes.

1 Like