[Solved] Build minimal image for dumb AP

Hello.

I have 2 old APs. They have no space even for wpad-basic (i want it do use 802.11r).
Since whey will be "dumb", i tried to build a custom image (no DHCP server, firewall, ppp, etc). I flashed and realize it have no Luci. Then i learned that Luci demands:

./scripts/feed update
./scripts/feed install -a

So i did it. Now i cannot compile. First i get lots of warnings like:

WARNING: Makefile 'package/feeds/telephony/yate/Makefile' has a dependency on 'libsqlite3', which does not exist

but i didn't choose most os packages.
Then i get a error

make -r world: build failed. Please re-run make with -j1 V=s or V=sc for a higher verbosity level to see what's going on
make: *** [/home/dqo/Desktop/openwrt/openwrt/include/toplevel.mk:236: world] Error 1

I believe i messed something up.

I used https://openwrt.org/docs/guide-user/additional-software/saving_space as base, but tried to remove more things than this, since o will not need.

Any clues? Thank's.

Build system usage > Troubleshooting

1 Like

For your use case, using the image builder is easier than building all the packages from scratch yourself.

5 Likes

I did. But even with image builder, first try i ended up with no Luci. Second (after feed Luci), no luck.
I decided to start again from scratch, but now i'm getting error when trying to git clone. Will keep trying.

I configured it directly by files and it's working, but i would like to have Luci.

Try doing it without LuCI?

1 Like

