OpwnWrt

OpenWrt是適用於嵌入式裝置的一個Linux發行版,主要是用於WiFi Router的軟體。

Open source的網址在:

https://openwrt.org/

並且支援CI/CD

大致架構如下:


大致用到的元件如下:

層級 元件名稱 功能說明
使用者應用 LuCI Web 管理介面(用 UBUS 呼叫後端)
使用者應用 Dropbear SSH 登入服務
使用者應用 UCI CLI 用指令操作設定檔(像 /etc/config/network)
系統管理層 procd OpenWrt 的 init system,替代傳統 init
系統管理層 netifd 控制 WAN/LAN/Wi-Fi 介面連線與狀態
系統管理層 ubus 提供 IPC(進程間通訊),如 ubus call network.interface.lan status
系統管理層 ubox / logd 提供系統日誌服務
設定層 UCI Unified Configuration Interface,統一讀寫 config 格式
Linux Kernel netfilter 防火牆(iptables/nftables)
Linux Kernel kernel modules 各式驅動,例如 mt76, ath9k, usb-net
硬體層 SoC / Wi-Fi 像 MT7621, QCA9531 等嵌入式平台

 


目前市面上有一些WiFi Router主機,可以支援OpenWrt自行compile並燒錄,我用的是 Banana Pi One,是 MTK系列的晶片,規格如下:

SoC: MediaTek MT7981B (Filogic 820) SoC
内存: 1GB DDR4
闪存: 16MB SPI NOR, 128MB SPI NAND
网络接口: 1 x 2.5GbE RJ45 port, 1 x Gigabit Ethernet RJ45 port
Wi-Fi: Dual-band WiFI 6 via MediaTek MT7976C (2×2 2.4 GHz + 3×3/2×2 + zero-wait DFS 5Ghz)
USB: 1x USB 2.0 Type-A host port, USB Type-C (device, console) port using Holtek HT42B534-2 UART to USB chip
操作系统: OpenWRT