Newbie questions regarding flashing TP-Link Archer C20 AC750 v1 (EU)

Hi there,

Can someone help a newbie with a couple of things, that I don't quite get regarding flashing this router. In the past, have flashed couple of devices with stable releases of OpenWrt each downloaded from the stable branch, but this time my goal is to create custom image for the device, so I can omit some things, that don't need and include others, that I do.

Following this Beginners guide to building your own firmware and this Quick Image Building Guide guides I managed without a problem to bring up VM with Debian server and setup an Image Builder instance to create my custom 19.07.2 firmware image so can reduce it's size and remove not needed packages. And here comes the part that I don't quite understand and have following questions about it:

  1. In the Image Builder config menu under LuCI->Protocols I can't deselect luci-proto-ppp since I don't need support for IPv6 and pppoe, tried to deselect all packages including them, but this last one I can't deselect.

  2. Leaving the mentioned option above selected, after all I successfully build a image (without any errors) with initramfs-kernel.bin, squashfs-factory.bin and squashfs-sysupgrade.bin files as result. I know that factory.bin is for flashing trough manufacturer official router web interface, sysupgrade.bin is for flashing through OpenWrt LuCI, but what kernel.bin is for???

  3. Although I managed to remove quite a lot of packages my factory.bin file still is 7.8 MB in size, which concern me since in the guide is stated "Make sure the image is at least about 500 KB less than the total amount of flash ROM" - the flash size for this device according to TOH is 8 MB. Another thing is that the stable release from device page is exactly the same size (7.8 MB) like my custom image! I found it quite impossible packages that included in my build to sum up as exact space as the stable release. My point is maybe I made mistake somewhere and the custom image is not a custom image but copy of the stable release.

  4. On the TOH for the device, there is a drop box link to some firmware file listed in Using TFTP method section for flashing OpenWrt, above in the table in Installation section there is another link to the current stable release. There is no information what are the differences between the two files and which one must be used for flashing.

  5. In this commit are flash instructions. Should I follow for example the second method (since I don't have UART connection) with my custom image for properly flashing it to the device?

  6. In the Beginners guide to building your own firmware there is this part "When you build your own firmware you can't use the downloadable kernel packages (packages named kmod-), so try to make sure you select everything you need. If you need more kernel modules later you will have to build a new firmware. It is also possible to select all the kernel modules using m and copy them to the router later if needed. Packages are placed in bin/targets///packages/." Does this mean that later I can't simply use the installer under System->Software in Web Interface to download and install additional packages if needed? Also I can't understand the part "It is also possible to select all the kernel modules using m and copy them to the router later if needed" how to copy them to the router, will this increase image size beyond the flash size of the device? Can someone point me to a guide or something?

Thanks in advance to everyone willing to help me on this. And excuse me if my questions are stupid!

Anyone? Partial answer is good too. Or some links to resources explaining things will be good too.


instead of building from scratch: Have you tried the imagebuilder to save space? See
I successfully build 19.07.3 (tiny) images for an old workhorse (TL-WR841N)
Had to remove quite a few packages to get under 4MB...

Thanks @Havelock, I'm using image builder as pointed in 1.