WIFI网卡的配置有两种:
如果要安装编译可以参考:
linux下移植wifi之安装libnl-3(三)
hisi平台Wireless_tools、libnl、wpa_supplicant和openssl移植
wireless-tools移植和交叉编译
1 下载源码
下载openssl
链接:https://pan.baidu.com/s/1loq558gdcJGSS39aBKin_g
提取码:l9ud
下载wpa_supplicant
https://w1.fi/releases/
二、编译openssl库
将wpa_supplicant中的补丁拷贝到openssl中
cp wpa_supplicant-0.7.3/patches/openssl-0.9.8e-tls-extensions.patch openssl-0.9.8e/(但是这个版本的openssl不需要)
开始配置
#cd openssl-0.9.8e
#mkdir /home/liu/ARM/test/openssl-0.9.8za/tmp_ssl
#vim Makefile
CC= arm-linux-gcc
AR= arm-linux-ar $(ARFLAGS) r
RANLIB= arm-linux-ranlib
INSTALLTOP=/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl
OPENSSLDIR=/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl
#make
#make install //执行这一步可能会出错,说什么/usr/bin/pod2man错误,只要删除这个文件就好了
make install //执行这一步可能会出错,说什么 /usr/bin/pod2man 错误。
第一种方法:只要删除这个文件就好
第二种方法:进入Makefile,把这句话install: all install_docs install_sw 改为 install: install_sw,也就是不生成man手册,反正我们也不用man手册
在/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl目录下安装了ssl库
root@liu-virtual-machine:/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl# ls
bin certs include lib man misc openssl.cnf private
后面编译 wpa_supplicant 要依赖openssl中的lib和include
3 编译wpa_supplicant
进入wpa_supplicant-0.7.3.tar.gz解压生成的wpa_supplicant-0.7.3/wpa_supplicant目录中:
#cp defconfig .config
#vim .config
CC=arm-linux-gcc -L/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl/lib/
CFLAGS += -I/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl/include/
LIBS += -L/home/liu/ARM/test/openssl-0.9.8za/tmp_ssl/lib/
#make
经过编译后的wpa_supplicant源程序可以看到两个主要的可执行工具:
wpa_supplicant和wpa_cli。
wpa_supplicant是核心程序,它和wpa_cli的关系就是服务和客户端的关系:后台运行wpa_supplicant,使用wpa_cli来搜索、设置、和连接网络。
4 配置wpa_supplicant
(1)首先拷贝wpa_supplicant和wpa-psk-tkip.conf到开发板根文件系统中
cp wpa_cli /home/liu/ARM/rootfs/rootfs2/bin/
cp wpa_supplicant /home/liu/ARM/rootfs/rootfs2/bin/
cp wpa_cli wpa_passphrase /home/liu/ARM/rootfs/rootfs2/bin/
cp examples/wpa-psk-tkip.conf /home/liu/ARM/rootfs/rootfs2/etc/wpa_supplicant.conf (更改文件名)
(2)设置配置文件
创建一个文件夹
mkdir -p /etc/Wireless/RT2870STA/ (开发板)
root@liu-virtual-machine:/home/liu/ARM/test/wifi_source# cp RT2870STA.dat
/home/liu/ARM/rootfs/rootfs2/etc/Wireless/RT2870STA/RT2870STA.dat
(开发板) /etc# vim wpa_supplicant.conf
由于我的手机热点为WPA2-PSK,这个wpa好像有不支持WPA2-PSK,所以我手机热点就没有用密码
# WPA-PSK/TKIP
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="vivo Y51A"
key_mgmt=WPA-PSK
# proto=WPA
# pairwise=TKIP
# group=TKIP
psk="zaq852xsw"
}
由于WiFi运行要一个运行文件,因此要创建一个文件:
mkdir -p /var/run/wpa_supplicant
然后:
insmod mt7601Usta.ko //安装驱动程序
ifconfig ra0 up //开启无线网卡
ifconfig wlan0 192.168.0.233
ifconfig
ra0 Link encap:Ethernet HWaddr 0E:4B:88:00:87:9D
inet addr:192.168.0.233 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:492 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:121403 (118.5 KiB) TX bytes:0 (0.0 B)
连接网络:同时手机上可以显示已经连接了一个设备
[root@liu ]# wpa_supplicant -B -c /etc/wpa_supplicant.conf -i ra0 //连接无线网络
[root@liu ]# wpa_cli -i ra0 status
bssid=9c:a5:c0:15:74:1a
ssid=vivo Y51A
id=0
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ping通外网:
ifconfig ra0 192.168.43.20 //手动配置ip,同一网段
route add default gw 192.168.43.1 dev ra0 //配置网关
ping -I ra0 192.168.43.1 //指定网卡 ra0 ping 网关
ping -I ra0 8.8.8.8 //ping 外网
ping -I ra0 202.108.22.5 //ping 百度的ip地址
vi /etc/resolv.conf //配置dns
nameserver 192.168.43.1
ping -I ra0 www.baidu.com
1、使用interfaces文件静态配置
(1)
insmod /mt7601Usta.ko //安装驱动程序
ifconfig ra0 up //开启无线网卡
wpa_supplicant -B -c /etc/wpa_supplicant.conf -i ra0 //连接无线网络
wpa_cli -i ra0 status //查看连接状态
(2)interface文件
第一步,编辑好interface文件
第二步,使interface文件生效(重启网卡),方法是先ifdown ra0然后ifup ra0
总结:使用/etc/network/interfaces文件其实就是替代了手工配置时的ifconfig分配本地ip地址,和route添加网关这两步。
2、使用dhcp动态分配IP
(1)原理:路由器中有个dhcp服务器,本地有dhcp客户端
(2)前导步骤
insmod mt7601Usta.ko //安装驱动程序
ifconfig ra0 up //开启无线网卡
wpa_supplicant -B -c /etc/wpa_supplicant.conf -i ra0 //连接无线网络
wpa_cli -i ra0 status //查看连接状态
(3)当前状态就是:wifi网卡已经启动并且连接上路由器了,但是本地没有ip地址,所以没法ping通路由器。怎么办?使用dhcp分配一个本地ip。
方法1:命令行使用udhcpc命令来分配
方法2:使用interface文件选择dhcp模式然后重启网卡
3、让开发板开机自动连上路由器上网
改/etc/init.d/rcS及其相关文件
insmod /mt7601Usta.ko
ifconfig ra0 up
mkdir -p /var/run/wpa_supplicant
wpa_supplicant -B -c /etc/wpa_supplicant.conf -i ra0
ifconfig ra0 192.168.43.20
route add default gw 192.168.43.1 dev ra0