【Semidrive G9X】WiFi 模块调试

关键字 :SemidriveautoG9X

使用的硬件环境是我们的 Spider 方案 G9X 板子,软件版本是 PTG4.9。

 
一、确认原理图与驱动

1.  NF3205 是一颗 BT 和 WiFi 模块芯片,其中 WiFi 使用 pcie 接口。查看原理图,WL_EN 脚 是 WiFi 的使能脚,高电平有效,数据接口确认到使用的是 pcie1 接口。

 

 
2.  把 WL_EN 脚拉高,查看原理图确认到 WL_EN 是由 GPIO_D13 控制的,我们只需要在 SDConfigTool 里面把 GPIOD13 拉高就好。

 

3.  WiFi 的驱动是 Semidrive 的 Kernel 自带的,所以只需要在 dts 把 pcie1 设备设为 okay 即可。

 
二、WiFi 主模式

1.  接下来使用 WiFi 的 host 功能,我们需要 hostapd 这个工具来打开 WiFi 热点,yocto 里面有这个包,可以直接编译放到板端。

启动 hostapd 前需要我们写好 hostapd 的配置文件,因为 hostapd 起来前会解析这个文件来进行相关的设定,如果使用 yocto 的包,hostapd.conf 是已经默认写好了,直接在命令行输入 # hostapd /etc/hostapd.conf -B,运行结果如下:

 

2.  然后使用 udhcpd 来为连接的设备分配 ip 地址,在 /etc/udhcpd.conf 中输入如下配置:

start 192.168.175.2

end 192.168.175.254

interface wlan0

max_leases 234

opt router 192.168.175.1

然后先配置 wlan0 的 ip 地址,再在后台运行 udhcpd

# ifconfig wlan0 192.168.175.1

# udhcpd /etc/udhcpd.conf &

这时候就可以在手机上连接 WiFi 了,WiFi 的名字是 test,是一个没有密码的 WiFi,这个名字和密码都可以在 hostapd.conf 中修改。

 



三、 WiFi 从模式

如果要使用 WiFi 的从模式连接其他热点,那么可以使用 wpa_supplicant 和 wpa_cli 工具,其中 wpa_supplicant 程序作为服务端在后台运行,服务 wpa_cli 客户端的请求,从而实现 WiFi 的配置连接。先运行 wpa_supplicant:

# wpa_supplicant -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf -B

然后扫描周边热点:

# wpa_cli -i  wlan0 scan

查看扫描结果:

# wpa_cli -i wlan0 scan_result

 

增加一个网络 id :

# wpa_cli -i wlan0 add_network

该命令会返回一个编号,后续会用到:

 

配置 WiFi 热点的名称 ssid :

# wpa_cli -i wlan0 set_network 1 ssid '"Mi 11"'

这个 1 就是刚才返回的网络编号

 

配置 WiFi 热点的密码 psk:

# wpa_cli -i wlan0 set_network 1 psk '"12345678"'

 

选择刚才配置的 net_work 进行连接:

# wpa_cli -i wlan0 select_network 1

 

使用 udhcpc 获取 ip 地址:

# udhcpc -i wlan0 -q

 

然后尝试连接外网,ping 一下百度:


看来已经是成功连接到 WiFi 热点了。

至此,Wi-Fi 模块的驱动移植已经完成。

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论