I'm running into trouble with getting connected to my wifi after rebooting my computer. I'm using Ubuntu 18.04 and I have an ASUS FX705 laptop that minus a couple of small quirks has worked really well with Ubuntu.
The problem:
I powered my computer down last night for the first time in probably about a month and when I booted it up today I noticed that it showed my WiFi was unavailable and that there were no networks listed to choose from. I am able to connect via Ethernet, however, and the WiFi will immediately connect to my home network if I boot in an older kernel.
Looking at syslog, these seem to be the relevant lines:
Aug 18 12:09:53 kirito networkd-dispatcher[1098]: WARNING: systemd-networkd is not running, output will be incomplete.
Aug 18 12:09:53 kirito NetworkManager[1093]: <info> [1597777793.9805] wifi-nl80211: (wlp4s0): using nl80211 for WiFi device control
Aug 18 12:09:53 kirito NetworkManager[1093]: <info> [1597777793.9809] device (wlp4s0): driver supports Access Point (AP) mode
Aug 18 12:09:53 kirito kernel: [ 6.009749] r8169 0000:02:00.0 enp2s0: Link is Down
Aug 18 12:09:53 kirito NetworkManager[1093]: <info> [1597777793.9824] manager: (wlp4s0): new 802.11 WiFi device (/org/freedesktop/NetworkManager/Devices/3)
Aug 18 12:09:53 kirito NetworkManager[1093]: <info> [1597777793.9838] device (wlp4s0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
Aug 18 12:09:53 kirito kernel: [ 6.016284] rtw_pci 0000:04:00.0: failed to wait firmware completion
Aug 18 12:09:53 kirito NetworkManager[1093]: <warn> [1597777793.9853] platform-linux: do-change-link[3]: failure changing link: failure 22 (Invalid argument)
Aug 18 12:09:53 kirito systemd[1]: Started Dispatcher daemon for systemd-networkd.
Aug 18 12:09:54 kirito NetworkManager[1093]: <info> [1597777794.0118] bluez: use BlueZ version 5
Aug 18 12:09:54 kirito NetworkManager[1093]: <info> [1597777794.0142] modem-manager: ModemManager available
Aug 18 12:09:54 kirito NetworkManager[1093]: <info> [1597777794.0147] supplicant: wpa_supplicant running
Aug 18 12:09:54 kirito NetworkManager[1093]: <info> [1597777794.0148] device (wlp4s0): supplicant interface state: init -> starting
Aug 18 12:09:54 kirito kernel: [ 6.051472] rtw_pci 0000:04:00.0: failed to wait firmware completion
Aug 18 12:09:54 kirito kernel: [ 6.052617] rtw_pci 0000:04:00.0: failed to wait firmware completion
Aug 18 12:09:54 kirito wpa_supplicant[1092]: Could not set interface wlp4s0 flags (UP): Invalid argument
Aug 18 12:09:54 kirito wpa_supplicant[1092]: nl80211: Could not set interface 'wlp4s0' UP
Aug 18 12:09:54 kirito wpa_supplicant[1092]: nl80211: deinit ifname=wlp4s0 disabled_11b_rates=0
Aug 18 12:09:54 kirito wpa_supplicant[1092]: Could not set interface wlp4s0 flags (UP): Invalid argument
Aug 18 12:09:54 kirito wpa_supplicant[1092]: WEXT: Could not set interface 'wlp4s0' UP
Aug 18 12:09:54 kirito wpa_supplicant[1092]: wlp4s0: Failed to initialize driver interface
Aug 18 12:09:54 kirito NetworkManager[1093]: <info> [1597777794.0231] bluez5: NAP: added interface 80:91:33:F4:B8:02
Aug 18 12:09:54 kirito NetworkManager[1093]: <error> [1597777794.0233] sup-iface[0x5562c0207a40,wlp4s0]: error adding interface: wpa_supplicant couldn't grab this interface.
Aug 18 12:09:54 kirito NetworkManager[1093]: <info> [1597777794.0233] device (wlp4s0): supplicant interface state: starting -> down
Aug 18 12:10:04 kirito NetworkManager[1093]: <warn> [1597777804.1383] device (wlp4s0): re-acquiring supplicant interface (#1).
Aug 18 12:10:04 kirito wpa_supplicant[1092]: Could not set interface wlp4s0 flags (UP): Invalid argument
Aug 18 12:10:04 kirito kernel: [ 16.175965] rtw_pci 0000:04:00.0: failed to wait firmware completion
Aug 18 12:10:04 kirito wpa_supplicant[1092]: nl80211: Could not set interface 'wlp4s0' UP
Aug 18 12:10:04 kirito wpa_supplicant[1092]: nl80211: deinit ifname=wlp4s0 disabled_11b_rates=0
Aug 18 12:10:04 kirito wpa_supplicant[1092]: Could not set interface wlp4s0 flags (UP): Invalid argument
Aug 18 12:10:04 kirito wpa_supplicant[1092]: WEXT: Could not set interface 'wlp4s0' UP
Aug 18 12:10:04 kirito wpa_supplicant[1092]: wlp4s0: Failed to initialize driver interface
Aug 18 12:10:04 kirito NetworkManager[1093]: <error> [1597777804.1465] sup-iface[0x5562c0207d00,wlp4s0]: error adding interface: wpa_supplicant couldn't grab this interface.
Aug 18 12:10:04 kirito NetworkManager[1093]: <info> [1597777804.1466] device (wlp4s0): supplicant interface state: starting -> down
Aug 18 12:10:04 kirito kernel: [ 16.177029] rtw_pci 0000:04:00.0: failed to wait firmware completion
Aug 18 12:10:04 kirito kernel: [ 16.182528] failed to write reg 28b4 wait reg 28c6
What I Tried:
The first thing I did was just toggle the WiFi/airplane mode on and off both through Ubuntu and the keyboard shortcut on the laptop... probably more times than is healthy. It didn't do any good. After establishing that the WiFi worked in an older kernel (5.3.0-62 vs. 5.4.0-42), I tried to follow the advice of this article, but didn’t get anywhere. These are the relevant commands that I issued:
$ sudo lspci
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
04:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device c822
$ sudo lshw -C network
*-network DISABLED
description: Wireless interface
product: Realtek Semiconductor Co., Ltd.
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:04:00.0
logical name: wlp4s0
version: 00
serial: 80:91:33:f4:b8:03
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=rtw_pci driverversion=5.4.0-42-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11
resources: irq:72 ioport:c000(size=256) memory:f7700000-f770ffff
Side note, I reran this with the working kernel, but the only difference is that it's enabled and the driver version matches the kernel.
*-network
description: Wireless interface
product: Realtek Semiconductor Co., Ltd.
vendor: Realtek Semiconductor Co., Ltd.
physical id: 0
bus info: pci@0000:04:00.0
logical name: wlp4s0
version: 00
serial: 80:91:33:f4:b8:03
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=rtw_pci driverversion=5.3.0-62-generic firmware=N/A ip=10.0.0.147 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:70 ioport:c000(size=256) memory:f7700000-f770ffff
$ sudo lsmod | grep rtw
rtwpci 24576 0
rtw88 462848 1 rtwpci
mac80211 847872 2 rtwpci,rtw88
$ sudo modprobe rtwpci
$ sudo modprobe rtw88
$ sudo modprobe mac80211
I also tried just manually enabling the network interface using sudo ip link set wlp4s0 up
to see what would happen, but it gave an error about an invalid argument, as in the syslog.
I'm at a little bit of a loss on what to do next... If anyone has any suggestions, I would greatly appreciate it. In the meantime, I guess I will be tethered to my Ethernet.