Skip to main content

Linux Network Config 介绍

:::info 文档信息

文档标识:RK-KF-YF-378 · 发布版本:V1.0.2 · 发布日期:2022-1-14 · 页数:20 · 语言:中文

原始文档:Rockchip_Developer_Guide_Network_Config_CN.pdf

:::

章节大纲​

  • Linux Network Config 介绍(P1)
    • Wi-Fi/BT配置(P4)
      • kernel配置(P4)
      • Buildroot配置(P4)
      • 编译说明(P6)
    • 命令行配网(P7)
    • 手机配网(P7)
      • BLE 配网(P7)
        • 简介(P7)
        • 接口说明(P7)
        • 示例程序(P7)
        • APP(P8)
        • 配网步骤(P8)
      • AirKiss 配网(P10)
        • 简介(P11)
        • kernel 修改(P11)
        • 接口说明(P11)
        • 示例程序(P11)
        • 微信配网方式(P12)
        • 操作示例(P12)
      • SoftAP 配网(P14)
        • 简介(P14)
        • APP(P14)
        • Buildroot配置(P14)
        • 接口说明(P14)
        • 示例程序(P15)
        • 配网步骤(P15)
      • Softap Web UI 配网(P17)
        • 简介(P17)
        • 代码目录(P18)
        • Buildroot配置(P18)
        • 配网(P18)

在线预览​

若预览无法显示,请直接下载 PDF 后用本地阅读器打开。


1. Wi-Fi/BT配置​

1.1 kernel配置​

请参考 /docs/目录下 Rockchip_Developer_Guide_Linux_WIFI_BT_CN.pdf 文档,第二章'WIFI/BT 配置'。

1.2 Buildroot配置​

根目录下执行: make menuconfig 。

  1. Wi-Fi 配置:

rkwifibt配置,根据实际使用Wi-Fi选择对应配置,且必须跟kernel配置一致。

  1. 蓝牙配置

realtek模组建议使用BlueZ 协议,正基/海华模组建议使用BSA协议。以下配置,根据模组类型三选一:

Realtek模组选择:bluez-utils 5.x,使用BlueZ需要同时开启: bluez-alsa,readline正基模组选择:broadcom(ampak) bsa server and app

进入 wifi/bt chip support(XXX)---> 选择实际的芯片型号,必须跟rkwifibt配置一致。

海华模组选择:broadcom(cypress) bsa server and app

进入 wifi/bt chip support(XXX)---> 选择实际的芯片型号,必须跟rkwifibt配置一致。3. 退出配置框, make savedefconfig 保存配置

1.3 编译说明​

  1. 编译rkwifibt,根目录下执行:
make rkwifibt-dirclean && make rkwifibt-rebuild
  1. 编译蓝牙模块,以下编译选项,根据模组类型三选一

realtek模组编译:

make bluez5_utils-rebuild
make bluez-alsa-rebuild

正基模组编译:

make broadcom_bsa-rebuild

海华模组编译:

make cypress_bsa-rebuild
  1. 编译deviceio,根目录下执行:
make deviceio-dirclean && make deviceio-rebuild
  1. 打包固件,根目录下执行:

./mkfirmware.sh  ``#也可以./build.sh,全局编译,会自动打包固件

2. 命令行配网​

  1. 首先确保Wi-Fi的服务进程启动,串口输入: ps | grep wpa_supplicant

  2. 如果没启动,请手动启动:

wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf &
  1. 修改 /data/cfg/wpa_supplicant.conf 文件,添加配置项
network={
ssid="WiFi-AP" // Wi-Fi名字
psk="12345678" // Wi-Fi密码

   key_mgmt``=``WPA``-``PSK ``//选填加密方式,不填的话可以自动识别

#key_mgmt=NONE // 不加密
}
  1. 重新读取上述配置: wpa_cli reconfigure 5. 重新连接: wpa_cli reconnect

3. 手机配网​

3.1 BLE 配网​

3.1.1 简介​

BLE配网同时支持BlueZ BLE配网和BSA BLE配网,配置参照本文档的第一章节‘WIFI/BT 配置’。并且BLE配网已集成到deviceio,接口位于RkBle.h。

3.1.2 接口说明​

请参考/docs/Develop reference documents/DeviceIo目录下《Rockchip_Developer_Guide_Rk3308_DeviceIo_Bluetooth_CN.pdf》文档,第二章节‘BLE接口介绍(RkBle.h)’。

