RK3566板上编译wpa_supplicant

起因

买了块ROC-RK3566-PC,是的你没有听错,就是下面这个样子
在这里插入图片描述
装了ubuntu 20.04.3版本

firefly@firefly:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal

如下方式连接WiFi

wpa_cli -i wlan0 add_network
wpa_cli -i wlan0 set_network 0 ssid ‘“ssid”’
wpa_cli -i wlan0 set_network 0 psk ‘“psk”’
wpa_cli -i wlan0 set_network 0 key_mgmt WPA-PSK
wpa_cli -i wlan0 enable_network 0
wpa_cli -i wlan0 set update_config 1
wpa_cli -i wlan0 save_config

非常好,它wpa_supplicant崩溃了

root@firefly:/home/firefly# /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
Segmentation fault

版本看着也还行,不是特别老的版本

firefly@firefly:~$ wpa_supplicant -v
wpa_supplicant v2.9
Copyright © 2003-2019, Jouni Malinen j@w1.fi and contributors

本着有问题先升级的原则开始后续

过程

0.编译libnl

libnl源码下载地址:http://www.linuxfromscratch.org/blfs/view/svn/basicnet/libnl.html

wget https://github.com/thom311/libnl/releases/download/libnl3_7_0/libnl-3.7.0.tar.gz
tar zxvf libnl-3.7.0.tar.gz 
cd libnl-3.7.0
./configure
make
sudo make install

默认安装成功如下

Libraries have been installed in:
/usr/local/lib/libnl/cli/qdisc

If you ever happen to want to link against installed libraries in a
given directory, LIBDIR, you must either use libtool, and specify the
full pathname of the library, or use the ‘-LLIBDIR’ flag during
linking and do at least one of the following:

  • add LIBDIR to the ‘LD_LIBRARY_PATH’ environment variable
    during execution
  • add LIBDIR to the ‘LD_RUN_PATH’ environment variable
    during linking
  • use the ‘-Wl,-rpath -Wl,LIBDIR’ linker flag
  • have your system administrator add LIBDIR to ‘/etc/ld.so.conf’

See any operating system documentation about shared libraries for more
information, such as the ld(1) and ld.so(8) manual pages.
---------------------------------------------------------------------- /usr/bin/mkdir -p ‘/usr/local/etc/libnl’ /usr/bin/install -c -m 644
etc/pktloc etc/classid ‘/usr/local/etc/libnl’ make[1]: Leaving
directory ‘/home/firefly/libnl-3.7.0’

1.编译编译expat

wget https://nchc.dl.sourceforge.net/project/expat/expat/2.5.0/expat-2.5.0.tar.gz
tar zxvf  expat-2.5.0.tar.gz 
cd  expat-2.5.0
./configure
make
sudo make install

安装成功如下

make[2]: Nothing to be done for ‘install-data-am’.
make[2]: Leaving directory ‘/home/firefly/expat-2.5.0/xmlwf’
make[1]: Leaving directory ‘/home/firefly/expat-2.5.0/xmlwf’
Making install in doc
make[1]: Entering directory ‘/home/firefly/expat-2.5.0/doc’
make[2]: Entering directory ‘/home/firefly/expat-2.5.0/doc’
make[2]: Nothing to be done for ‘install-exec-am’.
make[2]: Leaving directory ‘/home/firefly/expat-2.5.0/doc’
make[1]: Leaving directory ‘/home/firefly/expat-2.5.0/doc’
make[1]: Entering directory ‘/home/firefly/expat-2.5.0’
make[2]: Entering directory ‘/home/firefly/expat-2.5.0’
make[2]: Nothing to be done for ‘install-exec-am’.
/usr/bin/mkdir -p ‘/usr/local/lib/cmake/expat-2.5.0’
/usr/bin/install -c -m 644 cmake/autotools/expat.cmake ‘/usr/local/lib/cmake/expat-2.5.0’
/usr/bin/mkdir -p ‘/usr/local/lib/cmake/expat-2.5.0’
/usr/bin/install -c -m 644 cmake/autotools/expat-config-version.cmake cmake/autotools/expat-noconfig.cmake cmake/expat-config.cmake ‘/usr/local/lib/cmake/expat-2.5.0’
/usr/bin/mkdir -p ‘/usr/local/lib/pkgconfig’
/usr/bin/install -c -m 644 expat.pc ‘/usr/local/lib/pkgconfig’
make[2]: Leaving directory ‘/home/firefly/expat-2.5.0’
make[1]: Leaving directory ‘/home/firefly/expat-2.5.0’

2.编译dbus

wget https://dbus.freedesktop.org/releases/dbus/dbus-1.15.2.tar.xz
tar xvf dbus-1.15.2.tar.xz 
./configure
make
sudo make install

安装成功如下

