OpenWrt是適用於嵌入式裝置的一個Linux發行版,主要是用於WiFi Router的軟體。
Open source的網址在:
並且支援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