3.1.3 示例程序​

示例程序的路径为: external/deviceio/test/rk_ble_app.c 。

3.1.4 APP​

APP路径:/external/app/RockHome.apk

APP源码路径:/external/app/src/RockHome

该APP仅作为手机端开发Demo,我们适配了Hornor 8,Remi6, 小米6,一加6,OPPO A5型号、iphone6s(plus)、三星S6、VIVO X9等手机。其他型号的手机没有测试,APP兼容性可能存在风险。

3.1.5 配网步骤​

该配网步骤以BSA BLE配网为例进行说明,所有板端log均为BSA的配网log。BlueZ操作步骤相同,板端log不同。

  1. 确保Wi-Fi的服务进程启动,串口输入: ps | grep wpa_supplicant

  2. 如果没启动,请手动启动:

wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf &
  1. 板端命令行执行: deviceio_test wificonfig ,输入1回车,启动BLE 配网

  2. 设置的BLE广播设备名必须以RockChip为前缀,否则APK无法检索到设备:

  3. 手机端打开APK

点击CONTINUE -> START SCAN,扫描以RockChip为前缀命名的BLE设备:6. 点击想要连接的BLE设备,开始连接设备,设备连接成功,板端log如下

  1. 设备连接成功,APK进入配网界面,点击 >> 按钮获取Wi-Fi 列表,选择想要连接的Wi-Fi ,输入密码,点击Confirm开始配网:8. 板端接收到ssid和psk后,开始连接网络

  2. 连接成功,板端发送通知给手机APK

  3. APK端收到配网成功的通知后,断开BLE连接,返回设备搜索界面,板端log如下

  4. 再次启动配网,需要先输入2,关闭BLE配网;再输入1重新启动BLE,重复上述配网流程。

3.2 AirKiss 配网​

3.2.1 简介​

目前AirKiss配网只支持rtl8723ds,请参照本文档第一章节 ’Wi-Fi/BT 配置‘进行相应配置;ap模组请参考external/wifiAutoSetup目录下的说明。

AirKiss兼容性很差,不建议作为唯一的配网方式使用,需要增加其他的配套配网方案,原因请参考《/docs/Develop reference documents/WIFIBT/RK平台RTL8723DS AIRKISS配网说明.pdf》。

目前AirKiss配网已集成到deviceio中,接口位于Rk_wifi.h。

3.2.2 kernel 修改​

修改 /drivers/net/wireless/rockchip_wlan/rtl8723ds/Makefile 文件:

-CONFIG_WIFI_MONITOR = n
+CONFIG_WIFI_MONITOR = y

3.2.3 接口说明​

启动AirKiss配网,成功返回0,失败返回-1:

int RK_wifi_airkiss_start(char *ssid, char *password)

ssid:手机端发送的Wi-Fi名称password:手机端发送的Wi-Fi密码

关闭AirKiss配网

void RK_wifi_airkiss_stop()

3.2.4 示例程序​

示例程序的路径为:external/deviceio/test/rk_wifi_test.c

该测试用例调用RK_wifi_airkiss_start()启动AirKiss,获取ssid和password并启动Wi-Fi配网。主要接口:void rk_wifi_airkiss_start(void *data), DeviceIOTest.cpp中调用。

3.2.5 微信配网方式​

可以使用手机APP 或者扫描微信二维码的方式配置网络.

  1. 手机APP下载地址:https://iot.weixin.qq.com/wiki/document-download.html,进入下载中心 -> WiFi设备 -> AirKiss 调试工具,下载AirKissDebugger.apk

  2. 微信扫描如下二维码,二维码配网时,手机必须先连接Wi-Fi ,否则会提示:未能搜索设备,请开启手机Wi-Fi 后重试

3.2.6 操作示例​

  1. 手机端操作以APP为例进行说明,打开AirKissDebugger.apk,输入ssid和password,AESKey为空、不输入。点击发送按钮,配网成功会弹窗提示“AirKissDebugger:Bingo” 2. 板端命令行执行: deviceio_test wificonfig ,输入3回车,启动airkiss 配网

  2. AirKiss 启动成功

  3. 成功接收ssid和password,并开始配网

  4. 配网成功

  5. 再次启动配网,需要先输入4,关闭AirKiss配网;再输入3重新启动AirKiss,重复上述配网流程

