Mediatek Wifi 7921 suddenly stopped working. (bluetooth still works)

I connected an external adapter to use it to connect to a network and use the internal adapter as a hotspot; and the inbuilt wifi adapter suddenly stopped working. The wifi settings page only shows the external adapter and when I remove it, it shows "No WiFi Adapter found". After some digging around, I see that the adapter is turned off by software. But, I don't know how to turn it back on.

It might help to note that the problem seemed to happen after I used this application https://github.com/lakinduakash/linux-wifi-hotspot to set up a hotspot through my internal adapter, with the external one connected to the internet. Also note that bluetooth is working. It's just wifi that doesn't seem to work.

I am using an Acer Aspire 7, dual booted with Windows 10. I've checked that Secure Boot is disabled ( have learnt my lesson enough times). I'm using Zorin 16 with the 5.13.0-30-generic kernel version.

  • ip link: wlp4s0 is the interface for the internal adapter I'm trying to get to work and wlx1027f5994f22 is the external adapter.
~$ ip link
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: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 08:8f:c3:16:95:ba brd ff:ff:ff:ff:ff:ff
3: wlp4s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 74:4c:a1:78:6c:8b brd ff:ff:ff:ff:ff:ff
5: wlx1027f5994f22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 10:27:f5:99:4f:22 brd ff:ff:ff:ff:ff:ff

  • rfkill output : note that the software fields for 1 and 3 used to be "yes". I switched them to no, but it didn't help.
~$ rfkill list all
0: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
1: acer-wireless: Wireless LAN
	Soft blocked: no
	Hard blocked: no
2: acer-bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no
3: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

  • ifconfig: running ifconfig wlp4s0 up adds wlp4s0 to the ifconfig output, but changes nothing else
wlp4s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 74:4c:a1:78:6c:8b  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  • lshw : running lshw shows nothing out of the ordinary to me
~$ sudo lshw -C network
  *-network                 
       description: Ethernet interface
       product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: enp3s0
       version: 15
       serial: 08:8f:c3:16:95:ba
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.13.0-30-generic firmware=rtl8168h-2_0.0.2 02/26/15 latency=0 link=no multicast=yes port=twisted pair
       resources: irq:46 ioport:2000(size=256) memory:d1504000-d1504fff memory:d1500000-d1503fff
  *-network
       description: Wireless interface
       product: MEDIATEK Corp.
       vendor: MEDIATEK Corp.
       physical id: 0
       bus info: pci@0000:04:00.0
       logical name: wlp4s0
       version: 00
       serial: 74:4c:a1:78:6c:8b
       width: 64 bits
       clock: 33MHz
       capabilities: pciexpress msi pm bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=mt7921e driverversion=5.13.0-30-generic firmware=____010000-20220110230951 latency=0 link=no multicast=yes wireless=IEEE 802.11
       resources: iomemory:fc0-fbf iomemory:fc0-fbf iomemory:fc0-fbf irq:78 memory:fcd2000000-fcd20fffff memory:fcd2100000-fcd2103fff memory:fcd2104000-fcd2104fff
  *-network
       description: Wireless interface
       physical id: 1
       bus info: usb@3:2
       logical name: wlx1027f5994f22
       serial: 10:27:f5:99:4f:22
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=r8188eu driverversion=5.13.0-30-generic ip=10.10.75.146 multicast=yes wireless=IEEE 802.11bgn
  • lspci : the right driver seems to be in use
04:00.0 Network controller: MEDIATEK Corp. Device 7961
   Subsystem: Lite-On Communications Inc Device 3802
   Flags: bus master, fast devsel, latency 0, IRQ 78
   Memory at fcd2000000 (64-bit, prefetchable) [size=1M]
   Memory at fcd2100000 (64-bit, prefetchable) [size=16K]
   Memory at fcd2104000 (64-bit, prefetchable) [size=4K]
   Capabilities: [80] Express Endpoint, MSI 00
   Capabilities: [e0] MSI: Enable+ Count=1/32 Maskable+ 64bit+
   Capabilities: [f8] Power Management version 3
   Capabilities: [100] Vendor Specific Information: ID=1556 Rev=1 Len=008 <?>
   Capabilities: [108] Latency Tolerance Reporting
   Capabilities: [110] L1 PM Substates
   Capabilities: [200] Advanced Error Reporting
   Kernel driver in use: mt7921e
   Kernel modules: mt7921e

Any help is appreciated. Thank you.

this is just another stupid GNOME thing
just click the on button at the top anyways on the WiFi page in settings and see if that does anything

The button's not there. Just the one for airplane mode.

What you say seems to make sense. I am able to scan on wlp4s0 on the command line. I'm able to scan on it using third party tools too. Any idea on how I can fix the GNOME issue? Maybe its a NetworkManager thing?

One thing that might help is that wlp4s0 is down by default. I am able to scan only after I run ifconfig wlsp4s0 up.

Have you checked your blacklist?

Is the external antenna still connected? If you remove it, it may automatically revert to the other card (internal) similar to video card or connecting headphones.