You do not do need to "git clone" with the image builder, are you using the image builder (https://openwrt.org/docs/guide-user/additional-software/imagebuilder), or are you trying to build your image from scratch?

2 Likes

Thanks, i believe now i got it. I made a mess with two names (two pages). This one you mention and this:
https://openwrt.org/docs/guide-developer/quickstart-build-images
I thought "quick image building" was related to "image builder".
I will try image builder today after work. The main goal is just to have wpad-basic, since the device does not have space for this. I will solve my "problem" first and later i will try to learn more about building from srcatch and create a cleanner image for a dumb AP. No WAN port (so i get one more LAN port), PPP, DHCP server, DNS, firewall, etc.

Any tips wich package i could remove using image builder?

Looks like this is the best i can do for now.

make image PROFILE=tl-wr741nd-v4 PACKAGES=“uhttpd uhttpd-mod-ubus libiwinfo-lua luci-base luci-app-firewall luci-mod-admin-full luci-theme-bootstrap -ppp -ppp-mod-pppoe -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd -iptables -odhcpd-ipv6only ” CONFIG_IPV6=n

Not sure about the -opkg option and CONFIG_KERNEL_PRINTK=n.

After a long wait for download image builder (it took hours), i tried to build image.
First i got:

Collected errors:
 * check_conflicts_for: The following packages conflict with wpad-basic-wolfssl:
 * check_conflicts_for: 	wpad-basic * 
 * opkg_install_cmd: Cannot install package wpad-basic-wolfssl.

Then i removed the wpad-basic-wolfssl (with one should i keep?) and ended up with this command:

make image PROFILE=tplink_tl-wr741nd-v4 PACKAGES=“uhttpd uhttpd-mod-ubus libiwinfo-lua luci-base luci-app-firewall luci-mod-admin-full luci-theme-bootstrap wpad-basic -ppp -ppp-mod-pppoe -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd -iptables -odhcpd-ipv6only -wpad-mini -wpad-basic-wolfssl”

Now i'm stucked with:

[mktplinkfw] rootfs offset aligned to 0x1745764
[mktplinkfw] *** error: images are too big by 769484 bytes
Failed to open firmware file
cp: cannot stat '/path/squashfs-sysupgrade.bin': No such file or directory
Skip JSON creation for non existing image  /path/squashfs-sysupgrade.bin
[mktplinkfw] rootfs offset aligned to 0x1745764
[mktplinkfw] *** error: images are too big by 769484 bytes
cp: cannot stat '/path/squashfs-factory.bin': No such file or directory
Skip JSON creation for non existing image  /path/squashfs-factory.bin
JSON info file script could not find any JSON files for target

Since i removed some packages, and included only the wpad-basic, i expected to have enough space. I know dependencies changes. I didn't calculate all that got in and out, but even way i expected to fit. Do it remove all unnecessary dependencies automatically when i remove a package?

Maybe could a be doing something wrong or no deal to me?

Instead of "make image", do a "make manifest" to see the list of packages that would be included in the image. Perhaps some dependencies included some large packages.

2 Likes

One short question on using the image builder
When downloading, should I download the only file with "ImageBuilder" keyword or I should also download other files together with it?

Thank's for your help.

First, i started getting some download errors on expected size. So i did a make clean. Then i tried to just make image and see what happens. And i got the same error (too big), wich i do not expect with "default" options. Them i compared the make manifest just after make clean with the image available on the site. And looks like it's not the same. The site image uses wpad-mini, and the make image uses wpad-basic-openssl.

I did the make manifest with my options. This is the result. I'm not sure what to do. I notice dnsmasq and firewall package. I don't need them since will not use this as a router. But Luci have a package luci-app-firewall that depends on "firewall". So i can remove it too. But i'm afraid of removing packages needed by other ones and brake it all. Could i remove all kmod-ipt-* and kmod-nf-*? If i remove something wrong, should i get an error or warning?

make manifest PROFILE=tplink_tl-wr741nd-v4 PACKAGES="uhttpd uhttpd-mod-ubus libiwinfo-lua luci-base luci-app-firewall luci-mod-admin-full luci-theme-bootstrap -ppp -ppp-mod-pppoe -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd -iptables -odhcpd-ipv6only -wpad-mini wpad-basic -wpad-basic-wolfssl"
Downloading <URL>targets/ath79/tiny/packages/Packages.gz
Updated list of available packages in /<path>/openwrt-imagebuilder-ath79-tiny.Linux-x86_64/dl/openwrt_core
Downloading <URL>packages/mips_24kc/base/Packages.gz
Updated list of available packages in /<path>/openwrt-imagebuilder-ath79-tiny.Linux-x86_64/dl/openwrt_base
Downloading <URL>packages/mips_24kc/freifunk/Packages.gz
Updated list of available packages in /<path>/openwrt-imagebuilder-ath79-tiny.Linux-x86_64/dl/openwrt_freifunk
Downloading <URL>packages/mips_24kc/luci/Packages.gz
Updated list of available packages in /<path>/openwrt-imagebuilder-ath79-tiny.Linux-x86_64/dl/openwrt_luci
Downloading <URL>packages/mips_24kc/packages/Packages.gz
Updated list of available packages in /<path>/openwrt-imagebuilder-ath79-tiny.Linux-x86_64/dl/openwrt_packages
Downloading <URL>packages/mips_24kc/routing/Packages.gz
Updated list of available packages in /<path>/openwrt-imagebuilder-ath79-tiny.Linux-x86_64/dl/openwrt_routing
Downloading <URL>packages/mips_24kc/telephony/Packages.gz
Updated list of available packages in /<path>/openwrt-imagebuilder-ath79-tiny.Linux-x86_64/dl/openwrt_telephony
Downloading file:packages/Packages
Updated list of available packages in /<path>/openwrt-imagebuilder-ath79-tiny.Linux-x86_64/dl/imagebuilder
base-files - 233-r14777-c4ab1b7dd9
busybox - 1.31.1-5
ca-bundle - 20200601-1
cgi-io - 2020-10-11-d2907bd1-19
dnsmasq - 2.82-7
dropbear - 2020.80-3
firewall - 2020-09-05-8c2f9fad-1
fstools - 2020-10-16-f25ab8a8-1
fwtool - 2019-11-12-8f7fe925-1
getrandom - 2020-10-25-9ef88681-1
hostapd-common - 2020-06-08-5a8b3662-12
iw-full - 5.8-1
jshn - 2020-08-06-9e52171d-1
jsonfilter - 2018-02-04-c7e938d6-1
kernel - 5.4.72-1-7be1dc068186e395a52d462ec203640e
kmod-ath - 5.4.72+5.8-1-1
kmod-ath9k - 5.4.72+5.8-1-1
kmod-ath9k-common - 5.4.72+5.8-1-1
kmod-cfg80211 - 5.4.72+5.8-1-1
kmod-gpio-button-hotplug - 5.4.72-3
kmod-ipt-conntrack - 5.4.72-1
kmod-ipt-core - 5.4.72-1
kmod-ipt-nat - 5.4.72-1
kmod-ipt-offload - 5.4.72-1
kmod-ledtrig-default-on - 5.4.72-1
kmod-ledtrig-heartbeat - 5.4.72-1
kmod-ledtrig-netdev - 5.4.72-1
kmod-ledtrig-timer - 5.4.72-1
kmod-mac80211 - 5.4.72+5.8-1-1
kmod-nf-conntrack - 5.4.72-1
kmod-nf-conntrack6 - 5.4.72-1
kmod-nf-flow - 5.4.72-1
kmod-nf-ipt - 5.4.72-1
kmod-nf-nat - 5.4.72-1
kmod-nf-reject - 5.4.72-1
libblobmsg-json - 2020-08-06-9e52171d-1
libc - 1.1.24-2
libgcc1 - 8.4.0-2
libip4tc2 - 1.8.4-1
libip6tc2 - 1.8.4-1
libiwinfo-lua - 2020-06-03-2faa20e5-1
libiwinfo20200105 - 2020-06-03-2faa20e5-1
libjson-c5 - 0.15-1
libjson-script - 2020-08-06-9e52171d-1
liblua5.1.5 - 5.1.5-7
liblucihttp-lua - 2019-07-05-a34a17d5-1
liblucihttp0 - 2019-07-05-a34a17d5-1
libnl-tiny - 2019-10-29-0219008c-1
libpthread - 1.1.24-2
libubox20191228 - 2020-08-06-9e52171d-1
libubus-lua - 2020-10-25-ad0cd117-1
libubus20191227 - 2020-10-25-ad0cd117-1
libuci20130104 - 2020-04-24-ec8d3233-3
libuclient20160123 - 2020-06-17-c6609861-1
libustream-wolfssl20200215 - 2020-03-13-5e1bc342-1
libwolfssl24 - 4.5.0-stable-2
libxtables12 - 1.8.4-1
logd - 2020-10-25-9ef88681-1
lua - 5.1.5-7
luci-app-firewall - git-20.186.82319-0abcb39
luci-base - git-20.295.56858-b0fe11f
luci-lib-base - git-20.201.65675-68521fc
luci-lib-ip - git-20.250.76529-62505bd
luci-lib-jsonc - git-20.113.70804-9d02ef1
luci-lib-nixio - git-20.234.06894-c4a4e43
luci-mod-admin-full - git-20.113.70804-9d02ef1
luci-mod-network - git-20.282.02609-6c9a6c3
luci-mod-status - git-20.113.70804-9d02ef1
luci-mod-system - git-20.280.34248-a75ae38
luci-theme-bootstrap - git-20.229.69577-258e74c
mtd - 26
netifd - 2020-10-22-24ce1eab-1
openwrt-keyring - 2019-07-25-8080ef34-1
opkg - 2020-08-31-cf44c2fe-1
procd - 2020-10-25-33b799b9-1
rpcd - 2020-09-18-3fea6559-2
rpcd-mod-file - 2020-09-18-3fea6559-2
rpcd-mod-iwinfo - 2020-09-18-3fea6559-2
rpcd-mod-luci - 20191114
swconfig - 12
uboot-envtools - 2020.04-4
ubox - 2020-10-25-9ef88681-1
ubus - 2020-10-25-ad0cd117-1
ubusd - 2020-10-25-ad0cd117-1
uci - 2020-04-24-ec8d3233-3
uclient-fetch - 2020-06-17-c6609861-1
uhttpd - 2020-10-04-14a3cb42-2
uhttpd-mod-ubus - 2020-10-04-14a3cb42-2
urandom-seed - 2
urngd - 2020-01-21-c7f7b6b6-1
usign - 2020-05-23-f1f65026-1
wireless-regdb - 2020.04.29-1
wpad-basic - 2020-06-08-5a8b3662-12
Collected errors:
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_core <URL>targets/ath79/tiny/packages). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_base <URL>packages/mips_24kc/base). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_freifunk <URL>packages/mips_24kc/freifunk). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_luci <URL>packages/mips_24kc/luci). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_packages <URL>packages/mips_24kc/packages). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_routing <URL>packages/mips_24kc/routing). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_telephony <URL>packages/mips_24kc/telephony). Skipping.

