wpa_supplicant移植到BusyBox

手动编译wpa_supplicant安装挺麻烦的,本文主要是我大量借鉴和实践总结出来的流程,一步一按照做不会有太大问题。

移植平台:IMX6UL(迅为开发板)
根文件系统:BusyBox-1.36.1
所有操作都建议不要在root账户下运行,并且make install的安装路径按照我的来,编译器随意。
中途编译可能会遇到缺少依赖库,每个人的情况都不一样,可以自己搜一下,解决后在按照流程继续走。

新建wpa_supplicant目录,此后所有操作都在该路径下

mkdir ~/wpa_supplicant
cd ~/wpa_supplicant

1.libnl编译

libnl官网地址:http://www.infradead.org/~tgr/libnl/files/
我使用的版本是:libnl-3.2.23.tar.gz
下载后将压缩包放到~/wpa_supplicant,然后执行下面的命令

tar -xvf libnl-3.2.23.tar.gz
cd libnl-3.2.23/
注意下面这条指令有个"UserName"改成自己Ubuntu的账户名即可
./configure --host=arm-linux-gnueabihf --prefix=/home/UserName/wpa_supplicant/install/libnl/

Makefile生成后编译安装

make
make install

没有错误的话libnl就编译完成了,可以看到多了一个目录~/wpa_supplicant/install/libnl

2.openssl编译

openssl官网地址:http://distfiles.macports.org/openssl/
我使用的版本是:openssl-1.1.1c.tar.gz
下载后将压缩包放到~/wpa_supplicant,然后执行下面的命令

tar -xvf openssl-1.1.1c.tar.gz
cd openssl-1.1.1c/
注意下面这条指令--prefix=/home/UserName/wpa_supplicant/install/open-ssl/...其中的"UserName"要改成自己Ubuntu的账户名
./Configure linux-generic32 no-asm shared no-async --prefix=/home/UserName/wpa_supplicant/install/open-ssl/ CROSS_COMPILE=arm-linux-gnueabihf- CC=gcc -fPIC

Makefile生成后编译安装

make
make install

没有错误的话openssl就编译完成了,可以看到多了一个目录~/wpa_supplicant/install/open-ssl

3.wpa_supplicant编译

wpa_supplicant官网地址:https://w1.fi/releases/
我使用的版本是:wpa_supplicant-2.9.tar.gz
下载后将压缩包放到~/wpa_supplicant,然后执行下面的命令

tar -xvf wpa_supplicant-2.9.tar.gz
cd wpa_supplicant-2.9/wpa_supplicant/

拷贝默认配置文件并修改

cp defconfig .config
vi .config

先注释以下内容

#CONFIG_CTRL_IFACE_DBUS_NEW=y
#CONFIG_CTRL_IFACE_DBUS_INTRO=y

在最后一行追加内容,其中的"UserName"要改成自己Ubuntu的账户名

#交叉编译器
CC=arm-linux-gnueabihf-gcc
#openssl 库和头文件路径
CFLAGS += -I/home/UserName/wpa_supplicant/install/open-ssl/include
LIBS += -L/home/UserName/wpa_supplicant/install/open-ssl/lib
#libnl 库和头文件路径
CFLAGS += -I/home/UserName/wpa_supplicant/install/libnl/include/libnl3
LIBS += -L/home/UserName/wpa_supplicant/install/libnl/lib

设置环境变量,其中的"UserName"要改成自己Ubuntu的账户名

export PKG_CONFIG_PATH=/home/UserName/wpa_supplicant/install/libnl/lib/pkgconfig:$PKG_CONFIG_PATH 

编译

make

编译成功后,在当前目录下会生成wpa_supplicant和wpa_cli两个工具,将这两个文件拷贝到instal的安装目录下

mkdir -p ~/wpa_supplicant/install/wpa_supplicant/usr/bin
mv wpa_supplicant wpa_cli ~/wpa_supplicant/install/wpa_supplicant/usr/bin/

打包所有用到的库,并放到开发板根目录下

cd ~/wpa_supplicant/install/wpa_supplicant/
tar -cvf wpa_supplicant.tar.bz2 *
cd ~/wpa_supplicant/install/libnl/
tar -cvf libnl.tar.bz2 *
cd ~/wpa_supplicant/install/open-ssl/
tar -cvf open-ssl.tar.bz2 *
cd ~/wpa_supplicant/install/
mv libnl/libnl.tar.bz2 open-ssl/open-ssl.tar.bz2 wpa_supplicant/wpa_supplicant.tar.bz2 ./

解压打包好的库(开发板操作)

tar -xvf libnl.tar.bz2
tar -xvf wpa_supplicant.tar.bz2
tar -xvf open-ssl.tar.bz2

4.配置wpa_supplicant自动连接WiFi

创建/etc/wpa_supplicant.conf文件

vi /etc/wpa_supplicant.conf

写入如下内容:
ssid:无线网络名称
psk:无线网络密码
其他按照自己的实用情况配置(不用也行)

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
        ssid="TP-LINK_2.4G_7F3E"
        psk="123456789"
        scan_ssid=1
        proto=WPA RSN
        key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
        pairwise=TKIP CCMP
        group=CCMP TKIP WEP104 WEP40
}

新建/var/run/wpa_supplicant目录

mkdir /var/run/wpa_supplicant

创建自动连接脚本文件:/etc/init.d/link_wifi.sh

vi /etc/init.d/link_wifi.sh

根据自己的开发板写入如下内容:

#关闭有线连接
/sbin/ifconfig eth0 down
#打开无线连接
/sbin/ifconfig wlan0 up
#启动wifi配置,使文件生效
wpa_supplicant -B -Dwext -iwlan0 -c/etc/wpa_supplicant.conf
#启动有点慢,等一下启动完毕
sleep 3s
#启动dhcp获取ip
/sbin/udhcpc -b -i wlan0
#static ip
#/sbin/ifconfig wlan0 192.168.5.177 netmask 255.255.255.0
#/sbin/route add default gw 192.168.5.1

修改运行权限

chmod 777 /etc/init.d/link_wifi.sh

添加到开机脚本运行

vi /etc/init.d/rcS

/etc/init.d/link_wifi.sh &

重启开发板ifconfig查看是否正常。
如果无法获取到IP地址可以尝试用静态IP试试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值