Building budget OpenWRT router and upgrading to 2.5gbps network


Recently I am upgrading my home network to 2.5gbps. The service provider (ISP) provides a optical modem for free (to be precise, "without extra charge"). There are not many choices in the market at the time of writing. A 2.5gbps router with one 2.5gbps WAN port and one 2.5gbps LAN port costs near HKD 4000 (around USD 500).

The router comes with only ONE 2.5gbps LAN port, which means I have to buy another 2.5gbps switch. A switch from the famous budget brand costs around HKD 1000 (around USD 120).

All the ethernet cables in my home are in CAT6 so I don't need to replace any of them. Houses in my place is small. A practical test shows even CAT5E would be good enough for 10gbps.

45 米 CAT 5e 線可達 10Gbps! 實測 NETGEAR XS505M mGig Switch
於 IEEE 802.3bz 定義下,100 米 CAT 5e 線最多只能輸出 5Gbps,不知道大家有沒有好奇過,究竟 CAT 5e 線能否達至 10Gbps 呢?今次就用 NETGEAR XS505M 的 5-Port Multi-Gigabit Switch 向大家實證一下吧!

I have most devices connecting with ethernet cables, but the ethernet ports are 1gbps only. So I have to buy some of this "2.5gbps USB adapter".

The main cost would be the router and the switch. It costs not little.

Building my own router

It is not uncommon to DIY a router in China. Simply speaking, it is installing a router OS on a mini computer. It requires some "magic keywords" to find out what you need, well...


Below is the order of how I choose the hardware:

  1. Ethernet port with Intel i226 (but not others from Intel or Realtek, for better performance)
  2. Number of 2.5gbps ports
  3. CPU speed (for data packages handling and VPN encryption / decryption)
  4. CPU architecture (for running emulation)
  5. RAM

I have bought one from Taobao (same store on Alibaba). The specification is somehow overkilling.

CPU: Intel 11th-Gen i3
SSD: 128GB
Network: Intel i226 (6 ports)


Undoubtedly it is going to be OpenWRT.

At the very beginning I worried I have to use custom-built from China users. However, I don't need (yet) those bulky functions they have built-in. And I don't like the user language in Simplified Chinese. So I decided to give the official ROM a trial. And it just simply worked!

  • Find the latest version. At the time of writing, it is "22.03.5".
  • Choose "targets", and then your hardware CPU architecture. For my case, "x86" and "64".
  • Download the one with combined-efi. I have chosen the squashfs one.

ext4 and squashfs are two different file system formats. You may want to take a look.

Ext4 vs SquashFS
I understand. As @Borromini noted, resetting the device to default is much easier on SquashFS. As he noted, I likewise beleive that such wouldn’t be possible on an ext4 based device, without using sysupgrade -f.
  • Extract the .gz file to get a .img file.

To me, the easies way to flash the ROM is:

  • Physically unmount the SSD from the router hardware.
  • Connect the SSD to your computer with a external SSD reader.
  • Flash the .img file onto the SSD with Etcher
  • Put the SSD back to the router hardware.

After flashing it just worked flawlessly for me.

Type to enter OpenWRT UI. No password by default.

Lovely 2.5gbps connection

I am still waiting for the optical installation from the ISP. So I don't have 2.5gbps WAN speed yet. But the LAN speed is not 2.5gbps.

The overkilling hardware is just 37% of the commercial router, without adding the price of a 2.5gbps switch. You may even choose a more inexpensive hardware.

By the way, it seems there is no USB ethernet adapter working for Nvidia Shield. May anyone recommend a good Android TV with 2.5gbps support? I want to watch video from Plex via LAN without realtime conversion.