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试试。

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Wpa_supplicant是一个用于Linux和其他类Unix操作系统的无线网络配置工具。它实现了IEEE 802.1X认证协议和WPA/WPA2-Enterprise认证协议,可以用于连接到需要身份验证的无线网络。除了认证协议外,wpa_supplicant还支持多种加密协议,例如WEP、TKIP和AES。 ### 回答2: wpa_supplicant是一种广泛使用的无线网络客户端软件,它用于连接和管理无线网络的安全认证。它支持多种无线安全协议,包括WPA(Wi-Fi Protected Access)和WPA2(Wi-Fi Protected Access 2)。 wpa_supplicant的主要功能包括扫描附近的无线网络、与无线接入点进行身份验证和建立连接,以及在已建立连接的情况下维持并管理连接。它能够与不同的驱动程序和硬件接口进行交互,可在多种操作系统上运行。 为了连接到一个无线网络wpa_supplicant与无线接入点进行握手并协商加密方法。它使用的认证方式可以是预共享密钥(PSK)模式或企业级认证模式,后者需要输入用户名和密码。一旦认证成功,wpa_supplicant会为用户提供一个IP地址,以及其他必要的网络配置信息。 wpa_supplicant还支持可选择的安全特性,如动态密钥更新(Dkey),可以定期更新加密密钥来增加安全性。此外,wpa_supplicant还支持网络选择和配置文件管理,用户可以通过配置文件设置连接优先级、选择加密方法和其他相关参数。 总之,wpa_supplicant是一个功能强大的无线网络客户端软件,为用户提供了可靠的无线网络连接和安全认证功能。无论是在家庭、办公室还是公共场所,它都是连接到安全无线网络的重要工具。 ### 回答3: wpa_supplicant是一个用于无线网络认证的开源软件。它的主要功能是连接到无线网络并进行网络认证。 wpa_supplicant支持多种无线网络认证协议,包括WPA(Wi-Fi Protected Access)、WPA2、EAP(Extensible Authentication Protocol)以及TTLS(Tunneled Transport Layer Security)等。它可以在Linux、Windows、Mac OS X等多个操作系统上运行。 使用wpa_supplicant连接无线网络非常简单。首先,你需要在配置文件中输入网络的相关信息,包括网络的SSID、认证类型、密码等。然后,运行wpa_supplicant命令,它会根据配置文件中的信息自动连接到指定的无线网络。 除了连接到无线网络外,wpa_supplicant还支持一些高级功能。例如,它可以支持多个无线接口的并发连接、自动切换到信号更强的无线网络以及后台运行等。 另外,wpa_supplicant还具有一些安全功能。它支持对无线网络进行加密,确保数据在传输过程中的安全性。同时,它还能够进行身份认证,防止未经授权的用户连接到无线网络。 总的来说,wpa_supplicant是一个功能强大且灵活的软件,可以帮助用户连接到各种类型的无线网络,并有效地保护网络的安全性和隐私。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值