Origin
By chance, I stumbled upon a tutorial for flashing the AX3000T on a small video site and decided to give it a try. I purchased the device and followed the tutorial to flash uboot, testing various firmware. However, the AX3000T with its 256MB of RAM was too limited, and running the OpenClash kernel often resulted in crashes, rendering it completely unusable. Therefore, I learned to customize and compile my own version, only including necessary plugins. I tested the source codes of LEDE, Lienol, and ImmortalWrt, with kernels 5.1 and 6.1, ultimately concluding that the AX3000T simply cannot run OpenClash. Then I had an R2S on hand, which I set up as a bypass router, and its stability was acceptable. I then considered deploying some services; the R2S was adequate, but I also had an i7 4710mq laptop, whose motherboard I had already removed, and I planned to flash OpenWrt on it to serve as a bypass router while running some services (or possibly first PVE and then deploy based on it). The advantage is that it has decent CPU performance, integrated graphics, and 16GB of RAM, but the downside is slightly higher power consumption, measured at around 20-30 watts under low load.
I also have a dual-socket E5 machine, but I was too lazy to get excited about it and directly ran macOS on VMware for compilation. One issue I encountered was that it took up too much disk space; I initially started on an SSD, but later migrated to an HDD, which was even slower.
OpenWrt
At the end of 2002, Linksys launched a router called the WRT-54G, which became very popular. However, the WRT-54G used a Linux operating system, and its software core was developed under the GPL license, requiring adherence to open-source standards. In 2003, Linksys opened the source code, and by January 2004, the first open-source routing system based on Linksys source code, named OpenWRT, emerged. Subsequently, LEDE was created as a branch of OpenWRT in 2016, and the two merged back into one in January 2018.
The OpenWrt project is a Linux operating system tailored for embedded devices. OpenWrt is not a single, unchangeable firmware but rather provides a fully writable file system with package management capabilities. This liberates you from the application range and configuration provided by the vendor, allowing you to customize your device by using packages tailored for any application. For developers, OpenWrt offers a framework to develop applications without needing to build a complete firmware around it; for regular users, it means having complete customization capabilities to use the device in unexpected ways.
In short, OpenWrt is essentially an operating system based on the Linux system.
Branches
OpenWrt
This is the official branch, which I haven’t compiled myself, but it is said to be quite native and stable; I plan to try it when I have time.
LEDE
Lean is a branch based on the OpenWrt master, where the well-known Lean from the forum shared all the open-source code. It includes many features tailored for Chinese users and instructs everyone on how to compile their desired OpenWRT using Ubuntu, offering great flexibility for customization. Most domestic firmware is compiled based on Lean’s source code, such as eSir, sirpdboy, and other prominent figures!
There is only one master source, which is simple and convenient. Occasionally, there may be compilation issues, and sometimes commits may even be reverted. The benefit is that the kernel updates relatively quickly, and the compilation success rate is higher; this is what I am currently using. Most targets will have both KERNEL_PATCHVER and KERNEL_TESTING_PATCHVER, and if you want to experience the latest kernel, you can directly modify KERNEL_PATCHVER without feeling that it is less stable just because it is testing.
Lienol
The Lienol source code and feeds have tags, which can be roughly compared with OpenWrt. It closely follows the official version for updates, and the firmware compiled from Lienol has a significantly smaller size than others due to fewer integrated software and less source code modification, resulting in stronger stability! I recommend compiling this firmware yourself if you have the capability.
There are master and 23.05 branches; the master branch supports more targets and newer kernels, but I encountered some issues with the compilation, as the AX3000T firmware often goes offline, and I’m unsure if it’s a settings issue or a support issue. The 23.05 compilation works fine, but the kernel is too old and does not support the AX3000T.
ImmortalWrt
ImmortalWrt is a branch of OpenWrt that has ported more software packages, supports more devices, offers better performance, and has special optimizations for users in mainland China.
There are master and 23.05 branches; the master branch supports more targets and newer kernels, but the compilation I did seems to be missing many components for the AX3000T. The 23.05 compilation works fine, but the kernel is too old.
Devices
AX3000T
This was last year’s star product, selling quite well, capable of flashing unbricked uboot, and can be tinkered with without fear of bricking. It features 160MHz Wi-Fi 6 and 7981b performance, but the downside is its 128MB ROM, which limits the number of plugins; it can easily run out of space. With 256MB RAM, running OpenClash often leads to kernel crashes. After various attempts, I’ve given up and will just use it as a router.
However, I now somewhat regret it, as the cheaper RAX3000M has 512MB of RAM, and the Redmi AX6000 also has 512MB of RAM. I got into this too early and didn’t realize the importance of RAM, but I don’t regret it too much; after all, the performance of hardware routers is ultimately limited, and I won’t tinker with this device anymore.
R2S
I happen to have one on hand, and its performance is vastly superior to the AX3000T, with CPU, RAM, and ROM all significantly better.
I deployed Alist, mounted Baidu Cloud, 1K Album, and Aliyun Pan, making management much easier.
I deployed Xiao Ya’s Alist, instantly gaining access to a wealth of resources; I don’t plan to set up Emby for now.
x86
I tested the firmware on VMware, and the experience is not much different from the R2S; when deployed on hardware, the biggest difference should be the device’s performance.
Deployment Methods
Main Router
Details on whether the optical modem can bridge or not are omitted; I’m too lazy to explain.
Bypass Router
This has little impact on the current network architecture; details are omitted; I’m too lazy to explain.
Internal Network Penetration
IPv6
Some optical modems are turned off by default and need to be manually enabled.
Some routers’ firewalls block by default and need to be manually opened.
The downside is that in some environments, there is no IPv6, but there are ways to resolve this, though it’s a bit complicated.
ZeroTier
Free and easy to use; details are omitted; I’m too lazy to explain.
Knowledge of OpenWrt Plugins
I have configured and used several OpenWrt plugins, with OpenClash being the most powerful but resource-intensive and somewhat complex to configure. Passwall and Passwall2 consume relatively low resources but are not very friendly with some subscription services; I feel that the others are not very interesting. Having a router with these plugins indeed simplifies things, as I don’t need to set one up for each device.
By the way, I also tested some plugins on macOS, Android, and iOS, and I’ve learned a lot more than before.
Basic Understanding of OpenWrt Compilation, Installation, and Configuration
Basic Understanding of Plugin Installation and Configuration on Various Platforms
Related Resources
-
• https://github.com/hanwckf/bl-mt798x
-
• https://github.com/openwrt/openwrt
-
• https://github.com/coolsnowwolf/lede
-
• https://github.com/Lienol/openwrt
-
• https://github.com/immortalwrt/immortalwrt
-
• https://alist.nn.ci/zh/
-
• https://xiaoyaliu.notion.site/xiaoya-docker-69404af849504fa5bcf9f2dd5ecaa75f
Leave a Comment
Your email address will not be published. Required fields are marked *