5. Wi-Fi基本操作

5.1. STA模式基本操作

5.1.1. 加载驱动

步骤 1. 载入驱动

需检查/mnt/system/ko/3rd下是否已具备下面的文件,根据所用模组加载不同ko:

[root@cvitek]/mnt/system/ko/3rd# ls
8188fu.ko    8189fs.ko

注意,由于wifi驱动并没有放在linux源码目录树中,所以无法build-in,只能编译成ko。

insmod /mnt/system/ko/3rd/8189fs.ko

insmod /mnt/system/ko/3rd/8188fu.ko

步骤2. 查看驱动是否载入成功

执行shell 指令:

ifconfig -a

若载入成功,可在执行shell指令后看到 wlan0网口

_images/image3.png

5.1.2. 启动Wi-Fi与连接AP

步骤1. 启动Wlan0网口

sc执行shell指令:

ifconfig wlan0 up

步骤2. 启动 wpa_supplication

执行 shell 指令:

echo "ctrl_interface=/var/run/wpa_supplicant" >/tmp/wpa_supplicant.conf
wpa_supplicant -iwlan0 -Dnl80211 -c/tmp/wpa_supplicant.conf &
  • -iwlan0 表示使用wlan0接口

  • -Dnl80211 表示使用cfg80211接口

步骤3. 启动wpa_cli

执行shell指令:

wpa_cli -i wlan0

执行成功会出现 “>”提示符号

_images/image4.png

步骤4. 扫描附近AP

在 “>”提示符号后执行如下指令:

scan

在出现“CTRL-EVENT-SCAN-RESULTS”后, 再执行

scan_results

即可得到扫描结果

_images/image5.png

步骤 5. 连接AP

  • 连接配置为WPA-PSK/WPA2-PSK认证与加密类型方式的AP

  1. 在“>”提示符号后执行如下指令,以取得网路ID (此示例中为0):

    add_network
    
  2. 配置网路的SSID (此示例中的SSID为SW-test,由步骤4取得)

    set_network 0 ssid “SW-test”
    
  3. 配置网路加密方式与密码 (假设SW-test密码为012345678)

    set_network 0 psk “012345678”
    
  4. 启动网路

    select_network 0
    
  5. 观察是否有收到CTRL-EVENT-CONNECTED,若有,则表示连接成功。或可执行”status”指令,查询连线状态

    _images/image5.png
  6. 输入“quit”退出wpa_cli, 执行shell指令如下以取得动态IP地址

    udhcpc -b -i wlan0 -R &
    
  7. 执行ping指令, 以观察网路是否正常运作, ex.

    Ping 8.8.8.8
    
  • 连接配置为open system的AP

    步骤与配置为WPA-PSK/WPA2-PSK认证与加密类型方式相同,唯在配置网路加密方式需输入如下指令:

    set_network 0 key_mgmt NONE
    

5.1.3. 关闭Wi-Fi与卸载驱动

步骤 1. 执行shell 指令如下:

ifconfig wlan0 down

步骤 2. 执行如下shell指令:

rmmod 8189fs.ko

rmmod 8188fu.ko

5.2. SoftAP模式基本操作

5.2.1. 加载驱动

载入驱动方式与STA模式相同,请参考章节 5.1.1.加载驱动

5.2.2. hostapd配置, udhcpd配置与启动SoftAP

启动SoftAP需先启动hostapd。与wpa_supplicant类似,hostpad可以用来配置AP端的各种认证协议,以及连接流程。

步骤1. 启动hostpad。执行shell命令

ifconfig wlan0 192.168.1.1 up
hostapd /etc/network/hostapd.conf -B -i wlan0

步骤2. 启动udhcpd以分配动态IP给连接装置,执行shell 命令

udhcpd /etc/network/udhcpd.conf

备注:

  • 可透过修改hostapd.conf来配置SoftAP的ssid, channel, 加密认证方式等,文档位置在SDK包里的/ramdisk/rootfs/overlay/{chip_name}/etc/network 或是平台上的/etc/network。例如可修改ssid以及wpa_passphrase来配置AP 名称以及登入密码

    interface=wlan0
    ctrl_interface=/var/run/hostapd
    ssid=CV184X_EVB
    channel=6
    wpa=3
    wpa_passphrase=012345678
    

其他参数意义可参考: http://manpages.ubuntu.com/manpages/bionic/man5/udhcpd.conf.5.html

  • 可透过修改udhcpd.conf来配置SoftAP所分配的IP范围。udhcpd.conf文档位置在SDK包里的/ramdisk/rootfs/overlay/{chip_name}/etc/network 或是平台上的/etc/network。

    # The start and end of the IP lease block
    start       192.168.1.10   #default: 192.168.0.20
    end      192.168.1.254   #default: 192.168.0.254