NetHubQuickBringup
NetHub 快速上手
本文档面向首次接触 NetHub 的客户,目标是尽快完成 device 和 host 的 bringup。
1. 方案概览
- 当前主路径是 SDIO
- device 侧运行
Wi-Fi backend(fhost / wl80211)+ lwIP nethub负责把 device 侧 Wi-Fi 能力桥接到 host- 控制通道和
USER virtual channel都承载在同一条 host link 上
当前生效目录:
- device 侧
components/net/nethubexamples/wifi/nethub
- host 侧
bsp/common/msg_router/linux_host/kernelbsp/common/msg_router/linux_host/userspace/nethub
2. Bringup 前先确认两项选择
2.1 选择 Wi-Fi backend
默认配置:
- 不打开
CONFIG_WL80211 - 使用
fhost
如果要切到 wl80211,在 examples/wifi/nethub/defconfig 中打开:
CONFIG_WL80211=y
说明:
fhost和wl80211是二选一关系- 当前
nethub同时支持这两种 device Wi-Fi backend
2.2 选择控制通道
device 与 host 需要匹配:
| device 配置 | host 启动方式 |
|---|---|
CONFIG_NETHUB_AT_USE_VCHAN=n
|
./output/bflbwifid 或 ./output/bflbwifid -c tty -p /dev/ttyAT0
|
CONFIG_NETHUB_AT_USE_VCHAN=y
|
./output/bflbwifid -c vchan
|
默认配置是:
CONFIG_NETHUB_AT_USE_VCHAN=n
即控制通道默认走 TTY。
补充说明:
- host 侧会同时编入
tty + vchan - 实际选择发生在
bflbwifid运行时
3. 编译并烧录 device 固件
cd examples/wifi/nethub
# BL616
make CHIP=bl616 BOARD=bl616dk
# BL616CL
make CHIP=bl616cl BOARD=bl616cldk
# BL618DG
make CHIP=bl618dg BOARD=bl618dgdk CPU_ID=ap
烧录示例:
cd examples/wifi/nethub
make flash CHIP=bl618dg COMX=/dev/ttyUSB0
常见关键配置:
CONFIG_NETHUB=yCONFIG_MR_NETDEV=yCONFIG_MR_TTY=yCONFIG_MR_VIRTUALCHAN=yCONFIG_NETHUB_AT_USE_VCHAN=n
4. 编译并启动 host 软件
4.1 编译
cd bsp/common/msg_router/linux_host/userspace/nethub
./build.sh build
产物:
output/mr_sdio.kooutput/bflbwifidoutput/bflbwifictrloutput/libnethub_vchan.aoutput/nethub_vchan_app
4.2 加载内核模块
cd bsp/common/msg_router/linux_host/userspace/nethub
sudo ./build.sh load
如需卸载:
sudo ./build.sh unload
4.3 启动 host daemon
默认 TTY 模式:
sudo ./output/bflbwifid
显式指定 TTY:
sudo ./output/bflbwifid -c tty -p /dev/ttyAT0
VCHAN 模式:
sudo ./output/bflbwifid -c vchan
5. 基础验证流程
建议按下面顺序验证:
5.1 查看状态
sudo ./output/bflbwifictrl status
5.2 扫描 AP
sudo ./output/bflbwifictrl scan
5.3 连接 AP
sudo ./output/bflbwifictrl connect_ap "<ssid>" "<password>"
5.4 再次查看状态
sudo ./output/bflbwifictrl status
如果连接成功,通常可以看到:
- backend 已连接
- Wi-Fi 状态为
CONNECTED或GOTIP - 获取到地址后显示
IP / Gateway / Netmask / DNS
5.5 断开连接
sudo ./output/bflbwifictrl disconnect
6. 常用命令
当前公共命令固定为 9 条:
connect_apdisconnectscanstatusversionreboototastart_apstop_ap
7. SDIO 硬件信息
当前客户 bringup 路径建议直接按 SDIO 使用。
USB / SPI 目前仍保留架构骨架,不作为当前推荐 bringup 路径。
7.1 芯片支持情况
| 接口类型 | BL616 / BL618 | BL618DG | BL616CL |
|---|---|---|---|
| SDIO | 支持 | 支持 | 支持 |
| USB | 规划中 | 规划中 | 规划中 |
| SPI | 规划中 | 规划中 | 规划中 |
7.2 SDIO 引脚
| 功能引脚 | BL616 / BL618 | BL618DG | BL616CL |
|---|---|---|---|
| SDIO_DAT2 | GPIO10 | GPIO43 | GPIO6 |
| SDIO_DAT3 | GPIO11 | GPIO44 | GPIO7 |
| SDIO_CMD | GPIO12 | GPIO45 | GPIO8 |
| SDIO_CLK | GPIO13 | GPIO46 | GPIO9 |
| SDIO_DATA0 | GPIO14 | GPIO47 | GPIO10 |
| SDIO_DATA1 | GPIO15 | GPIO48 | GPIO11 |
8. USER Virtual Channel
如果客户需要在 host 与 device 之间传输私有消息,可使用 USER virtual channel。
说明:
USER通道和控制通道是并列关系- 它不是独立物理接口,而是承载在当前 host link 上的逻辑通道
device 侧头文件:
components/net/nethub/include/nethub_vchan.h
host 侧头文件:
bsp/common/msg_router/linux_host/userspace/nethub/virtualchan/nethub_vchan.h
更多说明见 NetHub USER Virtual Channel。
9. 常见问题
9.1 bflbwifid 启动失败
优先检查:
- device 和 host 的控制 backend 是否匹配
/dev/ttyAT0是否存在mr_sdio.ko是否已经成功加载- SDIO 硬件链路是否正常
9.2 connect_ap 成功但 host 没有网络
优先检查:
status是否已经进入GOTIPmr_eth0是否已经获取地址- 系统里的
NetworkManager、dhcpcd等服务是否覆盖了 NetHub 配置
说明:
build.sh默认以ENABLE_NETIF_AUTO_CONFIG=1编译 userspace- device 上报
GOTIP后,host 会自动配置mr_eth0的 IP、网关和 DNS
9.3 build.sh unload 提示模块被占用
优先确认:
- 是否还有
bflbwifid正在运行 - 是否还有
nethub_vchan_app正在运行
通常直接执行:
sudo ./build.sh unload
脚本会先尝试停止已知持有者,再执行卸载。