多语言展示
当前在线:1080今日阅读:57今日分享:41

AP6256 STA模式操作示例

接上篇文章,该经验应用ampak正基所有AP6XXX系列模块该经验来源:深圳市世
工具/原料

电脑,AP6256模块

方法/步骤
1

4-1 加载驱动步骤 1. 加载驱动。ap6181/ap6212/ap6212a/ap6214a/ap6255himm 0x100d0004 0x1himm 0x12098034 0x10101070insmod cfg80211.koinsmod bcmdhd.ko firmware_path=/etc/firmware/fw_bcm40181a2.binnvram_path=/etc/firmware/nvram.txt dhd_oob_gpio_base=0x1214d000dhd_oob_gpio_num=0 dhd_oob_irq_num=76 sdio_slot=1himm 0x12098034 0x10101050himm 0x12098034 0x10101070第一行命令是给 SDIO 控制器上电,地址为 WiFi 模块对接的 SDIO 端口所对应的控制器地址;第二行是将 WL_REG_ON 拉高给 WiFi 上电,WL_REG_ON 连接的GPIO 不同,地址和值也不同,上例 WL_REG_ON 连接在 PER_EN1 上,请根据用户指南修改;第四行命令是加载 WiFi 驱动,其中:− dhd_oob_gpio_base 和 dhd_oob_gpio_num 是配置 OOB 管脚,上例为GPIO13_0,oob_gpio_base=0x1214d000 设置 GPIO13 的基地址,基地址从用户指南中查找,dhd_oob_gpio_num 设置偏移为 0;− dhd_oob_irq_num 为 OOB GPIO 的中断号,请从用户指南中查找;− sdio_slot 是 WiFi 对接的 SDIO 端口号。第五、六行是将 WL_REG_ON 拉底再拉高,复位 WiFi。步骤 2. 查看驱动是否加载成功。执行 shell 命令:iwconfig如果看到有一个 wlan0 网口,那说明驱动已经初始化成功,WiFi 设备可用。下图 iwconfig 执行结果

2

步骤 3. 启动 WiFi 网口。执行 shell 命令:ifconfig wlan0 up执行完后,WiFi 是可用状态,可以进行扫描和连接操作了。----结束

3

3.2 扫描 AP 执行 shell 命令:iwlist wlan0 scan下图 扫描 AP 执行结果

4

扫描到的 AP 会以“Cell xx”的形式显示,一个 AP 对应一个“Cell xx”。每个 AP 的信息包括: Address:MAC 地址。ESSID:AP 的名称,即 SSID。 Protocol:IEEE80211 协议,11b/g/n。 Frequency:信道。 认证加密信息:WEP、WPA-PSK、WPA2-PSK、WPA、WPA2。 Quality:信号质量,该数据有些 WiFi 显示得不准确,可以忽略。 Signal Level:信号强度,数字越大,信号强度越高,WiFi 芯片不同,显示的方式有些区别,有的是以 xx/100 类型显示,有的是以 xx dBm 显示。上述信息并不是所有 WiFi 都是以这种格式显示,WiFi 不同显示的格式也不一样。

5

3.3 连接 AP 连接 AP 是通过 wpa_supplicant 进程进行的。wpa_supplicant 是开源代码,Linux、Android 都是采用它负责 WiFi 的连接过程,它包含了 WEP、WPA/WPA2、WPAPSK/WPA2-PSK、WAPI、WPS、P2P、EAP 等协议。步骤 1. 启动 wpa_supplicant 进程。执行 shell 命令:wpa_supplicant –iwlan0 –Dnl80211 –c/etc/Wireless/wpa_supplicant.conf& iwlan0 表示使用 wlan0 网口; Dnl80211 表示使用 cfg80211 接口(用户态的接口是 libnl,内核中是 cfg80211), 另外一个可选的是-Dwext,表示使用 wext 接口,mt7601u 需要使用-Dwext; c/etc/Wireless/wpa_supplicant.conf 是 wpa_supplicant 的配置文件,要保证该文件已经存在。执行完后,用 ps 命令查看一下 wpa_supplicant 进程是否存在,存在表示工作正常。如果没有 wpa_supplicant 进程,可以增加wpa_supplicant 的打印级别,从 log 看出现什么问题,如:wpa_supplicant –iwlan0 –Dnl80211 c/etc/Wireless/wpa_supplicant.conf –ddd &步骤 2. 启动 wpa_cli 进程。执行 shell 命令:wpa_cli –iwlan0 –p/var/wpa_supplicant执行成功会出现“>”符号。如果出现“Could not connect to wpa_supplicant - re-trying”,那表示 wpa_cli 不能和wpa_supplicant 建立 socket 连接,这时要检查 wpa_supplicant 进程是否还在,再看是否有/var/wpa_supplicant/wlan0,然后检查 wpa_supplicant.conf 文件中是否是ctrl_interface=/var/wpa_supplicant。步骤 3. 扫描。在“>”后执行“scan”命令,收到“CTRL-EVENT-SCAN-RESULTS”后再执行 “scan_results”,会获得扫描结果。下图 wpa_cli 扫描 AP 结果

6

