My Mediatek MT7920 dosent work

I have a new mini pc with a Mediatek MT7920 wifi/bt card installed that I cant get to work.

nmcli radio wifi shows “enabled”

lspci | grep -i network shows “03:00.0 Network controller: MEDIATEK Corp. Device 7920”

Using lspci these are my controllers:

02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller [10ec:8125] (rev 0c)
03:00.0 Network controller [0280]: MEDIATEK Corp. Device [14c3:7920]

The Ethernet shos as 1 gpbs in the UI but maybe thats just because of the router having that speed?

It shows up in the UI as a port under network section.

And I could find it nmcli device

nmtui just cant find it

What to do?

A lot of the newer MediaTek WiFi chipsets are still a bit hit-and-miss under Linux depending on the kernel version and firmware included in the OS. Since ZimaOS is Buildroot-based and fairly stripped down, it’s possible the MT7920 firmware or driver support simply isn’t included yet.

The fact that:

  • nmcli radio wifi = enabled
  • lspci detects the MT7920
  • nmcli device can see something

Is actually a good sign. It usually means PCI detection is working, but the wireless interface itself is not fully initializing.

I’d avoid changing anything destructive for now and first confirm whether the driver actually loaded correctly.

Can you post the output of these commands:

lspci -nnk | grep -A3 7920
ip link
dmesg | grep -i mt79
dmesg | grep -i firmware

The important part is whether the kernel attached the mt7921e driver (MediaTek often uses the same driver family for MT7920/7921 variants) and whether firmware loading failed.

Also worth mentioning:

  • ZimaOS 1.6.x has had a few networking oddities already
  • Some mini PCs ship very new WiFi chip revisions requiring newer Linux firmware packages
  • Ethernet showing 1Gbps is normal if your router/switch port is only negotiating at 1Gbps, even though the RTL8125 itself is 2.5Gb capable

So at the moment this still looks more like missing firmware/driver support than hardware failure.

lspci -nnk | grep -A3 7920
03:00.0 Network controller [0280]: MEDIATEK Corp. Device [14c3:7920]
        Subsystem: AzureWave Device [1a3b:6471]
        Kernel driver in use: mt7921e
        Kernel modules: mt7921e
root@ZimaOS:/root ➜ # 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 78:55:36:03:af:e9 brd ff:ff:ff:ff:ff:ff
    altname eno1
    altname enp2s0
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:54:00:e4:d5:fa brd ff:ff:ff:ff:ff:ff
4: ztjljn3e3a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether 82:d9:e6:e9:00:e9 brd ff:ff:ff:ff:ff:ff
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 02:42:4b:d2:08:3c brd ff:ff:ff:ff:ff:ff
root@ZimaOS:/root ➜ # dmesg | grep -i mt79
[    5.157094] mt7921e 0000:03:00.0: enabling device (0000 -> 0002)
[    5.157583] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_RAM_CODE_MT7961_1a.bin failed with error -2
[    5.160776] mt7921e 0000:03:00.0: ASIC revision: 79200010
[    5.235935] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.310709] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.385128] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.459121] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.534168] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.607846] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.681312] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.755267] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.846958] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.919959] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.991113] mt7921e 0000:03:00.0: hardware init failed
root@ZimaOS:/root ➜ # dmesg | grep -i firmware
[    0.168600] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    5.141545] [drm] Loading DMUB firmware via PSP: version=0x04000045
[    5.142032] [drm] Found VCN firmware Version ENC: 1.32 DEC: 4 VEP: 0 Revision: 0
[    5.157583] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_RAM_CODE_MT7961_1a.bin failed with error -2
[    5.235935] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.310709] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.385128] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.459121] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.534168] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.607846] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.681312] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.755267] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.846958] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2
[    5.919959] mt7921e 0000:03:00.0: Direct firmware load for mediatek/WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2

So some kind of firmware problem?

Yep, that explains it.

The good news is your MT7920 isn’t dead and the driver is actually loading correctly:

Kernel driver in use: mt7921e

The problem is that the firmware files the driver needs are missing:

WIFI_RAM_CODE_MT7961_1a.bin failed with error -2

WIFI_MT7961_patch_mcu_1a_2_hdr.bin failed with error -2

The -2 error simply means “file not found”. Because those firmware files aren’t available, the card can’t complete its hardware initialization and Wi-Fi never comes online.

So this looks less like a hardware issue and more like a missing firmware package in ZimaOS. The logs are pretty clear:

• Card detected successfully
• Driver loaded successfully
• Firmware files missing
• Hardware initialization failed
• No Wi-Fi interface created

I’d say this is something the IceWhale team should look at, as support for the MT7920 appears to be partially present but the required MediaTek firmware blobs are missing from the OS image.

@Zima-Giorgio

Can you guys have a look at this? Or know if there is some work around?