I tried removing all the packages i mention, no luck yet.

make image PROFILE=tplink_tl-wr741nd-v4 PACKAGES="uhttpd uhttpd-mod-ubus libiwinfo-lua luci-base -luci-app-firewall luci-mod-admin-full luci-theme-bootstrap wpad-basic -ppp -ppp-mod-pppoe -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd -iptables -odhcpd-ipv6only -wpad-mini -wpad-basic-wolfssl -dnsmasq -firewall -kmod-ipt-conntrack -kmod-ipt-core -kmod-ipt-nat -kmod-ipt-offload -dnsmasq -firewall -kmod-nf-conntrack -kmod-nf-conntrack6 -kmod-nf-flow -kmod-nf-ipt -kmod-nf-nat -kmod-nf-reject"

[mktplinkfw] *** error: images are too big by 507036 bytes

Then i decided to compare all packages in the manifest and on a similar router that use the site image (WR841). I realize that if i create a image now, it will use new versions of the packages, and i believe they are bigger. So after looking at many packages not in the WR841 i decided to remove 2 big packages (ca-bundle and libwolfssl24). No more "too big error", but i got

make manifest PROFILE=tplink_tl-wr741nd-v4 PACKAGES="uhttpd uhttpd-mod-ubus libiwinfo-lua luci-base -luci-app-firewall luci-mod-admin-full luci-theme-bootstrap wpad-basic -ppp -ppp-mod-pppoe -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd -iptables -odhcpd-ipv6only -wpad-mini -wpad-basic-wolfssl -dnsmasq -firewall -kmod-ipt-conntrack -kmod-ipt-core -kmod-ipt-nat -kmod-ipt-offload -dnsmasq -firewall -kmod-nf-conntrack -kmod-nf-conntrack6 -kmod-nf-flow -kmod-nf-ipt -kmod-nf-nat -kmod-nf-reject -ca-bundle -libwolfssl24"

