Garuda (archlinux system) solution to WIFI not showing

Original link: https://blog.si-on.top/2023/take-back-my-wifi/

Fault

There is a problem with my computer: every time after installing Linux, when booting into Lnux, there is a chance that the WIFI icon disappears, and I can only rely on the wired network or the USB shared network connection of the mobile phone to access the network, which is very annoying.

It happened occasionally before, but this time the WIFI icon has not appeared automatically for nearly a month. I will try to fix it today.

Screenshot of the accident scene by Bingyi

troubleshooting

Check driver

Check driver

 1
 lspci -k

Output results

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
twenty one
twenty two
twenty three
twenty four
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
 00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
Subsystem: Dell Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
Kernel driver in use: skl_uncore
#Integrated motherboard/register model: 7th generation Intel Xeon E3 1200 v6 (revision 08)

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
DeviceName: Onboard IGD
Subsystem: Dell UHD Graphics 620
Kernel driver in use: i915
Kernel modules: i915
# VGA compatible controller/graphics card: (giant garbage built-in graphics card) Intel UHD 620 (revision 07)

00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 08)
Subsystem: Dell Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
Kernel modules: processor_thermal_device_pci_legacy
#Signal processing controller: Intel Xeon E3-1200 v5/E3-1500 v5/6th generation Core processor thermal subsystem (revision 08)

00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
Subsystem: Dell Sunrise Point-LP USB 3.0 xHCI Controller
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
# USB Controller: Intel Sunrise Point-LP USB 3.0 xHCI Controller (Rev. 21)


00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
Subsystem: Dell Sunrise Point-LP Thermal subsystem
Kernel driver in use: intel_pch_thermal
Kernel modules: intel_pch_thermal
#Signal Processing Controller: Intel Sunrise Point-LP Thermal Subsystem (Rev. 21)

00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
Subsystem: Dell Sunrise Point-LP Serial IO I2C Controller
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
# Signal processing controller: Intel Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)

00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
Subsystem: Dell Sunrise Point-LP CSME HECI
Kernel modules: mei_me
#COMMUNICATIONS CONTROLLER: Intel Corporation Sunrise Point-LP CSME HECI No. 1 (Rev. 21)


00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
Subsystem: Dell Sunrise Point-LP SATA Controller [AHCI mode]
Kernel driver in use:ahci
# SATA Controller: Intel Sunrise Point-LP SATA Controller [AHCI Mode] (rev 21)

00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #1 (rev f1)
Subsystem: Dell Sunrise Point-LP PCI Express Root Port
Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
Subsystem: Dell Sunrise Point-LP PCI Express Root Port
Kernel driver in use: pcieport
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 (rev f1)
Subsystem: Dell Sunrise Point-LP PCI Express Root Port
Kernel driver in use: pcieport
# PCI Bridge: Intel Sunrise Point-LP PCI Express Root Ports 1, 5, 6 (revision f1)


00:1f.0 ISA bridge: Intel Corporation Sunrise Point LPC/eSPI Controller (rev 21)
Subsystem: Dell Sunrise Point LPC Controller/eSPI Controller
# ISA Bridge (bus type): Intel Sunrise Point LPC/eSPI Controller (revision 21)

00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
Subsystem: Dell Sunrise Point-LP PMC
#MemoryController : Intel Corporation Sunrise Point-LP PMC (revision 21)

00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
Subsystem: Dell Sunrise Point-LP HD Audio
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel, snd_soc_skl, snd_soc_avs
#AudioDevice : Intel Corporation Sunrise Point-LP HD Audio (revision 21)


00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
Subsystem: Dell Sunrise Point-LP SMBus
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
#System Management Bus: Intel Corporation Sunrise Point-LP SMBus (revision 21)

01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445 / 530/535 / 620/625 Mobile] (rev c1)
Subsystem: Dell Radeon 530
Kernel driver in use: amdgpu
Kernel modules: amdgpu
#Display Controller: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445 / 530/535 / 620/625 Mobile] (rev c1)

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 07)
Subsystem: Dell RTL810xE PCI Express Fast Ethernet controller
Kernel driver in use: r8169
Kernel modules: r8169
#EthernetController : Realtek Semiconductor Co. RTL810xE PCI Express Fast Ethernet Controller (Revision 07)

03:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)
Subsystem: Dell QCA9377 802.11ac Wireless Network Adapter
Kernel driver in use: ath10k_pci
Kernel modules: ath10k_pci
#NetworkController : Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (revision 31)

It can be seen from the results that both the Ethernet driver (r8169) and the wireless network driver (ath10k_pci) are installed normally, so the driver is probably fine. Let’s take a look at the IP connection status [1]

Detailed output of network port information

 1
 ip -s -h -d link show

Show results

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
twenty one
twenty two
twenty three
twenty four
25
26
27
28
29
30
31
32
33
34
35
36
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 promiscuity 0 allmulti 0 minmtu 0 maxmtu 0 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_
max_segs 65535 tso_max_size 524280 tso_max_segs 65535 gro_max_size 65536 gso_ipv4_max_size 65536 gro_ipv4_max_size 65536
RX: bytes packets errors dropped missed mcast
123M 292k 0 0 0 0
TX: bytes packets errors dropped carrier collsns
123M 292k 0 0 0 0
#Local loop interface: localhost, status is normal

