修改编译目标
执行 make menuconfig
后如下配置:
Target System
X Atheros ATH79
Subtarget
X Generic
Target Profile
X TP-Link TL-WDR4310 v1
Target Images
* ramdisk
* squashfs
修改 LAN
默认网段
执行 make menuconfig
后如下配置:
Image configuration > Preinit configuration options > IP address for preinit network messages
i 192.168.8.1
Image configuration > Preinit configuration options > Netmask for preinit network messages
i 255.255.255.0
Image configuration > Preinit configuration options > Broadcast address for preinit network messages
i 192.168.8.255
修改仓库为清华镜像源
执行 make menuconfig
后如下配置(修改 https://downloads.openwrt.org/releases/xx.xx.x
为 https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/xx.xx.x
):
Image configuration
* Version configuration options
Image configuration > Version configuration options > Release repository
d https://downloads.openwrt.org/releases/22.03.2
i https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/22.03.2
开启 FEED 仓库
执行 make menuconfig
后如下配置:
Image configuration
* Separate feed repositories
Image configuration > Separate feed repositories
* Enable feed packages
* Enable feed luci
* Enable feed routing
* Enable feed telephony
添加默认 CA 证书
执行 make menuconfig
后如下配置:
Base system
* ca-certificates
切换 wolfssl 为 openssl 模块
执行 make menuconfig
后如下配置:
Network > WirelessAPD
* wpad-basic-openssl
- wpad-basic-wolfssl
Libraries
* libustream-openssl
- libustream-wolfssl
Libraries > SSL
* libopenssl
- libwolfssl
开启 luci 等功能
执行 make menuconfig
后如下配置:
LuCI > 1. Collections
* luci
* luci-ssl-openssl
LuCI > 2. Modules > Translations
* Chinese Simplified (zh_Hans)
LuCI > 3. Applications
* luci-app-ddns
* luci-app-wol
开放 cloudflare / dnspod 自带 DDNS 脚本
执行 make menuconfig
后如下配置:
Network > IP Addresses and Names
* ddns-scripts
* ddns-scripts-services
* ddns-scripts-cloudflare
* ddns-scripts-dnspod
集成 aliyun 外部 DDNS 脚本
ddns-aliyun-backup-files.zip
拷贝文件: feeds/packages/net/ddns-scripts/files/usr/share/ddns/default/aliyun.com.json
拷贝文件: feeds/packages/net/ddns-scripts/files/usr/lib/ddns/update_aliyun_com.sh
修改文件: feeds/packages/net/ddns-scripts/Makefile
...
define Package/ddns-scripts-services/install
$(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/default/* \
$(1)/usr/share/ddns/default
# Remove special services
rm $(1)/usr/share/ddns/default/cloudflare.com-v4.json
rm $(1)/usr/share/ddns/default/freedns.42.pl.json
rm $(1)/usr/share/ddns/default/godaddy.com-v1.json
rm $(1)/usr/share/ddns/default/digitalocean.com-v2.json
rm $(1)/usr/share/ddns/default/dnspod.cn.json
rm $(1)/usr/share/ddns/default/no-ip.com.json
rm $(1)/usr/share/ddns/default/bind-nsupdate.json
rm $(1)/usr/share/ddns/default/route53-v1.json
rm $(1)/usr/share/ddns/default/cnkuai.cn.json
rm $(1)/usr/share/ddns/default/gandi.net.json
rm $(1)/usr/share/ddns/default/pdns.json
rm $(1)/usr/share/ddns/default/transip.nl.json
rm $(1)/usr/share/ddns/default/ns1.com.json
rm $(1)/usr/share/ddns/default/one.com.json
+ rm $(1)/usr/share/ddns/default/aliyun.com.json
endef
...
define Package/ddns-scripts-dnspod/description
Dynamic DNS Client scripts extension for dnspod.cn API (require curl)
endef
+
+define Package/ddns-scripts-aliyun
+ $(call Package/ddns-scripts/Default)
+ TITLE:=Extension for aliyun.com API
+ DEPENDS:=ddns-scripts +curl +openssl-util
+endef
+
+define Package/ddns-scripts-aliyun/description
+ Dynamic DNS Client scripts extension for aliyun.com API (require curl)
+endef
...
define Package/ddns-scripts-dnspod/prerm
#!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop
fi
exit 0
endef
+
+define Package/ddns-scripts-aliyun/install
+ $(INSTALL_DIR) $(1)/usr/lib/ddns
+ $(INSTALL_BIN) ./files/usr/lib/ddns/update_aliyun_com.sh \
+ $(1)/usr/lib/ddns
+
+ $(INSTALL_DIR) $(1)/usr/share/ddns/default
+ $(INSTALL_DATA) ./files/usr/share/ddns/default/aliyun.com.json \
+ $(1)/usr/share/ddns/default/
+endef
+
+define Package/ddns-scripts-aliyun/prerm
+#!/bin/sh
+if [ -z "$${IPKG_INSTROOT}" ]; then
+ /etc/init.d/ddns stop
+fi
+exit 0
+endef
...
$(eval $(call BuildPackage,ddns-scripts))
$(eval $(call BuildPackage,ddns-scripts-services))
$(eval $(call BuildPackage,ddns-scripts-cloudflare))
$(eval $(call BuildPackage,ddns-scripts-freedns))
$(eval $(call BuildPackage,ddns-scripts-godaddy))
$(eval $(call BuildPackage,ddns-scripts-digitalocean))
$(eval $(call BuildPackage,ddns-scripts-dnspod))
$(eval $(call BuildPackage,ddns-scripts-noip))
$(eval $(call BuildPackage,ddns-scripts-nsupdate))
$(eval $(call BuildPackage,ddns-scripts-route53))
$(eval $(call BuildPackage,ddns-scripts-cnkuai))
$(eval $(call BuildPackage,ddns-scripts-gandi))
$(eval $(call BuildPackage,ddns-scripts-pdns))
$(eval $(call BuildPackage,ddns-scripts-transip))
$(eval $(call BuildPackage,ddns-scripts-ns1))
$(eval $(call BuildPackage,ddns-scripts-one))
+$(eval $(call BuildPackage,ddns-scripts-aliyun))
修改后先执行 ./scripts/feeds install -f ddns-scripts
, 再执行 make menuconfig
后如下配置:
Network > IP Addresses and Names
* ddns-scripts-aliyun
Utilities
* openssl-util
修改分区和固件为16M
修改文件: target/linux/ath79/dts/ar9344_tplink_tl-wdrxxxx.dtsi
...
partition@20000 {
compatible = "tplink,firmware";
label = "firmware";
reg = <0x020000 0xfd0000>;
};
art: partition@ff0000 {
label = "art";
reg = <0xff0000 0x010000>;
read-only;
};
...
修改文件: target/linux/ath79/image/generic-tp-link.mk
...
define Device/tplink_tl-wdr4310-v1
$(Device/tplink-16mlzma)
SOC := ar9344
DEVICE_MODEL := TL-WDR4310
DEVICE_VARIANT := v1
DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
TPLINK_HWID := 0x43100001
SUPPORTED_DEVICES += tl-wdr4300
endef
TARGET_DEVICES += tplink_tl-wdr4310-v1
...