3.3 SoftAP 配网​

3.3.1 简介​

首先,用SDK板的Wi-Fi创建一个AP热点,在手机端连接该AP热点;其次,通过手机端APK获取SDK板的当前扫描到的热点列表,在手机端填入要连接AP的密码,APK会把AP的ssid和密码发到SDK板端;最后,SDK板端会根据收到的信息连Wi-Fi。

SoftAP配网已集成到deviceio中,接口位于Rk_softap.h。

3.3.2 APP​

app路径:/external/app/RockHome.apk

app源码路径: /external/app/src/RockHome

3.3.3 Buildroot配置​

3.3.4 接口说明​

  1. 启动softap配网:
RK_softap_start(char* name, RK_SOFTAP_SERVER_TYPE server_type)

name:Wi-Fi热点的名字,前缀必须为Rockchip-SoftAp server_type:网络协议类型,目前只支持TCP协议2. 结束softap配网

int RK_softap_stop(void)
  1. 注册状态回调
RK_softap_register_callback(RK_SOFTAP_STATE_CALLBACK cb)

正在连接网络:RK_SOFTAP_STATE_CONNECTTING网络连接成功:RK_SOFTAP_STATE_SUCCESS网络连接失败:RK_SOFTAP_STATE_FAIL

3.3.5 示例程序​

示例程序的路径为:external/deviceio/test/rk_wifi_test.c

主要接口:

void rk_wifi_softap_start(void *data)
rk_wifi_softap_stop(void *data)

在DeviceIOTest.cpp中调用。

3.3.6 配网步骤​

  1. 首先确保Wi-Fi的服务进程启动,串口输入: ps | grep wpa_supplicant ,如果没启动,请手动启动:
wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf &
  1. 板端命令行执行 deviceio_test wificonfig ,输入5 回车,启动SoftAP配网3. 打开RockHome.apk,左侧滑选择第三个选项,进入SoftAP配网方式,点击 SEARCH DEVICES,扫描以Rockchip-SoftAp为前缀命名的SoftAP设备

  2. 点击想要连接的SoftAP设备,开始连接设备,设备连接成功,板端log如下

  3. 设备连接成功,APK进入配网界面,点击 >> 获取Wi-Fi 列表,选择想要连接的Wi-Fi,输入密码,点击Confirm开始配网

  4. 板子收到ssid和psk,开始连接网络7. 网络连接成功

  5. 配网成功后,板端disableWifiAp,手机APK返回设备搜索界面,板端log如下

  6. 想要再次启动SoftAP配网,需要先输入6,回车反初始化SoftAP,再输入5重新初始化SoftAP,重复上述配网步骤

3.4 Softap Web UI 配网​

3.4.1 简介​

Softap Web UI配网原理和上面的SoftAP配网一样,只是手机端无需安装任何APK,直接连上热点,然后在浏览器里面进行进行配网。

3.4.2 代码目录​

external/rk_webui/ (包含源码、启动脚本)

buildroot/package/boa/

buildroot/package/rockchip/rk_webui/ (包含编译脚本)

3.4.3 Buildroot配置​

首先Buildroot选择 BR2_PACKAGE_RK_WEBUI = y ,然后保存配置重新编译 make rk_webui ,重新生新固件。

3.4.4 配网​

  1. 正常启动后执行ps查看,确保有如下4个进程启动:

  2. 打开手机设置界面搜索Rockchip_WebUI_前缀的AP,比如Rockchip_WebUI_9604(后面的4位数字表示本机Wi-Fi的MAC地址的后4位,方便区分),点击连接:

  3. 打开手机浏览器,输入:192.168.88.1(浏览器会自动跳转到/cgi-bin/home.c),然后回车出现如下界面:4. 点击WiFi AP:

  4. 点击Scan扫描:

  5. 点击要连接的Wi-Fi,然后输入密码并点击Connect(注意:由于Wi-Fi芯片的硬件限制:当连接目前Wi-Fi比如TP-LINK_HKH 和本身热点Rockchip_WebUI_XXXX不在同一个信道,会导致手机和热点断开,请重新连接热点获取配网状态)7. 手机重新连接热点,点击刷新,可以看到已经连接Connected(且支持忘记和断开操作)