1.先加载内核驱动模块
insmod xxx.ko
2.生成一个wifi.conf文件,并输入密码
wpa_passphrase "TP-LINK_D87A" > wifi.conf
wangsuna123
3.打开wifi.conf文件
wpa_supplicant -B -c wifi.conf -i wlan0
出现信息:
Successfully initialized wpa_supplicant
rfkill: WLAN soft blocked
如果运行输出 wlan soft blocked or wlan hardware blocked 这个是因为,无线已经被锁定了,就像你按了笔记本电脑上提供的 wifi关闭快捷键一样
4. 上面信息说明wlan已经被关闭了,需要rfkill解锁
rfkill
rfkill 提供就像我们笔记本电脑对wifi 蓝牙等设备开闭的快捷键一样的功能
列出所有的设备,设备有编号
1 2 3 4 5 6 7 | rfkill list # 输出 1: phy1: Wireless LAN Soft blocked: no Hard blocked: no # 1: 表示wlan设备的编号,下面都是使用这个编号来处理 # no 表示没有被锁定 yes 表示被锁定 |
rfkill unblock all
锁定设备
1 2 3 4 5 6 7 | rfkill block 1 rfkill list # 输出 1: phy1: Wireless LAN Soft blocked: yes Hard blocked: no # 我们可以看到 Soft 已经被锁定的,这样我们就不能使用wifi了
|
解锁设备
1 2 3 4 5 6 7 | rfkill unblock 1 rfkill list # 输出 1: phy1: Wireless LAN Soft blocked: no Hard blocked: no # 我们可以看到 Soft 已经解锁,这样我们就能使用wifi了 |
5.从连接的网络上获取ip地址 DNS服务
例如:udhcpc -i wlan0是获取wlan0的ip地址,如果想获取之后直接退出,添加 -q参数,即:udhcpc -q -i wlan0
它自带参数可以实现该功能。如下:
udhcpc -b -i eth0 -p /var/run/udhcpc.pid -R
解释一下,-b就是切换到后台指令,-i是指定使用哪个网络接口,双网卡的时候一定要使用它来指定eth0 or eth1。
udhcpc是一个面向嵌入式系统的非常小的DHCP客户端,字母的缩写微- DHCP -客户端(μDHCPc)。
1.udhcpc -i eth0
udhcpc只是获取一个IP,我们需要把\busybox-1.1.2\examples\udhcp下的脚本simple.script改名为default.script,放在开发板上的/usr/share/dhcpc/目录下,才能将获取的IP写到指定的网卡中。
2. busybox\examples\udhcp\simple.script
拷贝到开发板
/usr/share/udhcpc/default.script
3. 要添加可执行权限
# chmod 755 /usr/share/udhcpc/default.script
udhcpc源码创建RAW socket,广播discover并解析应答,收到应答之后运行/usr/share/udhcpc/default.script脚本设置IP、路由、DNS。
root@stm32mp1:~# udhcpc -i wlan0
udhcpc: started, v1.29.2
udhcpc: sending discover
udhcpc: sending select for 192.168.0.104
udhcpc: lease of 192.168.0.104 obtained, lease time 7200
/etc/udhcpc.d/50default: Adding DNS 192.168.1.1
/etc/udhcpc.d/50default: Adding DNS 192.168.0.1
root@stm32mp1:~# ping 192.168.0.103
PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data.
64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=136 ms
64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=35.1 ms
如果需要访问互联网,需要设置DNS服务
echo "nameserver 114.114.114.114" > /etc/resolv.conf
6.wifi的STA和AP模式
STA模式: