参考:https://blog.csdn.net/u011003120/article/details/90175648
2 libnl编译
2.1 下载
下载链接:
http://www.linuxfromscratch.org/blfs/view/svn/basicnet/libnl.html
2.2 编译
解压进入主目录,使用如下命令编译:
#mkdir _install
#./configure –host=arm-himix200-linux –prefix=/home/leon/Workspace/opensshd/output
#make
#make install
3 wpa_supplicant
3.1 下载
下载链接:http://w1.fi/releases/
http://w1.fi/releases/wpa_supplicant-2.9.tar.gz
3.2 编译
解压并进入主目录
使用如下命令编译
#cd wpa_supplicant/
#cp defconfig .config
CFLAGS += -I/home/leon/Workspace/opensshd/output/include/
LIBS += -L/home/leon/Workspace/opensshd/output/lib
CFLAGS += -I/home/leon/Workspace/opensshd/output/include/libnl3
LIBS += -L/home/leon/Workspace/opensshd/output/lib
make CC=arm-himix200-linux-gcc
出现:
Package libnl-3.0 was not found in the pkg-config search path
mkdir -p /data/misc/wifi
./wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -O/data/misc/wifi/sockets &
如果出现以下问错误,是因为内核RFKILL选项没有打开
rfkill: Cannot open RFKILL control device
D/wpa_supplicant( 1152): nl80211: RFKILL status not available
在内核目录make menuconfig
networking support–>
RF switch subsystem support–>
<>GPIO RFKILL driver
打开后重新编译烧录内核即可
获取wifi状态
wpa_cli status -iwlan0 -p/data/misc/wifi/sockets
bssid=e4:95:6e:40:34:4c
freq=2462
ssid=OCEIOT
id=1
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.8.225
address=08:ea:40:fc:38:a5
断开连接
wpa_cli disconnect -iwlan0 -p/data/misc/wifi/sockets
重新连接
wpa_cli reconnect -iwlan0 -p/data/misc/wifi/sockets
#!/bin/sh
#ifconfig eth0 up
#udhcpc
export LD_LIBRARY_PATH=’/usr/local/lib:/usr/lib’
insmod /komod/mt7601u.ko
export
sleep 1
wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -O/data/misc/wifi/sockets &
sleep 2
count=1
while true
do
cmdRet=`wpa_cli status -iwlan0 -p/data/misc/wifi/sockets | grep wpa_state`
cmdRet=${cmdRet:10}
echo $cmdRet
#count=$(($count+1));
let count++
if [ $count -gt 10 ];then
break;
elif [ “$cmdRet” = “COMPLETED” ];then
echo “wifi connected!”;
break;
fi
sleep 1
done
mount /dev/mmcblk0p1 /mnt/sd/
if [ “$cmdRet” = “COMPLETED” ];then
udhcpc -i wlan0
cmdRet=`ifconfig wlan0 | grep “inet addr”`
echo $cmdRet
if [ -n “$cmdRet” ];then
mount -t nfs -o nolock 192.168.8.200:/media/server_disk/nfs /mnt/nfs
else
echo “failed to get ip”
fi
fi