When your MediaTek WiFi adapter disappears from the top right corner on a VivoBook running Linux, the issue is usually a driver conflict or a kernel module that failed to load automatically. You can restore connectivity by checking if the hardware is detected via lspci, identifying the correct driver, and ensuring the wireless interface is enabled in NetworkManager.
Identifying the Hardware and Kernel State
The first step in diagnosing a missing WiFi adapter is to verify whether the operating system can see the physical device at all. MediaTek chipsets are common in ASUS VivoBooks, but they often require specific firmware files that may not be present in older Linux distributions or minimal installations. If the kernel does not recognize the hardware, no software fix will work until the underlying detection issue is resolved.
Open a terminal and run the command lspci | grep -i network. This command lists all network-related devices connected to the PCI bus. Look for an entry that mentions "MediaTek," "MT7921," or similar identifiers. If you see the device listed here, it means the hardware is functional and the PCIe link is active. The problem lies in the software layer, specifically the driver loading process. If the device does not appear in this list, there may be a BIOS setting disabling the WiFi card, or the hardware itself has failed physically.
Another critical diagnostic step is to check the kernel ring buffer for errors related to WiFi initialization. Run dmesg | grep -i wifi or dmesg | grep -i mt. You might see messages indicating that a firmware file is missing or that the driver encountered a timeout. These logs provide the exact error codes needed to determine if you need to install additional packages or update your kernel.
Checking Driver Status and Module Loading
Once you confirm the hardware is visible, you must ensure the correct kernel module is loaded. Linux uses modular drivers, which means the code for your WiFi card is not built into the core kernel but loaded on demand. Use the command lsmod | grep mt to see if any MediaTek-related modules are currently active. Common module names include mt7921e for PCIe cards or mt76x2e for USB adapters, though these vary by chipset generation.
If the module is not listed, try loading it manually with sudo modprobe [module_name]. Replace [module_name] with the identifier you found in your search or documentation. If this command fails with a "Module not found" error, it indicates that the driver package is not installed on your system. In many modern distributions, these drivers are included in the mainline kernel, but proprietary firmware blobs might be separate.
You should also verify that the wireless interface is not blocked by a software switch. Run rfkill list. This tool shows all radio frequency kill switches on your system. If the WiFi adapter shows as "Soft blocked: yes" or "Hard blocked: yes," you need to unblock it. For soft blocks, use sudo rfkill unblock wifi. Hard blocks are typically controlled by physical switches or BIOS settings, which cannot be overridden from the command line.
Restoring Connectivity via NetworkManager
After confirming the driver is loaded and the radio is unblocked, you need to ensure that NetworkManager sees the interface. Run nmcli device status. Your WiFi adapter should appear with a state of "connected," "disconnected," or "unmanaged." If it says "unmanaged," NetworkManager is ignoring it due to configuration conflicts.
To fix an unmanaged state, check your /etc/NetworkManager/NetworkManager.conf file. Ensure that the unmanaged-devices section does not contain rules blocking your specific MAC address or interface name. If the interface is listed as "disconnected," click the network icon in your desktop environment's top right corner. If the menu is empty, restart the NetworkManager service using sudo systemctl restart NetworkManager.
In some cases, especially after a kernel update, the new kernel version may not have the necessary firmware patches yet. If you recently updated your system, consider rolling back to a previous kernel version from your boot loader menu. This is a temporary workaround while waiting for upstream fixes. For users seeking deeper hardware diagnostics, understanding how to read system voltages can sometimes reveal power management issues affecting peripheral stability, as discussed in How to Read Voltages Supplied to Your Desktop's PMBus SM Bus using Linux.
Resolving Firmware Missing Errors
If dmesg reports missing firmware, you likely need to install the non-free firmware packages for your distribution. On Debian-based systems, this is often done by enabling the "non-free" repository and installing firmware-misc-nonfree or linux-firmware. On Fedora, ensure the linux-firmware package is up to date. After installation, reboot the system to allow the kernel to load the newly available firmware blobs during boot.
Verifying the Fix
Once you have completed the steps above, test the connection by scanning for networks. Use nmcli device wifi list to see available SSIDs. If networks appear, connect to one using nmcli device wifi connect [SSID] password [PASSWORD]. If the connection succeeds and you can ping an external host, the issue is resolved. If problems persist, consider checking for conflicting Bluetooth drivers, as MediaTek chips often integrate WiFi and Bluetooth on the same card, and Bluetooth interference can sometimes disrupt WiFi performance.
Frequently Asked Questions
Why does my WiFi disappear after a kernel update?
New kernels may drop support for older proprietary drivers or change how firmware is loaded. This often breaks compatibility with existing setups. You should check the release notes for your specific kernel version or revert to a stable kernel version that you know works with your hardware.
Can I use a USB WiFi adapter if the internal one fails?
Yes, a USB WiFi adapter is a reliable alternative if the internal MediaTek card is permanently disabled or failing. Most modern USB adapters are plug-and-play on Linux, requiring only the installation of basic firmware. This allows you to maintain internet access while troubleshooting the internal hardware.
How do I know if my WiFi is hard blocked?
A hard block is indicated by rfkill showing "Hard blocked: yes." This usually means a physical switch on the laptop is off, or the BIOS has disabled the wireless card. You must check your laptop's physical keys or enter the BIOS setup to re-enable the WiFi controller.
What should I do if lspci shows no network devices?
If lspci returns nothing for network devices, the OS cannot detect the hardware. This suggests a BIOS misconfiguration or a hardware failure. Enter your BIOS/UEFI settings and look for options like "Onboard WiFi" or "Wireless LAN" to ensure they are enabled. If they are already enabled, the card may be physically disconnected or dead.
Does Bluetooth interfere with MediaTek WiFi on Linux?
Yes, because WiFi and Bluetooth often share the same radio chip and antenna, Bluetooth activity can cause significant WiFi latency or disconnections. If you experience intermittent drops, try disabling Bluetooth temporarily to see if WiFi stability improves. You may need to adjust coexistence settings in the driver parameters.