我的自由路由器項目
我的夢想就是自己打造一款自由路由器,所謂自由就是不包含任何專利軟件和私有的非公開源碼軟件
https://librecmc.org/
定義“自由路由器”的層次
首先,我們可以將“自由”分為幾個層次,從基礎到極致:
-
完全自由的系統軟件:路由器運行的操作系統及其所有組件(內核、驅動、工具鏈、應用程序)都是自由軟件,源碼可用,允許你任意修改、分享。
-
自由的固件:設備本身的引導程序(Bootloader)和任何在啟動初期運行的固件也是自由的。
-
自由的硬件設計:硬件的設計本身(如電路圖、PCB布局)也是開放的,沒有硬件級別的“后門”。這是最高目標,但也最難。
你的目標“不包含任何專利軟件和私有的非公開源碼軟件”主要覆蓋了第1層和第2層,這已經是極其偉大的成就。
實現路徑與關鍵技術選型
1. 選擇或構建一個基于自由軟件的路由器操作系統
你不需要從零開始寫一個OS。現有的自由軟件項目是絕佳的基礎:
-
OpenWrt:這是最著名、最成熟的嵌入式Linux發行版,專為路由器設計。它的絕大多數組件都是自由軟件。你的主要工作將是剔除其中非自由的部分,并為其適配特定的硬件。
-
LibreWrt:這是OpenWrt的一個分支,明確專注于只包含自由軟件。它已經移除了OpenWrt中一些非自由的二進制 blob 和專利編碼。這是一個非常好的起點。
-
Debian GNU/Linux:你也可以使用Debian的嵌入式版本,它以其對自由軟件的嚴格承諾而聞名。你需要自己配置路由功能(防火墻、DHCP、DNS等),但這給了你最大的控制權。
你的操作系統基礎很可能就是基于上述項目之一進行定制。
2. 選擇支持自由軟件和自由固件的硬件
這是最大的挑戰。很多路由器芯片(特別是Wi-Fi芯片)需要非自由的固件二進制文件才能工作。
解決方案是選擇那些已知與自由軟件和自由固件兼容的硬件:
-
CPU/SoC:
-
基于 MIPS 或 ARM 的經典型號:一些較老的Atheros(現屬Qualcomm)芯片有良好的自由軟件驅動支持。例如,使用
ath9k驅動程序的芯片是完全自由的,不需要非自由固件。 -
RISC-V:這是自由硬件運動的未來希望。雖然目前高性能的RISC-V網絡硬件還不多,但這是一個值得關注的方向。
-
-
Wi-Fi 芯片(關鍵!):
-
首選:Atheros AR9xxx 系列(使用
ath9k驅動)。這是自由軟件社區的金標準,驅動完全在內核中,無需外部固件。 -
次選:某些MediaTek芯片:部分MT76系列的驅動正在主線Linux內核中發展,但可能需要驗證其自由程度。
-
避免:Broadcom和大多數較新的Qualcomm芯片通常需要非自由固件。
-
-
以太網交換機芯片:需要確保其驅動在Linux內核中是自由的。
一些現成的“自由友好”路由器型號(作為參考或起點):
-
LibreCMC 項目支持的設備列表(例如:TP-Link WR841N v11, TL-WR1043ND v4 等)。
-
OpenWrt 網站上會標注設備的支持級別,可以尋找那些“支持良好”且不需要非自由固件的型號。
具體步驟建議
-
深入學習:深入研究 OpenWrt/LibreWrt 的構建系統。學會如何從源碼編譯一個完整的鏡像。
-
確定硬件平臺:
-
方案A(入門):購買一個已被LibreCMC或OpenWrt良好支持且無需非自由固件的現成路由器。你的第一個“打造”可以是從源碼為其構建一個完全自由的固件。
-
方案B(進階):自己設計PCB,選擇已知自由的組件(如Atheros AR9331 SoC),制作一塊自己的路由器開發板。這將涉及硬件設計,但能實現最大程度的自由。
-
-
凈化系統:
-
使用構建系統時,仔細檢查每一個軟件包,確保其許可證是自由的(GPL, BSD, MIT等)。
-
移除任何涉及專利編碼的軟件(例如某些視頻或音頻編碼器)。
-
-
開發與測試:實現路由器的基本功能(NAT、防火墻、DHCP、DNS),并確保其穩定性和性能。
-
社區分享:將你的成果(源碼、構建說明、硬件設計圖)公開發布。這是自由軟件精神的核心——分享知識,讓更多人受益和參與。
挑戰與提醒
-
性能與功能的權衡:完全自由的硬件可能在性能(如Wi-Fi速度)上不如最新的商用產品。這是為了自由而必須做出的權衡。
-
專利問題:你提到“不包含任何專利軟件”。需要注意的是,軟件自由與專利是兩回事。一個軟件可以是自由的(源碼公開),但其實現的算法可能受專利保護(如H.264)。在純粹的自由軟件發行版中,通常會排除受專利困擾的軟件。你需要注意這一點。
-
硬件獲取:尋找完全自由的現代高性能硬件仍然非常困難。
浙公網安備 33010602011771號