[SOLVED] Imagebuilder, "No rule to make target" with profile="tplink_tdw8970"

Hi all,

hope this is the right place (category) to post this issue...

I'm using imagebuilder with success since 21.x.x release but I'm now struggling to get my 23.05.2 custom image (dumb AP) for profile="tplink_tdw8970" as I get the following error:

make[3]: *** No rule to make target '/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/arcadyan_arv7519rw22-kernel.bin', needed by '/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/tmp/openwrt-23.05.2-lantiq-xrx200-arcadyan_arv7519rw22-squashfs-sysupgrade.bin'.  Stop.
make[2]: *** [Makefile:208: build_image] Error 2
make[1]: *** [Makefile:146: _call_image] Error 2
make: *** [Makefile:262: image] Error 2

(Why arcadyan_arv7519rw22-kernel.bin? :thinking:)

The error appears even if, for test purposes only, the make image command contains as single package only, e.g.:

make image profile="tplink_tdw8970" packages="base-files " files="files" bin_dir="/home/PR-IMAGE/23.05.2"

What info do you need to try to help me?

Thanks a lot in advance.

What is the output of:

make info | grep 8970
$ make info | grep 8970
tplink_tdw8970:
    TP-Link TD-W8970 v1
    SupportedDevices: tplink,tdw8970 TDW8970

Disclaimer: the build system is not my area of expertise.

Check to see if the arcadyan device profile was activated in the make files in general. Or, maybe grab a fresh copy of the image builder in case you can't find it. Or try it using the firmware-selector.

This does work... just tested.

It doesn’t look like that is the actual build error that cause the error.

As usual when these kind of forum treads are done with the error message and the line above, they give to little info.

When the building process runs in to a error it say error and stops the build process. But this is a freight train in full speed so you have a couple of 100lines with stop log messages between the error reason and the error message.
You have only given the error message and the last break log.

You have to scroll up in the log and find the actual error.

The lantiq xrx200 was marked "source-only" since May, and that was reverted just a month ago. So, there might still be problems.

But the normal downloadable images are there for 23.05.2:

|tplink_tdw8970-initramfs-kernel.bin|b3f79613fc29d18c56da3ace0e1151ccaf3f845460ed4cf90c847605714bfb34|6085.6 KB|Wed Nov 15 01:16:27 2023|
|tplink_tdw8970-squashfs-sysupgrade.bin|4c5b120379473316b4e1608715503ba7e29218cc1ad1b94c87381fef22f48467|7296.6 KB|Wed Nov 15 01:16:33 2023|

So, hard to figure out why 23.05.2 imagebuild would fail to have that device.

Ps. The target is also mentioned as problematic in the known issues of 23.05.2:

Known issues

As far as I can see (understand), there are no other errors in the log; anyway, here follows the last 53 lines...:

Building images...
Parallel mksquashfs: Using 8 processors
Creating 4.0 filesystem on /home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/root.squashfs, block size 262144.
Pseudo file "dev" exists in source filesystem "/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/root-lantiq/dev".
Ignoring, exclude it (-e/-ef) to override.
[=============================================================================================================================================================================================================================/] 695/695 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 262144
	compressed data, compressed metadata, compressed fragments,
	no xattrs, compressed ids
	duplicates are removed
Filesystem size 3113.46 Kbytes (3.04 Mbytes)
	26.99% of uncompressed filesystem size (11533.71 Kbytes)
Inode table size 6372 bytes (6.22 Kbytes)
	19.86% of uncompressed inode table size (32092 bytes)
Directory table size 9434 bytes (9.21 Kbytes)
	45.99% of uncompressed directory table size (20514 bytes)
Number of duplicate files found 109
Number of inodes 962
Number of files 691
Number of fragments 40
Number of symbolic links 193
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 77
Number of hard-links 0
Number of ids (unique uids + gids) 1
Number of uids 1
	unknown (0)
Number of gids 1
	unknown (0)
