查看“︁Nethub用户手册”︁的源代码
←
Nethub用户手册
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
不允许您执行您所请求的操作。
您可以查看和复制此页面的源代码。
基于BL616C/BL618M/BL618DG/BL616CL 的 Linux 主机通信方案,提供内核模块和用户态控制工具。 == 目录 == * [[Nethub用户手册#1. 系统架构|1. 系统架构]] * [[Nethub用户手册#2. 快速开始|2. 快速开始]] * [[Nethub用户手册#3. 开发指南|3. 开发指南]] * [[Nethub用户手册#4. 常见问题|4. 常见问题]] == 1. 系统架构 == [[文件:Arch_host_device.png|800px]] '''说明''':当前控制通道通过 tty 传输,后续将支持通过 VirtualChannel 传输 AT 命令。 === 1.1 组件说明 === {| class="wikitable" !组件 !类型 !说明 |- |bflbwifictrl |用户态 |命令行工具,通过 Unix Socket 与守护进程通信 |- |bflbwifid |用户态 |守护进程,负责设备通信和 WiFi 连接管理 |- |libbflbwifi |用户态 |静态库,提供 WiFi 控制 API |- |nethub_vchan_app |用户态 |VirtualChannel 通信程序,提供私有数据通道(消息包传输,非流式) |- |mr_sdio.ko |内核态 |内核驱动模块,支持 SDIO 接口 |} === 1.2 数据流向 === <syntaxhighlight lang="text"> 用户命令: bflbwifictrl → bflbwifid → libbflbwifi → /dev/ttyAT → 内核驱动 → 设备 URC事件: 设备 → 内核驱动 → /dev/ttyAT → bflbwifid → 解析处理 → 网卡配置 工作流程: 加载内核模块 → 启动守护进程 → TTY 通信建立 → 准备就绪 </syntaxhighlight> == 2. 快速开始 == 本演示展示了完整的操作流程:编译 → 加载内核模块 → 启动守护进程 → WiFi 连接 → 网络通信 → 消息收发。 [[文件:Nethub_sdio_quickstart_demo.gif]] === 2.1 编译和加载内核模块 === <syntaxhighlight lang="bash"> cd nethub/ ./build.sh build sudo ./build.sh load </syntaxhighlight> === 2.2 运行 WiFi 守护进程 === <syntaxhighlight lang="bash"> # 启动守护进程(默认使用 /dev/ttyAT0) sudo ./output/bflbwifid -p /dev/ttyAT0 # 或查看帮助 sudo ./output/bflbwifid -h </syntaxhighlight> === 2.3 使用 WiFi 控制工具 === <syntaxhighlight lang="bash"> # 扫描 AP sudo ./output/bflbwifictrl scan # 连接 AP(无密码) sudo ./output/bflbwifictrl connect_ap "SSID" # 连接 AP(有密码) sudo ./output/bflbwifictrl connect_ap "SSID" "password" # 查看状态 sudo ./output/bflbwifictrl status # 断开连接 sudo ./output/bflbwifictrl disconnect </syntaxhighlight> == 3. 开发指南 == === 3.1 系统要求 === * '''内核版本''':Linux 3.7+(内核模块需要) * '''架构''':x86_64、ARMv7(树莓派)、ARMv8(树莓派 4/5) * '''依赖''':gcc、make、libc、pthread '''兼容性说明''': * ✅ 用户空间程序(bflbwifid/bflbwifictrl):无内核版本限制 * ✅ 内核模块(mr_sdio.ko):支持 Linux 3.7+ * ✅ 已测试:Linux raspberrypi 6.12.25+rpt-rpi-v8 === 3.2 命令参考 === ==== build.sh 命令 ==== {| class="wikitable" !命令 !说明 |- |<code>build</code> |编译内核模块、virtualchan 和 bflbwifictrl |- |<code>clean</code> |清理所有编译产物 |- |<code>load</code> |加载内核模块 <code>mr_sdio.ko</code> |- |<code>unload</code> |卸载内核模块 |} ==== bflbwifictrl 命令 ==== {| class="wikitable" !命令 !说明 |- |<code>scan</code> |扫描附近 AP |- |<code>connect_ap <SSID> [密码]</code> |连接到 AP |- |<code>disconnect</code> |断开连接 |- |<code>status</code> |查看连接状态 |- |<code>version</code> |查看固件版本 |} === 3.3 功能特性 === ==== bflbwifid(守护进程) ==== * '''TTY 通信''':与 WiFi 模块通过串口通信 * '''AT 协议''':解析和封装 AT 指令 * '''状态管理''':维护 WiFi 连接状态 * '''Unix Socket''':提供 IPC 通信接口 * '''GOTIP 自动配置'''(可选):收到 IP 后自动配置 Linux 网卡 ==== bflbwifictrl(命令行工具) ==== * '''CLI 接口''':通过 Unix Socket 与守护进程通信 * '''简洁易用''':提供常用 WiFi 操作命令 * '''状态查询''':实时显示连接信息 ==== GOTIP 自动配置功能(默认启用) ==== 当 WiFi 模块获取 IP 后,会自动: # 解析 URC:<code>+CW:GOTIP,IP:xxx,gw:xxx,mask:xxx,dns:xxx</code> # 配置网卡:<code>ip addr add</code>、<code>ip route add default</code> # 配置 DNS:写入 <code>/etc/resolv.conf</code> '''注意事项''': * 部分host需要禁用 NetworkManager:<code>sudo systemctl disable --now NetworkManager</code> * 需要禁用 dhcpcd:<code>sudo systemctl disable --now dhcpcd</code> * 默认网卡名为 <code>mr_eth0</code>(可在代码中修改) === 3.4 代码修改与编译 === ==== 修改代码后重新编译 ==== <syntaxhighlight lang="bash"> # 只编译 bflbwifictrl cd bflbwifictrl make clean && make # 或使用 build.sh 编译所有 cd .. ./build.sh build </syntaxhighlight> ==== 重新加载内核模块 ==== <syntaxhighlight lang="bash"> sudo ./build.sh unload sudo ./build.sh load </syntaxhighlight> == 4. 常见问题 == === 4.1 找不到串口设备 === <syntaxhighlight lang="bash"> # 查看可用串口 ls /dev/ttyACM* /dev/ttyUSB* # 添加用户到 dialout 组(避免每次都用 sudo) sudo usermod -aG dialout $USER # 然后重新登录 </syntaxhighlight> === 4.2 IP 配置后自动消失 === '''原因''':NetworkManager 或 dhcpcd 覆盖了手动配置。 '''解决''':<syntaxhighlight lang="bash"> # 禁用 NetworkManager sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager # 禁用 dhcpcd sudo systemctl stop dhcpcd sudo systemctl disable dhcpcd </syntaxhighlight> === 4.3 查看调试日志 === <syntaxhighlight lang="bash"> # 查看守护进程日志 tail -f /var/log/bflbwifi.log # 查看内核日志 dmesg -w # 守护进程前台运行(查看实时输出) sudo ./output/bflbwifid -p /dev/ttyAT0 --foreground </syntaxhighlight> === 4.4 编译错误 === <syntaxhighlight lang="bash"> # 确保安装必要的开发包 sudo apt-get install build-essential libc-dev-i386 # 树莓派需要安装 32 位兼容库 sudo apt-get install libc6:i386 libstdc++6:i386 </syntaxhighlight>
返回
Nethub用户手册
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息