Collected errors:
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_core https://downloads.openwrt.org/snapshots/targets/ath79/tiny/packages). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_base https://downloads.openwrt.org/snapshots/packages/mips_24kc/base). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_freifunk https://downloads.openwrt.org/snapshots/packages/mips_24kc/freifunk). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_luci https://downloads.openwrt.org/snapshots/packages/mips_24kc/luci). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_packages https://downloads.openwrt.org/snapshots/packages/mips_24kc/packages). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_routing https://downloads.openwrt.org/snapshots/packages/mips_24kc/routing). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_telephony https://downloads.openwrt.org/snapshots/packages/mips_24kc/telephony). Skipping.

Now i'm stucked. What does it mean?

I downloaded only one. In my case, https://downloads.openwrt.org/snapshots/targets/ath79/tiny/openwrt-imagebuilder-ath79-tiny.Linux-x86_64.tar.xz

Just the "image builder" package, it contains all the scripts and programs needed, and can download the packages by itself.

1 Like

This is a 4/32 device, and it's officially unsupported on OpenWrt. You need to create a really small image for it, stripping out everything you do not need; I would start with the web interface and all it's dependencies.

1 Like

Yes. That's why i'm trying to remove many packages. Look's like i got it, since make did not complain about "too big" anymore.

The problem now is the "Duplicate src declaration" error for some packages. I tried removing the dl folder content, but same error. Any ideas what it could be?

opkg_conf_parse_file: Duplicate src declaration (openwrt_core https://downloads.openwrt.org/snapshots/targets/ath79/tiny/packages). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_base https://downloads.openwrt.org/snapshots/packages/mips_24kc/base). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_freifunk https://downloads.openwrt.org/snapshots/packages/mips_24kc/freifunk). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_luci https://downloads.openwrt.org/snapshots/packages/mips_24kc/luci). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_packages https://downloads.openwrt.org/snapshots/packages/mips_24kc/packages). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_routing https://downloads.openwrt.org/snapshots/packages/mips_24kc/routing). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_telephony https://downloads.openwrt.org/snapshots/packages/mips_24kc/telephony). Skipping.

Actually, i made a image from scratch with the package i want, but no Luci. And i'd reather have Luci than other functions since i don't need them.

Are those errors, or just warnings? Does it build the image?

Do you really need a snapshot release, instead of a stable one?

2 Likes

It did not build the image.
About the snapshot, it does not make difference. I will try the stable one.
I will let you know the result. And if not sucess, will paste all the log.

Thank you for your help.

Well. Almost done. Image created.

Tried with stable release image builder.
First, i got a error:

Unknown package 'wpad-basic'.
...
Collected errors:

  • opkg_install_cmd: Cannot install package wpad-basic.
    make[2]: *** [Makefile:153: package_install] Error 255
    make[1]: *** [Makefile:114: _call_image] Error 2
    make: *** [Makefile:193: image] Error 2

Then i tried the wpad package (wich is bigger), and worked fine. Image created:
3932160 openwrt-18.06.8-ar71xx-tiny-tl-wr741nd-v4-squashfs-factory.bin
3407876 openwrt-18.06.8-ar71xx-tiny-tl-wr741nd-v4-squashfs-sysupgrade.bin

Why did it refuse to use wpad-basic if the package exist?

I will need to flash from command line (i don't have Luci now). Is it safe to flash this way a custom image? Or should i first flash a version and then flash the custom image with Luci?

And the :moneybag:1 million :moneybag: question:
Since it's created, is it safe to use? Of could i brick the device? I'm afraid after lots of tries.

The final "version" of make was:

make image PROFILE=tl-wr741-v4 PACKAGES="uhttpd uhttpd-mod-ubus libiwinfo-lua luci-base -luci-app-firewall luci-mod-admin-full luci-theme-bootstrap -ppp -ppp-mod-pppoe -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd -iptables -odhcpd-ipv6only -wpad-mini -wpad-basic-wolfssl -dnsmasq -firewall -kmod-ipt-conntrack -kmod-ipt-core -kmod-ipt-nat -kmod-ipt-offload -dnsmasq -firewall -kmod-nf-conntrack -kmod-nf-conntrack6 -kmod-nf-flow -kmod-nf-ipt -kmod-nf-nat -kmod-nf-reject -ca-bundle -libwolfssl24 wpad"

The manifest:

base-files - 194.3-r7989-82fbd85747
busybox - 1.28.4-3
dropbear - 2017.75-7.1
fstools - 2019-03-28-ff1ded63-5
fwtool - 1
hostapd-common - 2018-05-21-62566bc2-8
iw-full - 4.14-1
jshn - 2018-07-25-c83a84af-5
jsonfilter - 2018-02-04-c7e938d6-1
kernel - 4.9.214-1-db2d5425c674d1648616e3c37760e80e
kmod-ath - 4.9.214+2017-11-01-10
kmod-ath9k - 4.9.214+2017-11-01-10
kmod-ath9k-common - 4.9.214+2017-11-01-10
kmod-cfg80211 - 4.9.214+2017-11-01-10
kmod-gpio-button-hotplug - 4.9.214-2
kmod-mac80211 - 4.9.214+2017-11-01-10
libblobmsg-json - 2018-07-25-c83a84af-5
libc - 1.1.19-2
libgcc - 7.3.0-2
libiwinfo - 2018-07-31-65b8333f-1
libiwinfo-lua - 2018-07-31-65b8333f-1
libjson-c - 0.12.1-2.1
libjson-script - 2018-07-25-c83a84af-5
liblua - 5.1.5-2
liblucihttp - 2019-07-05-a34a17d5-1
liblucihttp-lua - 2019-07-05-a34a17d5-1
libnl-tiny - 0.1-5
libpthread - 1.1.19-2
libubox - 2018-07-25-c83a84af-5
libubus - 2018-10-06-221ce7e7-1
libubus-lua - 2018-10-06-221ce7e7-1
libuci - 2019-05-17-f199b961-1
libuclient - 2018-11-24-3ba74ebc-1
logd - 2018-02-14-128bc35f-2
lua - 5.1.5-2
luci-base - git-20.272.49300-479154e-1
luci-lib-ip - git-20.272.49300-479154e-1
luci-lib-jsonc - git-20.272.49300-479154e-1
luci-lib-nixio - git-20.272.49300-479154e-1
luci-mod-admin-full - git-20.272.49300-479154e-1
luci-theme-bootstrap - git-20.272.49300-479154e-1
mtd - 23
netifd - 2019-01-31-a2aba5c7-2.1
openwrt-keyring - 2018-05-18-103a32e9-1
opkg - 2020-01-25-c09fe209-1
procd - 2018-03-28-dfb68f85-1
rpcd - 2020-05-26-7be1f171-1
swconfig - 11
uboot-envtools - 2018.03-1
ubox - 2018-02-14-128bc35f-2
ubus - 2018-10-06-221ce7e7-1
ubusd - 2018-10-06-221ce7e7-1
uci - 2019-05-17-f199b961-1
uclient-fetch - 2018-11-24-3ba74ebc-1
uhttpd - 2020-02-12-2ee323c0-1
uhttpd-mod-ubus - 2020-02-12-2ee323c0-1
usign - 2020-05-23-f1f65026-1
wireless-regdb - 2017-10-20-4343d359
wpad - 2018-05-21-62566bc2-8

I ended up enjoying doing this. I'm a bit old to this, with few time available, but i really enjoyed. Will enjoy more if it works. But if i brick devices, will no be that fun. :smile:

Just a curious thing. I have a WR7141-v4 and a WR841-v8. So, i made 2 images, changing only the PROFILE. They got exactly the same size, but different hashes.

b27ce9165eafdf578ded2fa9f63776c0173565d788437a55eedab67e5b74b62a  openwrt-18.06.8-ar71xx-tiny-tl-wr741nd-v4-squashfs-sysupgrade.bin
5d28f5bf39fd0c8c8e2b7ab08c9005101174fbf71fdcd75d6717cf77e6b8688a  openwrt-18.06.8-ar71xx-tiny-tl-wr841-v8-squashfs-sysupgrade.bin
3407876 openwrt-18.06.8-ar71xx-tiny-tl-wr741nd-v4-squashfs-sysupgrade.bin
3407876 openwrt-18.06.8-ar71xx-tiny-tl-wr841-v8-squashfs-sysupgrade.bin

looks like you have selected two wpad option, or something like that,please select just one.
run this command and start again.
make distclean

2 Likes

I will try. I hadn't used the make distclean option. But anyway i had removed others wpads. Shouldn't it be the same?

Only to mention, it build the image with wpad package. Just got error (Unknown package) with wpad-basic.


make image PROFILE=tl-wr741-v4 PACKAGES="... -wpad-mini -wpad-basic-wolfssl  ... wpad"

Didn't work. Even dirclean. Only clean works.

$ make distclean
make: *** No rule to make target 'distclean'.  Stop.

Tried to flash but got an error. Looks like not serious, but would like help. Hash was ok. The version installed is a snapsho and this i tried do flash is older. Any precautions should i have to avoid brick? I had never downgraded OpenWRT.

root@OpenWrt:/tmp# sysupgrade -v -n openwrt-18.06.8-ar71xx-tiny-tl-wr741nd-v4-squashfs-sysupgrade.bin 
Image metadata not found
Use sysupgrade -F to override this check when downgrading or flashing to vendor firmware