A. Download build environment and source tree
I've followed the guidelines from OpenWRT - it went smooth as per instructions:
- Build system essentials - this give generic overview of build concept, cross-compilation, folders, etc.
- Build system setup - to understand what prerequisite packages need to be installed on host machine, and step-by-step commands to configure and execute build
- Dockerfile (optional) - this is recipe to run the build environment in docker container
B. Make trial build for CPE210v3 device
This step was relatively simply if you follow above instruction, but it is pretty lengthy. On my old NAS machine it took more than 2h to compile toolchain, packages and final kernel and flash images.
C. Understand factory image format for EAP115v4
It looks that the original images download from TP-Link web page are somehow SafeLoader format similar (more details in: tp-link-safeloader.c). However these are signed with RSA key (that's differs to CPE210 devices). There are some tricks to overcome signature check by stock firmware as per other TP-Link devices. While I have full backup of stock NOR flash let's park this problem for later.
D. Identify source files to be modified and create source files to be added
Here is what I believe need to be added to create proper Device Tree Structure (I'll base on CPE210 devices, changing LEDs configs):
openwrt/target/linux/ath79/dts/qca9533_tplink_eap11x.dtsi
openwrt/target/linux/ath79/dts/qca9533_tplink_eap115-v4.dts
These files need to be modified to reflect LED configuration and lack of network switch while only one LAN port in use:
target/linux/ath79/base-files/etc/board.d/01_leds
target/linux/ath79/base-files/etc/board.d/02_network
And finally recipe for images creation needs to be defined for the device here:
target/linux/ath79/image/generic-tp-link.mk
tools/firmware-utils/src/tplink-safeloader.c
Did I miss something - all suggestions and help welcome