我的自由路由器项目
我的梦想就是自己打造一款自由路由器,所谓自由就是不包含任何专利软件和私有的非公开源码软件
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号