[Arch]-7-解决Arch无线网络断线重连Bug
引言
在前面的安装和配置中,笔者使用了Deepin的桌面环境,Deepin配套的NetworkManager网络组件在Arch中存在一个小Bug,当链接到一个隐藏Wifi时候,无线Wifi在手动断开重连的过程中无法正常建立链接,表现为反复的断开重连,最后连接失败,本文笔者自建shell,使用wpa组件,手动连接Wifi,从而规避了这个Bug。
文章目录
0×1.解决Arch无线网络断线重连Bug
2020.05.23更新:在更新系统到Deepin20.04桌面之后,这个Bug似乎没有出现了,下面的操作对Deepin15桌面版本仍然适用。
Arch无线网络断线重连Bug描述:笔者使用2020.3.1镜像安装Deepin桌面,Deepin默认使用NetworkManager管理前后端有线与无线网络,在使用Deepin前端图形界面连接隐藏的Wifi过程中,密码正确的情况下,时不时出现无法连接,需要重启计算机,才能顺利连接,如果手动断开,再次连接偶尔能够连接上,大多数情况下是反复的连接断开,在图形界面关闭Deepin网络配置页面无线网络功能后,笔者只能利用下面的这个脚本手动切换不同的Wifi,目前来看,这个方法可以替代图形界面的Wifi连接和切换操作:
#1.假设我们的无线网卡是wlo1,有两个隐藏的wifi,一个叫"wifiSSID1",一个叫"wifiSSID2",密码都是"wifiPassword" ##首先创建一个脚本用于连接wifiSSID1 qing@qingsword.com:~$ vim linkSSID1.sh #!/bin/bash sudo ip link set wlo1 up sleep 1 #这两个kill是为了结束上一个wifi连接进程 sudo kill $(ps -ef | grep "sudo wpa" | grep -v grep | awk '{print $2}') sudo kill $(ps -ef | grep "dhcpcd" | grep -v grep | awk '{print $2}') echo "network={ ssid="wifiSSID1" psk="wifiPassword" scan_ssid=1 }">/home/qing/sh/wificonf/wifi.conf sudo wpa_supplicant -c /home/qing/sh/wificonf/wifi.conf -i wlo1 & sleep 10 sudo dhcpcd & ##创建另外一个脚本用于连接wifiSSID2 qing@qingsword.com:~$ vim linkSSID2.sh #!/bin/bash sudo ip link set wlo1 up sleep 1 #这两个kill是为了结束上一个wifi连接进程 sudo kill $(ps -ef | grep "sudo wpa" | grep -v grep | awk '{print $2}') sudo kill $(ps -ef | grep "dhcpcd" | grep -v grep | awk '{print $2}') echo "network={ ssid="wifiSSID2" psk="wifiPassword" scan_ssid=1 }">/home/qing/sh/wificonf/wifi.conf sudo wpa_supplicant -c /home/qing/sh/wificonf/wifi.conf -i wlo1 & sleep 10 sudo dhcpcd & #2.现在要连接到1,只需要 qing@qingsword.com:~$ bash linkSSID1.sh ##连接到2,只需要 qing@qingsword.com:~$ bash linkSSID2.sh #3.如果想要断开Wifi连接,只需要再创建一个脚本 qing@qingsword.com:~$ vim disconnectWIFI.sh #!/bin/bash sudo kill $(ps -ef | grep "sudo wpa" | grep -v grep | awk '{print $2}') sudo kill $(ps -ef | grep "dhcpcd" | grep -v grep | awk '{print $2}') ##需要断开Wifi连接只需要 qing@qingsword.com:~$ bash disconnectWIFI.sh
关于这个Bug,如果是非隐藏的SSID,并不会出现,但是遇到隐藏的SSID,只能使用scan_ssid=1参数写到配置文件中,这个参数会让系统主动的去扫描指定的隐藏SSID,然后通过脚本来切换不同的隐藏SSID这个方法,至于为什么图形界面下的前端管理器会出现这个问题,笔者没有去继续深究,暂且这样吧。