GitLab 项目 pico-usb-wifi 做了一件很小、但很对症的事:把 Raspberry Pi Pico W 刷成一个 USB 无线网卡。
插到主机后,它不是以普通 Wi-Fi 芯片的方式出现。主机看到的是 USB CDC-NCM 类以太网接口,旁边还有一个 CDC-ACM 串口,用来管理和调试。
反常点也在这里。
Pico W 本身负责连 Wi-Fi、处理 WPA2-PSK 和无线侧协议。主机不用准备 wpa_supplicant,不用 mac80211/cfg80211,不用芯片固件,也不用厂商无线驱动。只要系统里有 cdc_ncm 和 cdc_acm,就有机会把它当成一块“有线网卡”来用。
它不快。项目宣称平均吞吐约 4.75 Mbit/s。
所以判断要放准:这不是一只更便宜的高速 USB Wi-Fi 网卡,而是一条给受限主机临时联网的窄通路。
它解决的是主机没有无线栈的问题
很多嵌入式 Linux 板子并不缺 USB 口,缺的是能工作的无线链路。
老内核未必带对应 Wi-Fi 驱动。裁剪 rootfs 里未必有固件。wpa_supplicant、监管数据库、cfg80211 这些东西,平时看着像背景板,真正调板子时少一个都可能卡住。
pico-usb-wifi 的处理方式很直接:别让主机碰无线栈。
Wi-Fi 关联、WPA2-PSK、无线侧处理都放在 Pico W 上。主机只收一个 CDC-NCM 暴露出来的网络接口。Wi-Fi 凭据则通过 CDC-ACM 管理串口配置。
这对两类人最有用。
嵌入式 Linux 开发者可以把它放进调试工具包:遇到目标板无线驱动缺失时,先用 Pico W 拉日志、装包、开远程调试,而不是立刻换内核或补 rootfs。
硬件玩家也可以少买几只碰运气的 USB Wi-Fi 网卡。更现实的动作是:先确认目标系统有没有 cdc_ncm 和 cdc_acm;有的话,再考虑刷 Pico W 试接入。
| 方案 | 主机看到什么 | 主机需要什么 | 更适合什么场景 |
|---|---|---|---|
| 普通 USB Wi-Fi 网卡 | 无线网卡 | 无线栈、固件或厂商驱动 | 追求更高吞吐,且系统支持明确 |
| pico-usb-wifi | 类以太网接口 | cdc_ncm、cdc_acm | 受限主机临时接入 Wi-Fi |
| 手机 USB 共享网络 | USB 网卡或 RNDIS/NCM | 手机侧联网和系统支持 | 临时上网,不太适合嵌入式集成 |
这张表也说明了它的边界:pico-usb-wifi 省掉的是主机侧无线负担,不是网络性能成本。
技术边界:单一 MAC/IP 身份,不是万能桥
项目采用的是透明二层转发,但做法很克制。
主机 USB 接口使用 Pico W Wi-Fi station 的 MAC 地址。链路两端看起来,是同一个 MAC 和同一个 IP 身份在工作。
这点很关键。
普通 Wi-Fi station 通常不能像有线交换机那样随便桥接多个 MAC。pico-usb-wifi 通过单一身份避开了这个限制。它更像把主机的以太网口“延长”到 Pico W 的 Wi-Fi station 上,而不是做一个能挂一堆设备的无线网桥。
所以不要把它想成通用 USB Wi-Fi 替代品。
目前材料明确展开的是 Linux 使用场景。macOS、Windows、Android、iOS 可能存在对应 CDC 类驱动,但这不等于这个固件已经在这些系统上逐一验证。
安全能力也要按材料来读。现在能确认的是 WPA2-PSK。没有材料说明 WPA3、企业认证或热点模式。
对团队来说,这会影响采用方式:可以把它作为调试和应急工具引入,但不该直接写进量产方案。除非目标系统、供电、长时间运行和异常恢复都已经测过。
4.75 Mbit/s 够不够,要看你拿它干什么
4.75 Mbit/s 放在今天很慢。
它不适合大文件传输,不适合当桌面电脑的主力网卡,也不适合拿来和常见 USB Wi-Fi 网卡比跑分。
但在嵌入式现场,慢不一定等于没用。拉日志、ssh 上去改配置、临时 apt 装几个包、跑一段远程调试,这类动作更看重“能不能连上”和“会不会半路死”。
v1.0.2 的更新也指向这个问题。项目修复了 lwIP pbuf 池并发问题,加入硬件 watchdog、故障记录和调试统计。项目提交信息还提到,修复后完成过 80 分钟 iperf 浸泡测试,传输 2.65 GB 未发生故障。
这类信息比峰值速度更有参考价值。
接下来最该看三件事:Linux 之外的系统兼容性是否有人实测;弱信号和长时间运行下是否稳定;IPv6、组播这类边角流量会不会暴露新问题。
如果这些问题没有更多验证,它就仍然是一件开发者工具。好用,但要放在正确位置:救急、调试、补缺,不负责替代成熟网卡。
