RDK-B全称 Reference Design Kit for Broadband(宽带参考设计套件)。文档在 developer.rdkcentral.com,代码在 RDK Central 社区,基于Linux和Yocto构建的固件。下面把整个项目框架、平台功能和支持哪些芯片说清楚。
整个项目框架
图1:从上到下是入口、中间件、HAL(示意)
把 RDK-B 当一套开源软件平台看,框架可以拆成五层:
① 应用与运维入口 WebUI · TR-069 · TR-369(USP) · WebPA · SNMP · 本地管理 … ② 中间件组件(按功能拆成多个进程) Wi‑Fi · WAN · 以太网 · 防火墙 · GPON · 语音对接 · Telemetry … ③ 进程通信与数据模型 老路径:CCSP 消息总线 新路径:RBus(属性 / 事件 / 方法,对齐 TR-181) ④ 硬件抽象层 HAL Wi‑Fi / MoCA / 平台信息 / 线缆与光侧能力 … 由 SoC、OEM 实现 ⑤ Linux + 驱动 + Yocto 镜像 DOCSIS / GPON / DSL / 蜂窝 / 以太网上行① 入口层管「谁来管这台设备」。用户开网页改 SSID,运营商 ACS 用 TR-069 拉参数,WebPA 做高效读写,都挂在同一棵设备参数树上,不是每个入口各写一套私有协议。
② 中间件才是业务本体。官方按功能拆成很多独立组件,能装、能卸、能按机型裁剪。全功能网关可以装齐;Wi‑Fi 扩展器往往只留无线和二层相关进程,不必把 Cable Modem、语音整包塞进去。板子上那堆Ccsp*进程,多半就在这一层。
③ 总线加数据模型,是组件之间说话的方式。历史上靠 CCSP 做组件注册和 IPC;新方向是 RBus,更轻的二进制总线,大致是 API → RBus-core → rtMessage,参数树对齐 TR-181。新组件优先 RBus,老组件走兼容层,过渡期两套常并存。
④ HAL 挡住芯片差异。官方定好标准接口,芯片厂、OEM 去实现读固件名、读 MAC、控 Wi‑Fi、对接光口/同轴等。上面中间件尽量不绑死某一颗 SoC。换平台主要是换 HAL 和 Yocto machine,而不是重写全部业务——移植指南里的「SoC adapter」指的就是这层。
⑤ 最底是 Linux驱动,再用 Yocto 打包生成运营商镜像;平台开源的是框架和大量组件,商用还要过运营商认证。
平台有哪些功能
图2:同一套中间件,可对接同轴、光纤、DSL、固定无线、以太网上行(示意)
按官方能力清单,功能可以归成几大类。具体机型以裁剪和 HAL 为准,列表里有的不等于你这台镜像全开。
上行/接入:DOCSIS 3.0/3.1、GPON/EPON、DSL、以太网上行(EthWAN)、固定无线/蜂窝等。有 WAN Manager 做多 WAN、模式检测和切换。光猫、光网关走 GPON 时,有 GPON Manager 盯注册状态和 VEIP,再当普通以太 WAN 交给上层;OMCI 报文细节多在芯片/厂商 PON 方案里。硬件得有光口,软件才能接上这条路径。
家庭侧组网:路由/桥接、IPv4/IPv6、DHCP(可关)、VLAN、QoS、防火墙、家长控制、以太网客户端管理,以及部分 GRE、动态 DNS、端口转发、MoCA(同轴延伸)等。
Wi‑Fi:双频及更高代际(看芯片)、私有/公有 SSID、Band Steering、WPS、Mesh/扩展器、MeshAgent、Hotspot/Passpoint,以及 Wi‑Fi 遥测、频谱分析等(不少依赖云和设备能力)。
设备与远程管理:WebUI、TR-069、TR-181 参数树、USP、WebPA、SNMP、Telemetry、日志、RFC(远程开关功能而不必整包回滚)、XCONF 一类固件下载与升级、Captive Portal(首次改默认 Wi‑Fi)等。这一块是运营商场景的核心——要的是百万台同模型运维,不是每台设备各自 SSH 一把改配置。
语音与 IoT:eMTA 等语音栈通常由 OEM 提供,RDK-B 提供监控和数据模型对接;Zigbee/BLE 等 IoT 能力看产品是否裁进镜像。
产品形态:全功能网关、Wi‑Fi 扩展器、语音网关、偏 SMB/行业的裁剪机,都可以用同一套框架加减组件。
行业背景也直白:Vantiva(原 Technicolor)等早期贡献了大量代码,Comcast、Charter、Liberty Global 等运营商社区推动。
支持哪些芯片
RDK-B 不绑死某一颗固定芯片。官方把自己定位成「通用 SoC 适配层」:中间件尽量与芯片无关,芯片差异收在 HAL + Yocto machine + 厂商 BSP 里。更准确的说法是——谁把 Linux驱动和 HAL 适配进 RDK-B,谁就能上,公开仓库里不一定有一份「人人可刷」的完整机型全表。社区成员里看到 Broadcom、MaxLinear、Qualcomm、MediaTek、Quantenna、Realtek 等芯片厂身影。
可以分三档理解:
公开参考板(自己能跟着文档编):Raspberry Pi 3B / 3B+ / 4B。社区有raspberrypi-rdk-broadband、raspberrypi4-rdk-broadband一类 MACHINE,适合跑通中间件、WebUI、参数树,不是运营商光猫/同轴猫的量产硅。Pi4 核心是 Broadcom BCM2711,只当学习板。
商用网关主控(靠厂商 BSP / HAL):
| 方向 | 常见硅 / 平台 | 说明 |
|---|---|---|
| 有线同轴 DOCSIS | Broadcom 如 BCM3390 等;MaxLinear Puma 系列(原 Intel 家庭网关,Puma 7/8) | 芯片规格书或 OEM 方案常直接写支持 RDK-B;现网有线网关大量走这条 |
| 光纤 / 多上行 | 视 OEM 方案;Puma 等平台也可配光纤或以太 WAN | 光口侧还要 PON 芯片与 HAL,不是只刷中间件 |
| Wi‑Fi | Broadcom、Qualcomm、MediaTek、Realtek 等 | 常和主控搭配;「原生」方案 BSP 齐,换非原生 Wi‑Fi SoC 要自己接驱动和 HAL |
新芯片能不能上:移植指南写得很直白——先让 SoC 自己的 Linux + Wi‑Fi 等驱动独立跑通,再进 Yocto,再实现平台 / Wi‑Fi / MoCA / WAN 等 HAL。没有 HAL,上面 Ccsp 组件再全也读不到真实硬件。商用镜像还要过运营商认证,公开仓库里不一定找得到那颗芯片的完整 recipe。
一句话:参考板看树莓派;量产看 Broadcom / MaxLinear(Puma) 等厂商方案;名单会随 HAL 移植变长,不是写死在中间件里的固定表。
| 你想确认的事 | 优先看框架哪一层 |
|---|---|
| 换芯片后 Wi‑Fi / 版本号读不对 | ④ HAL、平台 HAL、Yocto machine |
| TR-069 / USP 参数对不上 | ③ 数据模型、② 对应组件、RBus 注册 |
| 能上网但远程改不了 Wi‑Fi | ① 管理通道与 WebPA/USP,不只是 hostapd |
| 有光口但上层当不成 WAN | GPON Manager、VEIP、以太网/WAN 管理、④ 光侧 HAL |
| DOCSIS 猫换光猫,业务要复用 | ② WAN 与上行适配,中间件尽量别绑死线缆类型 |
| 进程之间调不通 | ③ RBus / 旧 CCSP 是否起齐、组件是否注册 |
它适合谁
RDK-B 强在运营商发货一致性:统一数据模型、统一远程管理、统一从全功能网关到扩展器的裁剪。现网设备要从别的固件迁过来时,厂商也会推荐迁移方案:怕的往往不是编译问题,而是序列号、证书、远程会话、用户 Wi‑Fi 配置对不齐。个人想玩路由刷机,一般不用这套;要搞 TR-181模型、百万台运维和运营商验收,才可能用RDK-B去开发。
上手时先抓哪几条
图3:网关联调时,串口能起来只是第一步(示意)
- 先把五层框架画清楚。入口、中间件、总线/模型、HAL、Yocto,对着官方架构文档过一遍。
- SoC / OEM 从 HAL 进。Linux 和 Wi‑Fi 驱动先能独立跑通,再按 HAL 接平台信息和上行能力。
- 板子起来后先查参数树,别先改 UI。用 RBus / 原有工具看 TR-181 是否注册完整,比纠结皮肤有用。
- 远程通道单独验证。TR-069 或 USP 会话、WebPA 读写,和「本地能 ping 通」是两件事。
- 按机型裁组件。扩展器不要硬塞全套 Ccsp 进程;光猫要确认 GPON 相关组件和 HAL 在。
- 总线过渡期别混用假设。新代码走 RBus API;碰到老组件,确认兼容层还在。
边界
- RDK-B 是宽带网关软件栈(Reference Design Kit),不是面向个人刷机的发行版。
- 「开源」不等于「可以直接商用」——还有运营商相关的认证。
- 功能列表再长,HAL 和组件没裁进镜像就等于没有;光口、DOCSIS、语音都要硬件和对应组件同时到位。
- 芯片支持靠 HAL 移植,没有一份「刷哪个机型官方就支持」的公开机型全表;树莓派只是参考,量产芯片看芯片厂的 BSP 与方案包。
- OMCI 细节主要在厂商 PON 方案;RDK-B 管的是光注册之后怎么进家庭侧和远程管理。
参考
https://developer.rdkcentral.com/documentation/documentation/rdk_broadband_documentation/
https://developer.rdkcentral.com/documentation/documentation/rdk_broadband_documentation/architecture/
https://developer.rdkcentral.com/documentation/documentation/rdk_broadband_documentation/features/
https://wiki.rdkcentral.com/display/RDK/RDK-B±SoC+Porting+Guide
https://rdkcentral.com/https://github.com/rdkcentral/rbus