[mktplinkfw2] rootfs offset aligned to 0x2816952
[mktplinkfw2] firmware file "/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/tmp/openwrt-23.05.2-lantiq-xrx200-tplink_tdw8970-squashfs-sysupgrade.bin.new" completed
[mktplinkfw2] rootfs offset aligned to 0x2816984
[mktplinkfw2] firmware file "/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/tmp/openwrt-23.05.2-lantiq-xrx200-tplink_tdw8980-squashfs-sysupgrade.bin.new" completed
[mktplinkfw2] rootfs offset aligned to 0x2817020
[mktplinkfw2] firmware file "/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/tmp/openwrt-23.05.2-lantiq-xrx200-tplink_vr200-squashfs-sysupgrade.bin.new" completed
[mktplinkfw2] rootfs offset aligned to 0x2817100
[mktplinkfw2] firmware file "/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/tmp/openwrt-23.05.2-lantiq-xrx200-tplink_vr200v-squashfs-sysupgrade.bin.new" completed
5500+1 records in
5500+1 records out
2816160 bytes (2.8 MB, 2.7 MiB) copied, 0.00540844 s, 521 MB/s
6226+1 records in
6226+1 records out
3188184 bytes (3.2 MB, 3.0 MiB) copied, 0.00652036 s, 489 MB/s
padding image to 005ba000
padding image to 005bc000
padding image to 005c0000
make[3]: *** No rule to make target '/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/arcadyan_arv7519rw22-kernel.bin', needed by '/home/upaoron/bin/openwrt-imagebuilder-23.05.2-lantiq-xrx200.Linux-x86_64/build_dir/target-mips_24kc_musl/linux-lantiq_xrx200/tmp/openwrt-23.05.2-lantiq-xrx200-arcadyan_arv7519rw22-squashfs-sysupgrade.bin'.  Stop.
make[2]: *** [Makefile:208: build_image] Error 2
make[1]: *** [Makefile:146: _call_image] Error 2
make: *** [Makefile:262: image] Error 2

Yes it works, thanks, but it gives not 100% control to me as imagebuilder does... so I would prefere to solve the problem and use it.

Unfortunately the normal image is not suitable because to "save space" I need to remove some packages (e.g. vdsl, ppp, dnsmasq etc) and add others (e.g. kmod-usb-storage kmod-usb2 kmod-usb-uhci etc.) to use my old tdw8970 as dumb AP with extroot and other things...

Understood.

Given that your goal is to remove some packages to save enough space to install a few others, the firmware-selector build process would certainly work for that part.

What other control do you need in your situation? While you can't easily add additional general "files," you can do UCI scripts for firstboot that will setup the desired default state for a lot of the configs in the firmware... are there other things you need to do that can't be achieved with the UCI scripts?

Are you sure that your build command is right, PROFILE with uppercase etc. ?

Looking at the error you got,

makes me to think that the build system does not see the PROFILE and tries build all devices, and fails with the alphabetically first (as it happens to be disabled, without buildbot having built it).

1 Like

@psherman

Given that your goal is to remove some packages to save enough space to install a few others, the firmware-selector build process would certainly work for that part.

Yes, it would, but I'd like to find out what's wrong with imagebuilder to play an active small part by helping imagebuilder guys. Using firmware-selector is my contingency plan.

@hnyman

makes me to think that the build system does not see the PROFILE and tries build all devices, and fails with the alphabetically first (as it happens to be disabled, without buildbot having built it).

I do think you're right. To check that, I erase everything, run

make image profile="avm_fritz3370-rev2-hynix" packages="base-files " files="files" bin_dir="/home/upaoron/Dropbox/DOCS/HARDWARE/TP-Link_TD-W8970/openWRT/Firmware/PR-IMAGE/23.05.2"

in a new and clean "environment" and got exactly the same messages (arcadyan_arv7519rw22-kernel.bin).

It could be a problem in Makefile or .config or .targetinfo or elsewhere, but I'm not able to debug imagebuilder by myself; so I'm willing to help who wants to investigate and solve.

Your example still had the lowercase "profile". Why?

How about running:
make image PROFILE="avm_fritz3370-rev2-hynix" FILES="files"

Ps. I have no idea, why you would specify base-files separately. It is always included (and needs to be included)

1 Like

Gosh......'cause yesterday I had another error running make which disappeared when lowercase; so I wrongly thought something was changed in imagebulder...

Anyway, running make with PROFILE, PACKAGES, FILES and BIN_DIR in uppercase all works fine as usual: sorry, my big mistake, but lesson learned.

I must thank you and the other guys who tried to help me.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.