2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 3c:2c:30:a6:7e:1c brd ff:ff:ff:ff:ff:ff promiscuity 0 allmulti 0 minmtu 68 maxmtu 1500 addrgenmode none numtxqueues 1 numrxqueues 1 gso_max_size 64000 gso_
max_segs 64 tso_max_size 64000 tso_max_segs 64 gro_max_size 65536 gso_ipv4_max_size 64000 gro_ipv4_max_size 65536 parentbus pci parentdev 0000:02:00.0
RX: bytes packets errors dropped missed mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
#Ethernet (PCI interface location: bus=2, solt=0), is closed (as can be seen from state DOWN)

3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DORMANT group default qlen 1000
link/ether 0e:fe:d0:ec:e9:e4 brd ff:ff:ff:ff:ff:ff permaddr 80:2b:f9:b4:bd:db promiscuity 0 allmulti 0 minmtu 256 maxmtu 2304 addrgenmode none numtxqueues 1 numrxqueu
es 1 gso_max_size 65536 gso_max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536 gso_ipv4_max_size 65536 gro_ipv4_max_size 65536 parentbus pci parentde
v 0000:03:00.0
RX: bytes packets errors dropped missed mcast
0 0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
0 0 0 0 0 0
#The wireless network device numbered 0 is also turned off (this is probably the problem)

5: enp0s20f0u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 36:dd:9e:02:c4:48 brd ff:ff:ff:ff:ff:ff promiscuity 0 allmulti 0 minmtu 0 maxmtu 65535 addrgenmode none numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_
max_segs 65535 tso_max_size 65536 tso_max_segs 65535 gro_max_size 65536 gso_ipv4_max_size 65536 gro_ipv4_max_size 65536 parentbus usb parentdev 1-1:1.0
RX: bytes packets errors dropped missed mcast
1.57M 1.93k 0 0 0 0
TX: bytes packets errors dropped carrier collsns
461k 1.51k 0 0 0 0
#After comparison testing, this is the device name of the USB shared network

try to fix

Turn on the waln0 device

 1
 ip link set wlan0 up

Check again and use the ip link command

Check the output again

 1
2
3
4
5
6
7
8
9
 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 3c:2c:30:a6:7e:1c brd ff:ff:ff:ff:ff:ff
5: enp0s20f0u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 36:dd:9e:02:c4:48 brd ff:ff:ff:ff:ff:ff
6: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether 62:c2:78:ae:ef:2d brd ff:ff:ff:ff:ff:ff permaddr 80:2b:f9:b4:bd:db
# The wifi status is already on????

Connect to WIFI

Open iwctl [2] (this tool is more beautiful and easy to operate)

Start the iwd service and open iwctl

 1
 systemctl start iwd.service && iwctl

Show wireless network devices in iwctl

 1
2
3
4
5
6
7
 [iwd]# device list
Devices*
-------------------------------------------------- ----------------------------------
Name Address Powered Adapter Mode
-------------------------------------------------- ----------------------------------
wlan0 aa:dc:f2:a5:15:ce on phy0 station

Verify again that the Wlan0 device has been started and you should be able to connect to wifi now?

Scan the network

 1
2
3
4
5
6
7
8
9
10
 [iwd]# station wlan0 get-networks
Available networks
-------------------------------------------------- ----------------------------------
Network name Security Signal
-------------------------------------------------- ----------------------------------
Tenda_122CC0 psk ****
X-ray psk ****
ChinaNet-244d8687 open ****
ChinaNet-3n4p psk ****
WIFI psk ****

Connect to wifi

 1
2
3
 [iwd]# station wlan0 connect Tenda_122CC0
Type the network passphrase for Tenda_122CC0 psk.
Passphrase: **********

Check connection status

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 [iwd]# station wlan0 show
Station: wlan0
-------------------------------------------------- ----------------------------------
Settable Property Value
-------------------------------------------------- ----------------------------------
Scanning no
State connected
Connected network Tenda_122CC0
No IP addresses Is DHCP client configured?
ConnectedBss b0:df:c1:12:2c:c1
Frequency 2417
Security WPA2-Personal
RSSI -79 dBm
AverageRSSI -79 dBm
TxBitrate 1000 Kbit/s
RxBitrate 1000 Kbit/s

Finally, allocate dynamic IP [3]

Use dhcpcd to assign ip

 1
 dhcpcd wlan0 

Fix the problem that the network connection option is not displayed under the kde desktop

Install kde’s network management tool (network manager)

 1
 sudo pacman -S plasma-nm 

finished

Here are some commands used:

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 lspci -k // Check driver status
ip link
iw dev // The above three methods can list the network card interface name. If it is not listed, it means there is a problem with the driver.

dmesg | grep firmware
dmesg | grep iwlwifi // These two methods can be used to check and find problems when there is a problem with the driver.

iw dev wlan0 link // Used to check whether the network card is connected, where wlan0 is the name of the network card interface

ip link set dev wlan0 up // Used to enable the wireless network card interface

iw dev wlan0 scan // Used to scan surrounding wireless hotspots

iw dev wlan0 connect "your_essid" // This command can directly connect to unencrypted hotspots
iw dev wlan0 connect "your_essid" key 0:your_key // Used to connect to WEP encrypted hotspots

wpa_supplicant -D nl80211,wext -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
// This is the command format of wpa_supplicant to connect to WPA/WPA2

dhcpcd wlan0 //Assign dynamic IP to wireless network card

  1. https://blog.csdn.net/luotuo28/article/details/125000308 ↩

  2. https://wiki.archlinuxcn.org/wiki/Network Configuration/Wireless Network Configuration#iw ↩

  3. http://wangbinweb.github.io/htm/18-archlinux-install-wireless-network-card.htm ↩

This article is reproduced from: https://blog.si-on.top/2023/take-back-my-wifi/
This site is only for collection, and the copyright belongs to the original author.