make[3]: Entering directory ‘/home/firefly/dbus-1.15.2/test’
make[3]: Leaving directory ‘/home/firefly/dbus-1.15.2/test’
make[2]: Leaving directory ‘/home/firefly/dbus-1.15.2/test’
Making install in name-test
make[2]: Entering directory ‘/home/firefly/dbus-1.15.2/test/name-test’
make[3]: Entering directory ‘/home/firefly/dbus-1.15.2/test/name-test’
make[3]: Nothing to be done for ‘install-exec-am’.
make[3]: Nothing to be done for ‘install-data-am’.
make[3]: Leaving directory ‘/home/firefly/dbus-1.15.2/test/name-test’
make[2]: Leaving directory ‘/home/firefly/dbus-1.15.2/test/name-test’
make[1]: Leaving directory ‘/home/firefly/dbus-1.15.2/test’
Making install in doc
make[1]: Entering directory ‘/home/firefly/dbus-1.15.2/doc’
make[2]: Entering directory ‘/home/firefly/dbus-1.15.2/doc’
make[2]: Nothing to be done for ‘install-exec-am’.
/usr/bin/mkdir -p ‘/usr/local/share/doc/dbus’
/usr/bin/install -c -m 644 system-activation.txt ‘/usr/local/share/doc/dbus’
/usr/bin/mkdir -p ‘/usr/local/share/xml/dbus-1’
/usr/bin/install -c -m 644 busconfig.dtd introspect.dtd ‘/usr/local/share/xml/dbus-1’
/usr/bin/mkdir -p ‘/usr/local/share/doc/dbus’
/usr/bin/install -c -m 644 diagram.png diagram.svg ‘/usr/local/share/doc/dbus’
/usr/bin/mkdir -p ‘/usr/local/share/doc/dbus’
/usr/bin/mkdir -p ‘/usr/local/share/xml/dbus-1’
/usr/bin/install -c -m 644 catalog.xml ‘/usr/local/share/xml/dbus-1’
make[2]: Leaving directory ‘/home/firefly/dbus-1.15.2/doc’
make[1]: Leaving directory ‘/home/firefly/dbus-1.15.2/doc’
make[1]: Entering directory ‘/home/firefly/dbus-1.15.2’
make[2]: Entering directory ‘/home/firefly/dbus-1.15.2’
make[2]: Nothing to be done for ‘install-exec-am’.
/usr/bin/mkdir -p ‘/usr/local/lib/cmake/DBus1’
/usr/bin/install -c -m 644 cmake/DBus1Config.cmake cmake/DBus1ConfigVersion.cmake ‘/usr/local/lib/cmake/DBus1’
/usr/bin/mkdir -p ‘/usr/local/lib/pkgconfig’
/usr/bin/install -c -m 644 dbus-1.pc ‘/usr/local/lib/pkgconfig’
make[2]: Leaving directory ‘/home/firefly/dbus-1.15.2’
make[1]: Leaving directory ‘/home/firefly/dbus-1.15.2’

3.编译wpa_suplicant2.10

wget https://w1.fi/releases/wpa_supplicant-2.10.tar.gz
tar zxvf wpa_supplicant-2.10.tar.gz 
cd wpa_supplicant-2.10/wpa_supplicant/
cp defconfig .config
make
sudo make install

安装完成如下

CC …/src/drivers/driver_common.c
CC wpa_supplicant.c
CC events.c
CC bssid_ignore.c
CC wpas_glue.c
CC scan.c
CC main.c
CC …/src/drivers/driver_wired.c
CC …/src/drivers/driver_macsec_linux.c
CC …/src/drivers/driver_wired_common.c
CC …/src/drivers/driver_nl80211.c
CC …/src/drivers/driver_nl80211_capa.c
CC …/src/drivers/driver_nl80211_event.c
CC …/src/drivers/driver_nl80211_monitor.c
CC …/src/drivers/driver_nl80211_scan.c
CC …/src/drivers/netlink.c
CC …/src/drivers/rfkill.c
CC …/src/utils/radiotap.c
CC …/src/drivers/linux_ioctl.c
CC …/src/drivers/driver_wext.c
CC …/src/drivers/drivers.c
CC …/src/l2_packet/l2_packet_linux.c
LD wpa_supplicant
CC wpa_cli.c
CC …/src/common/wpa_ctrl.c
CC …/src/common/cli.c
CC …/src/utils/edit_simple.c
LD wpa_cli
CC wpa_passphrase.c
LD wpa_passphrase
sed systemd/wpa_supplicant.service.in
sed systemd/wpa_supplicant.service.arg.in
sed systemd/wpa_supplicant-nl80211.service.arg.in
sed systemd/wpa_supplicant-wired.service.arg.in
sed dbus/fi.w1.wpa_supplicant1.service.in

注意安装的位置在,最好直接覆盖原有的wpa_supplicant位置

在这里插入图片描述

结果

升级之后WiFi连接正常
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值