🛠 Deploying a High-Performance Software Router on the PICO-PTH4
Objectives
This tutorial aims to transform the PICO-PTH4 card into a high-performance software router. Thanks to its two Intel I226-V network controllers supporting 2.5GbE and its Panther Lake SoC providing sufficient computing power for high-speed routing, this configuration is ideal for demanding environments requiring low latency and fine traffic management. We will use a lightweight Linux-based operating system to maximize CPU resources available for packet processing.
Required Hardware
- AAEON PICO-PTH4 Card (Core Ultra 7 or X7 variant recommended for multitasking).
- Stable 12V DC Power Supply (power consumption varies with CPU load).
- M.2 2280 M-Key NVMe PCIe Gen5 x4 SSD (for system and logs).
- M.2 E-Key Wi-Fi/Bluetooth module if wireless connectivity is desired (optional).
- Two Cat5e or Cat6 Ethernet cables.
- HDMI 2.1 monitor or SSH access via another device.
- Bootable USB drive with a minimalist Linux distribution (e.g., Debian, Alpine, or adapted OpenWrt).
Steps
- System Installation: Insert the M.2 SSD into the dedicated slot. Plug in the USB drive and boot the card. Access the BIOS via HDMI. Ensure the boot mode is set to UEFI. Install your chosen Linux distribution on the NVMe SSD. Choose a minimal installation without a graphical environment to free up LPDDR5x memory.
- Network Interface Configuration: Identify network interfaces using the
ip linkcommand. The two physical ports will typically be namedeth0andeth1. Configureeth0as the WAN interface (connected to your internet box) andeth1as the LAN interface (connected to your switch). Edit the network configuration file (e.g.,/etc/network/interfacesor via Netplan) to assign a static IP toeth1(e.g., 192.168.1.1/24) and use DHCP oneth0.
- Enable IP Routing: Enable IPv4 forwarding by modifying the
/etc/sysctl.conffile by uncommenting or adding the linenet.ipv4.ip_forward=1. Apply changes withsysctl -p. Install firewall tools likeiptablesornftables.
- NAT and Firewall Configuration: Configure NAT masquerading on the WAN interface to allow LAN clients to access the Internet. Example with iptables:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE. Allow established and related traffic on the WAN interface, and allow traffic on the LAN interface.
- Performance Optimization: Intel I226 ports may require queue adjustments to maximize 2.5GbE throughput. Use
ethtool -K ethX tso on gso onto enable segmentation offloads. Also, verify that the CPU is not unnecessarily downclocking by setting the CPU governor toperformanceviacpupower.
Verification
From a client connected to the LAN port (eth1), verify Internet connectivity with ping 8.8.8.8. Test actual throughput using a tool like iperf3 between the client and an external server or another machine connected to the LAN to confirm that the 2.5GbE links are working correctly. Monitor CPU usage with top or htop to ensure that routing is not saturating the Panther Lake cores.
Further Reading
Explore the integration of QoS (Quality of Service) to prioritize VoIP or gaming traffic. You can also configure a local DNS server or an ad blocker (Pi-hole) on this same card, thanks to the soldered memory up to 32GB and fast NVMe Gen5 storage. The internal RS-232/422/485 serial ports also allow connecting home automation or industrial equipment for centralized control.
Other tutorials for this board
Code examples for this board
gpio-led-blink-python.pyPythoni2c-sensor-temp.pyPythonnetwork-monitor-eth.pyPythonnvme-storage-bench.shBashai-inference-openvino.pyPythongpio-led-control-python.pyPython