步骤 4. 连接。连接 OPEN 方式的 AP:a. 在“>”后执行 add_network,假如返回网络 ID 为 0。b. 配置网络的 SSID,执行 set_network 0 ssid“AP 的 SSID”。c. 配置网络的加密方式,执行 set_network 0 key_mgmt NONE。d. 启动网络,执行 select_network 0。e. 收到 CTRL-EVENT-CONNECTED 表示连接成功。下图 连接 AP

7

连接 WPA-PSK/WPA2-PSK 方式的 AP:在“>”后执行 add_network,假如返回网络 ID 为 0。 配置网络的 SSID,执行 set_network 0 ssid“AP 的 SSID”。 配置网络的加密方式,执行 set_network 0 psk“AP 的密码”。 启动网络,执行 select_network 0。 收到 CTRL-EVENT-CONNECTED 表示连接成功。 Broadcom 的 WiFi 还可以通过 wl 工具进行扫描和连接,连接方法请参考 sample 和wl 的 help 信息。步骤 5. 获取 IP 地址。输入 q 退出 wpa_cli,执行 shell 命令:udhcpc –i wlan0配置了 IP 地址后,可以 ping 网关看是否能 ping 通。----结束

8

3.4 卸载驱动ap6181/ap6212/ap6212a/ap6214a/ap6255ifconfig wlan0 downrmmod bcmdhd.kormmod cfg80211.ko

9

4 .SoftAP 模式基本操作示例4.1 检查 WiFi 设备、加载驱动ap6181/ap6212/ap6212a/ap6214a/ap6255 用的 firmware 和 STA 模式不一样,如下:himm 0x100d0004 0x1himm 0x12098034 0x10101070insmod cfg80211.koinsmod bcmdhd.ko firmware_path=/etc/firmware/fw_bcm40181a2_apsta.binnvram_path=/etc/firmware/nvram.txt dhd_oob_gpio_base=0x1214d000dhd_oob_gpio_num=0 dhd_oob_irq_num=76 sdio_slot=1himm 0x12098034 0x10101050himm 0x12098034 0x1.2 hostapd 配置和启动 SoftAP配置 SoftAP 是通过 hostapd 进行的。hostapd 和 wpa_supplicant 类似,它包含了 AP 端的各种认证协议、连接流程,wpa_supplicant 是 STA 端的。

10

步骤 1. 修改 hostapd.conf 文件。hostapd 进程需要使用 hostapd.conf 配置文件,在配置文件里设置 SSID、信道、加密方式等。配置文件的内容举例如下: OPENinterface=wlan0driver=nl80211ctrl_interface=/var/hostapdssid=HisiAPchannel=6hw_mode=gieee80211n=1ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40-] WPA2-PSKinterface=wlan0driver=nl80211ctrl_interface=/var/hostapdssid=HisiAPchannel=6hw_mode=gieee80211n=1ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40-]wpa=3wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIP CCMPwpa_passphrase=12345678hostapd 是开源代码,配置文件中的参数可以参考网络资源。ht_capab 可以配置是否支持 40M 带宽,带有[SHORT-GI-40][HT40-]或者[SHORT-GI-40][HT40+]即支持 40M 带宽。当 channel 小于 6 时,用[SHORT-GI-40][HT40+],当channel 大于等于 6 时,用[SHORT-GI-40][HT40-]。mt7601u、ap6181、ap6212、ap6212a、ap6214a、ap6255 的 SoftAP 模式不支持 40M 带 宽,所以 ht_capab 设置如下:ht_capab=[SHORT-GI-20]

11

步骤 2. 启动 hostapd 进程。执行 Shell 命令:hostapd -e /etc/Wireless/entropy.bin /etc/Wireless/hostapd.conf &执行完后,用 ps 命令查看一下 hostapd 进程是否存在,存在表示工作正常,用 STA 设 备可以搜索到 SoftAP。如果没有,可以增加 hostapd 的打印级别,从 log 看出现什么问题,如:hostapd -e /etc/Wireless/entropy.bin –ddd /etc/Wireless/hostapd.conf &----结束Broadcom 的 WiFi 还可以通过 wl 工具进行配置,配置方法请参考 sample 和 wl 的 help信息。

12

4-3 开启 udhcpd执行 Shell 命令:ifconfig wlan0 192.168.1.1busybox udhcpd –fS /etc/Wireless/udhcpd.conf请确保/etc/Wireless/udhcpd.conf 文件存在,并且配置的网段为 192.168.1.x。执行完后, 用 STA 设备可以扫描和连接该 SoftAP,如果能成功连接且 ping 通网关表示此 AP 配置成功。

13

4-4 卸载驱动卸载驱动的方法和 STA 模式一样。4-5适配国家或区域不同的国家或区域,采用的频率范围有些不同,比如 2.4GHz 频段,美国支持 1~11 信 道,中国和欧洲支持 1~13 信道,日本支持 1~14 信道。5GHz 频段也类似。WiFi 需要根据产品上市的国家或区域做相应的配置,以适用于该国家的频率范围。

注意事项

使用 iwlist 进行扫描时,iwlist 不会等驱动扫描完所有信道才返回扫描结果,所以经常会出现有些 AP 没有搜出来的情况,尤其是MT7601U,由于在每个信道上停留的时间较长,所以第一次扫描时,只能搜到 1~2 个信道里的 AP。

推荐信息