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、组播这类边角流量会不会暴露新问题。

如果这些问题没有更多验证,它就仍然是一件开发者工具。好用,但要放在正确位置:救急、调试、补缺,不负责替代成熟网卡。