Update firmware for MT7921 in order to fix Framework 13 AMD 7040

Bug #2049220 reported by Ciaby
86
This bug affects 16 people
Affects Status Importance Assigned to Milestone
linux-firmware (Ubuntu)
Fix Released
High
You-Sheng Yang
Jammy
Fix Released
High
You-Sheng Yang
Mantic
Fix Released
High
You-Sheng Yang
Noble
Fix Released
High
You-Sheng Yang

Bug Description

[SRU Justification]

BugLink: https://bugs.launchpad.net/bugs/2049220

[Impact]

MT7921 - IPv6 no longer working (Not receiving Multicast).

[Fix]

Update WiFi/Bluetooth firmware to upstream commits:
* WiFI: commit 0a18a7292a66 ("linux-firmware: update firmware for MT7921 WiFi device")
* Bluetooth: commit 1366b827c213 ("linux-firmware: update firmware for mediatek bluetooth chip (MT7921)")

[Test Case]

1. Have Ubuntu 22.04 LTS installed on a laptop with MT7921 Wifi adapter and connect it to a Dual-stack network leveraging Router Advertisements for IPv6.

2. Run it with HWE Kernel image linux-image-6.2.0-39-generic and observe the following:
   - IPv6 stateless autoconfiguration works and a public/global address is assigned.
   - Inbound IPv6 Multicast packets are seen when using tcpdump/wireshark.

3. Update the HWE Kernel to linux-image-6.5.0-14-generic and observe the following:
   - IPv6 only configures link-local address (fe80::) and no public/global address.
   - No inbound IPv6 multicast packets are seen when using tcpdump/wireshark.

[Where problems could occur]

Opaque binary. No known dependency to kernel version.

[Other Info]

Nominate Jammy for linux-oem-6.5/jammy and linux-hwe-6.5/jammy, and Mantic. All the commits are in upstream repository, so Noble should have them after rebased.

========== original bug report ==========

The current firmware for MT7921 WiFi is giving me problems like dropping multicast packets (mDNS).
I manually updated the firmware files and that fixed the issue.
To be more specific, please include this commit:
https://gitlab.com/kernel-firmware/linux-firmware/-/commit/0a18a7292a66532633d9586521f0b954c68a9fbc
And possibly also this:
https://gitlab.com/kernel-firmware/linux-firmware/-/commit/1366b827c21351b37665303397e161dd4158316e
Thanks!

We also need:

1) The release of Ubuntu you are using, via 'lsb_release -rd' or System -> About Ubuntu
Ubuntu 22.04.3 LTS

2) The version of the package you are using, via 'apt-cache policy pkgname' or by checking in Software Center
ii linux-firmware 20220329.git681281e4-0ubuntu3.24 all Firmware for Linux kernel drivers

3) What you expected to happen
WiFi working

4) What happened instead
Multicast packets dropped, mDNS not working

You-Sheng Yang (vicamo)
Changed in linux-firmware (Ubuntu Jammy):
status: New → In Progress
Changed in linux-firmware (Ubuntu Mantic):
status: New → In Progress
Changed in linux-firmware (Ubuntu Noble):
status: New → In Progress
Changed in linux-firmware (Ubuntu Jammy):
importance: Undecided → High
Changed in linux-firmware (Ubuntu Mantic):
importance: Undecided → High
Changed in linux-firmware (Ubuntu Noble):
importance: Undecided → High
Changed in linux-firmware (Ubuntu Jammy):
assignee: nobody → You-Sheng Yang (vicamo)
Changed in linux-firmware (Ubuntu Mantic):
assignee: nobody → You-Sheng Yang (vicamo)
Changed in linux-firmware (Ubuntu Noble):
assignee: nobody → You-Sheng Yang (vicamo)
Juerg Haefliger (juergh)
tags: added: kern-8926
Revision history for this message
Rudi Daemen (fludizz) wrote :

As per https://bugs.launchpad.net/bugs/2049303 - another workaround for Ubuntu 22.04.3 LTS is switching to the 6.2 HWE Kernel.

For me, I noticed the issue after my system got updated from the 6.2 HWE kernel to the 6.5 HWE Kernel. Rebooting the system back to the previous 6.2 HWE Kernel resolved the problem.

Note that both kernel images leverage the same firmware version as that's provided via the linux-firmware package:
mt7921e 0000:05:00.0: WM Firmware Version: ____010000, Build Time: 20220209150915

So something specific with the 6.5 HWE Kernel module mt7921e in combination with this specific firmware version breaks multicast. Seen that updating the firmware image resolves the issue, it points to a bug in the firmware and not the kernel module.

Revision history for this message
Matt Hartley (mattworks) wrote :

For the Framework 13 (using MT7921 WiFi), we'd like to see this to be with linux-oem-6.1 (Ubuntu) and/or linux-oem-6.5 (Ubuntu) as this is our official path for 22.04.3 LTS.

Revision history for this message
Rudi Daemen (fludizz) wrote :

Loaded the firmware files from the commits listed in the Bug Description into my system and I can confirm it also fixes the issues on the 6.5 HWE Kernel (6.5.0-14-generic). This restores IPv6 connectivity for this WiFi device (depends on Multicast for things such as RA's/ND's).

fludizz@pauwel:~$ uname -a
Linux pauwel 6.5.0-14-generic #14~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Nov 20 18:15:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

fludizz@pauwel:~$ sudo dmesg | grep mt7921
[ 9.026969] mt7921e 0000:05:00.0: enabling device (0000 -> 0002)
[ 9.034524] mt7921e 0000:05:00.0: ASIC revision: 79610010
[ 9.120620] mt7921e 0000:05:00.0: HW/SW Version: 0x8a108a10, Build Time: 20231109190918a
[ 9.132797] mt7921e 0000:05:00.0: WM Firmware Version: ____010000, Build Time: 20231109190959
[ 9.964058] mt7921e 0000:05:00.0 wlp5s0: renamed from wlan0

fludizz@pauwel:~$ ip -6 addr show wlp5s0
3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    inet6 2a10:3781:3fbd:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global temporary dynamic
       valid_lft 86394sec preferred_lft 14394sec
    inet6 2a10:3781:3fbd:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86394sec preferred_lft 14394sec
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

fludizz@pauwel:~$ ip -6 route | grep ra
2a10:3781:3fbd::/64 dev wlp5s0 proto ra metric 600 pref medium
default via fe80::xxxx:xxxx:xxxx:xxxx dev wlp5s0 proto ra metric 600 pref medium

However, this firmware did introduce a new warning in my logs, which was not present with the previous firmware (regardless of kernel version):
[ 101.523786] warning: `ThreadPoolForeg' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211

So keep this in mind when using the updated firmware. The MT7921 is a WiFi6 device so I do not expect it to be affected by above warning.

Revision history for this message
cbachert (cbachert) wrote :

I have mt7921e with ASIC revision 79220010. For me in addition to mDNS / IPv6 no longer working I was also unable to see Wi-Fi 5 GHz networks in the U-NII-2A band.

A similar fix applies here, I upgraded my firmware to the files from the following commits:
https://gitlab.com/kernel-firmware/linux-firmware/-/commit/1180974eb33ac67903269b71f35a489a2b77e5e9
https://gitlab.com/kernel-firmware/linux-firmware/-/commit/6b91b2ef6f4173099c1434e5d7c552e51814e26e

IPv6 and Wi-Fi in the U-NII-2A band works again now.

Revision history for this message
Syfer Polski (syferpl) wrote :

Also having issues since Ubuntu 22.04 switched form kernel 6.2 to 6.5. Nothing obvious in the logs, and I'm also on an mt7921e driven wifi card, so this seems like a plausible cause
[ 7.431847] mt7921e 0000:03:00.0: enabling device (0000 -> 0002)
[ 7.443046] mt7921e 0000:03:00.0: ASIC revision: 79610010
[ 7.529484] mt7921e 0000:03:00.0: HW/SW Version: 0x8a108a10, Build Time: 20220209150832a
[ 7.791897] mt7921e 0000:03:00.0: WM Firmware Version: ____010000, Build Time: 20220209150915

https://askubuntu.com/questions/1499938/kubuntu-22-04-wifi-freeze-after-hwe-kernel-upgrade-to-6-5-was-fine-on-6-2

Revision history for this message
You-Sheng Yang (vicamo) wrote :

All the fixes are in upstream repository. Should have no work to do for Noble once it migrates to upstream HEAD.

Changed in linux-firmware (Ubuntu Noble):
status: In Progress → Triaged
Revision history for this message
You-Sheng Yang (vicamo) wrote :
You-Sheng Yang (vicamo)
description: updated
Revision history for this message
Mario Limonciello (superm1) wrote :
Changed in linux-firmware (Ubuntu Noble):
status: Triaged → Fix Released
Revision history for this message
Matt Hartley (mattworks) wrote :

Do we have any updates when we will see this released for Ubuntu 22.04? We are seeing an increase in inquires.

Revision history for this message
Morgan le Fay (morgan-le-fay) wrote :

Could someone who's manually upgraded the firmware, as described in comments #3 and #4, give instructions for doing the upgrade and confirming that the new firmware is running? I've been trying to use this workaround, but nothing I do seems to change which version of the firmware is running, as discussed here:

  https://askubuntu.com/q/1502905

Revision history for this message
Rudi Daemen (fludizz) wrote (last edit ):

For Morgan le Fay:

Open a terminal, and type the following commands:

cd /lib/firmware/mediatek
sudo mv WIFI_MT7961_patch_mcu_1_2_hdr.bin WIFI_MT7961_patch_mcu_1_2_hdr.bin.orig
sudo mv WIFI_RAM_CODE_MT7961_1.bin WIFI_RAM_CODE_MT7961_1.bin.orig
sudo https://gitlab.com/kernel-firmware/linux-firmware/-/raw/0a18a7292a66532633d9586521f0b954c68a9fbc/mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin
sudo wget https://gitlab.com/kernel-firmware/linux-firmware/-/raw/0a18a7292a66532633d9586521f0b954c68a9fbc/mediatek/WIFI_RAM_CODE_MT7961_1.bin
sudo update-initramfs -u -k all

Reboot the system.

To verify which firmware version is active:
sudo dmesg | grep mt7921

Look for the "Build Time" to validate, with above files, it should be:
[ 9.120620] mt7921e 0000:05:00.0: HW/SW Version: 0x8a108a10, Build Time: 20231109190918a
[ 9.132797] mt7921e 0000:05:00.0: WM Firmware Version: ____010000, Build Time: 20231109190959

Do keep in mind, if the linux-firmware package is updated before a fix is released, you will need to redo these steps until this bug is fixed in the repositories.

Revision history for this message
Timo Aaltonen (tjaalton) wrote : Please test proposed package

Hello Ciaby, or anyone else affected,

Accepted linux-firmware into mantic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/linux-firmware/20230919.git3672ccab-0ubuntu2.8 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-mantic to verification-done-mantic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-mantic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in linux-firmware (Ubuntu Mantic):
status: In Progress → Fix Committed
Changed in linux-firmware (Ubuntu Jammy):
status: In Progress → Fix Committed
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Hello Ciaby, or anyone else affected,

Accepted linux-firmware into jammy-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/linux-firmware/20220329.git681281e4-0ubuntu3.28 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-jammy to verification-done-jammy. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-jammy. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Revision history for this message
Rudi Daemen (fludizz) wrote :

I have manually downloaded and installed the updated package and can confirm the new package contains the correct firmware and the issue is resolved now. IPv6 Multicast is working and IPv6 address autoconfiguration is working as expected.

Some output:

fludizz@pauwel:~$ dpkg --list | grep linux-firmware
ii linux-firmware 20220329.git681281e4-0ubuntu3.28 all Firmware for Linux kernel drivers

fludizz@pauwel:~$ sudo dmesg | grep mt7921e
[ 8.912585] mt7921e 0000:05:00.0: enabling device (0000 -> 0002)
[ 8.918209] mt7921e 0000:05:00.0: ASIC revision: 79610010
[ 9.000053] mt7921e 0000:05:00.0: HW/SW Version: 0x8a108a10, Build Time: 20231109190918a
[ 9.012216] mt7921e 0000:05:00.0: WM Firmware Version: ____010000, Build Time: 20231109190959
[ 9.846373] mt7921e 0000:05:00.0 wlp5s0: renamed from wlan0

fludizz@pauwel:~$ ip -6 addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2a10:3781:3fbd:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global temporary dynamic
       valid_lft 86395sec preferred_lft 14395sec
    inet6 2a10:3781:3fbd:xxxx:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86395sec preferred_lft 14395sec
    inet6 fe80::xxxx:xxxx:xxxx:xxxx/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

fludizz@pauwel:~$ ip -6 route | grep ra
2a10:3781:3fbd::/64 dev wlp5s0 proto ra metric 600 pref medium
default via fe80::xxxx:xxxx:xxxx:xxxx dev wlp5s0 proto ra metric 600 pref medium

Revision history for this message
Morgan le Fay (morgan-le-fay) wrote :

Rudi Daemen, thanks for the procedure! I just tried it, and the new firmware still isn't running. That's not surprising, because your procedure seems functionally identical to the one I described on Ask Ubuntu, except that it updates all installed kernels instead of just the latest one (which is the one I'm running).

I'd love to know why this procedure isn't behaving as expected for me, but maybe it doesn't matter anymore, since the fix is available in jammy-proposed now. I'll try to install it from jammy-proposed and report back.

Revision history for this message
Max Power (max-power321) wrote :

I enabled jammy-proposed and installed the firmware update, but unfortunately the update still didn’t load as indicated by the build times.

I tried re-installing, but got this output linux-firmware is already the newest version (20220329.git681281e4-0ubuntu3.28). Selected version '20220329.git681281e4-0ubuntu3.28' (Ubuntu:22.04/jammy-proposed [all]) for 'linux-firmware'

I don’t really understand, why I still don’t have the updated firmware.

Does anyone here have an idea or can try installing the firmware update via jammy-proposed themselves?

Revision history for this message
Mario Limonciello (superm1) wrote :

Do you perhaps have the older version in /lib/firmware/updates?

Revision history for this message
Max Power (max-power321) wrote (last edit ):

That might be the case, from my previous attempts to manually update it.I removed the mediatek directory inside /lib/firmware/updates. That's where I had put the .bin files.

But after a reboot I still don't have the new firmware. Do I need to do something else?

Revision history for this message
Mario Limonciello (superm1) wrote :

Did you put any other files in /lib/firmware? Maybe the output of

$tree /lib/firmware

Would explain what is going on.

Revision history for this message
Morgan le Fay (morgan-le-fay) wrote (last edit ):

I'm getting the same results as Max Power. My `dpkg --list` output shows that I have version 20220329.git681281e4-0ubuntu3.28 of linux-firmware installed. After rebooting, the dmesg logs from mt7921e show the same build times as before---not the expected new build times. My wireless card seems to be behaving the same as before.

As far as I know, I restored /lib/firmware to its original state (before I ever touched its contents) before upgrading linux-firmware. The files in /lib/firmware/mediatek all show the same modification time: Feb 9 09:26 (presumably in my time zone, New York City). I've attached the output of `tree /lib/firmware`, as Mario Limonciello suggested.

Revision history for this message
Mario Limonciello (superm1) wrote (last edit ):

I examined the packages and I notice the MT7921 firmware (Which confusingly goes by MT7961) is updated but "not" the MT7922 firmware.

Based on the above comments and below finding it seems that the MT7921 hardware is fixed with the update but not the MT7922 (which also confusingly uses the mt7921e driver...).

I think it needs to be bumped again to pull in the MT7922 commits.

Upstream:
$ md5sum *MT79*
7cf075421ea7b6b9d0721b8744c2a576 BT_RAM_CODE_MT7922_1_1_hdr.bin
f8e386541ca02a6311d7c0d9441fbab7 BT_RAM_CODE_MT7961_1_2_hdr.bin
5b1812463de97fcb04f4eba19f37dafd WIFI_MT7922_patch_mcu_1_1_hdr.bin
0a4d833efe94a56c502de8a38405d8fe WIFI_MT7961_patch_mcu_1_2_hdr.bin
77aaec5c622d01736f7a0a5ac3d0558b WIFI_RAM_CODE_MT7922_1.bin
8d0a4f6dc2d01a8b442ae0b8d76d9122 WIFI_RAM_CODE_MT7961_1.bin

Jammy (as of 20220329.git681281e4-0ubuntu3.28)
$ md5sum *MT79*
98423461b3d66e93368a3228de2c1e4a BT_RAM_CODE_MT7922_1_1_hdr.bin
f8e386541ca02a6311d7c0d9441fbab7 BT_RAM_CODE_MT7961_1_2_hdr.bin
4180dc35aa66f62ab8a3e202b4712560 WIFI_MT7922_patch_mcu_1_1_hdr.bin
0a4d833efe94a56c502de8a38405d8fe WIFI_MT7961_patch_mcu_1_2_hdr.bin
8ff1bdc0f54f255bb2a1d6825781506b WIFI_RAM_CODE_MT7922_1.bin
8d0a4f6dc2d01a8b442ae0b8d76d9122 WIFI_RAM_CODE_MT7961_1.bin

Nobel (as of 20240202.git36777504-0ubuntu1)
$ md5sum *MT79*
7cf075421ea7b6b9d0721b8744c2a576 BT_RAM_CODE_MT7922_1_1_hdr.bin
f8e386541ca02a6311d7c0d9441fbab7 BT_RAM_CODE_MT7961_1_2_hdr.bin
5b1812463de97fcb04f4eba19f37dafd WIFI_MT7922_patch_mcu_1_1_hdr.bin
0a4d833efe94a56c502de8a38405d8fe WIFI_MT7961_patch_mcu_1_2_hdr.bin
77aaec5c622d01736f7a0a5ac3d0558b WIFI_RAM_CODE_MT7922_1.bin
8d0a4f6dc2d01a8b442ae0b8d76d9122 WIFI_RAM_CODE_MT7961_1.bin

Revision history for this message
Mario Limonciello (superm1) wrote :
tags: added: verification-failed-jammy
Revision history for this message
Syfer Polski (syferpl) wrote :

After enabling the proposed repository following the instructions you provided and running apt update, I did not see the updated package, so I've downloaded https://launchpad.net/ubuntu/+source/linux-firmware/20220329.git681281e4-0ubuntu3.28/+build/27759768/+files/linux-firmware_20220329.git681281e4-0ubuntu3.28_all.deb and installed it with QApt.

After rebooting, I can see
lizsquir@PiMutant:~/Downloads$ sudo dmesg | grep mt
[sudo] password for lizsquir:
[ 7.182856] mt7921e 0000:03:00.0: enabling device (0000 -> 0002)
[ 7.190207] mt7921e 0000:03:00.0: ASIC revision: 79610010
[ 7.278615] mt7921e 0000:03:00.0: HW/SW Version: 0x8a108a10, Build Time: 20231109190918a
[ 7.539254] mt7921e 0000:03:00.0: WM Firmware Version: ____010000, Build Time: 20231109190959
[ 8.367928] mt7921e 0000:03:00.0 wlp3s0: renamed from wlan0

For me, the bug manifested in WiFi freezing (https://askubuntu.com/questions/1499938/kubuntu-22-04-wifi-freeze-after-hwe-kernel-upgrade-to-6-5-was-fine-on-6-2/1502925#1502925) - I did not pay attention to IPv6. I've not had the issue reoccur in the 8 hours since installing the proposed package.

Revision history for this message
Max Power (max-power321) wrote :

I installed https://launchpad.net/ubuntu/+source/linux-firmware/20220329.git681281e4-0ubuntu3.28/+build/27759768/+files/linux-firmware_20220329.git681281e4-0ubuntu3.28_all.deb via dpkg and rebooted, but I still have the old firmware.

Do I need to install it via QApt? And if so, why is that?

Revision history for this message
Syfer Polski (syferpl) wrote (last edit ):

Your issue has a much more reliable test, my issue manifested intermittently (and no longer manifests since installing the updated firmware). QApt is just the GUI deb installer in Kubuntu, installing via dpkg should be exactly the same.

My previous firmware had a build timestamp from 2022, so the update worked:
lizsquir@PiMutant:~/Downloads$ journalctl -k -o short-precise -b -5 | grep mt
Feb 07 08:37:14.486871 PiMutant kernel: mt7921e 0000:03:00.0: enabling device (0000 -> 0002)
Feb 07 08:37:14.495073 PiMutant kernel: mt7921e 0000:03:00.0: ASIC revision: 79610010
Feb 07 08:37:14.582834 PiMutant kernel: mt7921e 0000:03:00.0: HW/SW Version: 0x8a108a10, Build Time: 20220209150832a
Feb 07 08:37:15.058144 PiMutant kernel: mt7921e 0000:03:00.0: WM Firmware Version: ____010000, Build Time: 20220209150915
Feb 07 08:37:15.670815 PiMutant kernel: mt7921e 0000:03:00.0 wlp3s0: renamed from wlan0

@fludizz thank you for a simple way of telling which one I have:
lizsquir@PiMutant:~/Downloads$ lspci | grep -i mt79
03:00.0 Network controller: MEDIATEK Corp. MT7921 802.11ax PCI Express Wireless Network Adapter

Revision history for this message
Rudi Daemen (fludizz) wrote :

To clarify, if your wifi card is an MT7921, it should be fixed. If it is an MT7922, it is not fixed.

To check which card you have:
lspci | grep -i mt79

Revision history for this message
Max Power (max-power321) wrote :

lspci | grep -i mt79 doesn`t return anything in my case :(

Revision history for this message
Syfer Polski (syferpl) wrote :

Hmm... Can you post the results of
lspci | grep Network
If that doesn't show anything, post the entire lspci output.

Revision history for this message
Max Power (max-power321) wrote :

The output of lspci | grep Network:
01:00.0 Network controller: MEDIATEK Corp. Device 0616

Revision history for this message
Harry Mayrhofer (hmayrhof) wrote (last edit ):

For the record, I was running into the same issue as Max with my network adapter.

harry@harry-Laptop:~$ lspci | grep Network
01:00.0 Network controller: MEDIATEK Corp. Device 0616

I don't have a snapshot from then, but updating my firmware from the proposed repository didn't change the build date on my network adapter firmware. Manually installing the newest MT7922 firmware files did seem to update the firmware that my network card was using, though, and my Wi-Fi connection seems to be working now.

harry@harry-Laptop:~$ sudo dmesg | grep mt
[sudo] password for harry:
[ 3.014470] mt7921e 0000:01:00.0: enabling device (0000 -> 0002)
[ 3.024128] mt7921e 0000:01:00.0: ASIC revision: 79220010
[ 3.108657] mt7921e 0000:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20231120183400a
[ 3.128192] mt7921e 0000:01:00.0: WM Firmware Version: ____000000, Build Time: 20231120183441
[ 4.256697] mt7921e 0000:01:00.0 wlp1s0: renamed from wlan0

Originally, my laptop would connect to, but not transfer data through, my Wi-Fi 5 router. Now my laptop gets a real network connection through my router without a hitch.

Revision history for this message
Morgan le Fay (morgan-le-fay) wrote (last edit ):

By following a variation of Harry Mayrhofer's procedure, I've managed to change my wireless firmware build times too! I'll watch my wireless connection to see if it's behaving better. Here's what I did.

For reproducibility, here are two ways that my system state differed from the Ubuntu 22.04 defaults before I started.

* I had upgraded linux-firmware to version 20220329.git681281e4-0ubuntu3.28 from the jammy-proposed repository
* I had upgraded the kernel to version 6.5.0-18-generic, as a side effect of upgrading my MESA graphics drivers from the kisak-mesa PPA

From that starting point, here's how I changed my wireless firmware.

1) I removed these files from /lib/firmware/mediatek:
  WIFI_MT7922_patch_mcu_1_1_hdr.bin
  WIFI_RAM_CODE_MT7922_1.bin
2) I replaced them with the same files from commit 0a18a7292a66532633d9586521f0b954c68a9fbc of linux-firmware. To be explicit, I got the new files from these URLS:
  https://gitlab.com/kernel-firmware/linux-firmware/-/raw/0a18a7292a66532633d9586521f0b954c68a9fbc/mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin
  https://gitlab.com/kernel-firmware/linux-firmware/-/raw/0a18a7292a66532633d9586521f0b954c68a9fbc/mediatek/WIFI_RAM_CODE_MT7922_1.bin
3) I regenerated the initial RAM disk associated with the latest version of my kernel (which is the version that was running)
  sudo update-initramfs -u
4) I rebooted

After the reboot, dmesg showed new wireless firmware build times:

  [ 3.125009] mt7921e 0000:01:00.0: enabling device (0000 -> 0002)
  [ 3.131598] mt7921e 0000:01:00.0: ASIC revision: 79220010
  [ 3.217634] mt7921e 0000:01:00.0: HW/SW Version: 0x8a108a10, Build Time: 20230627143702a
  [ 3.234290] mt7921e 0000:01:00.0: WM Firmware Version: ____000000, Build Time: 20230627143946
  [ 4.362764] mt7921e 0000:01:00.0 wlp1s0: renamed from wlan0

Note that my build times are different from Harry's. I think that's because I used the firmware files from the commit that Rudi Daemen suggested, while Harry used the newest version of the files.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Hello Ciaby, or anyone else affected,

Accepted linux-firmware into mantic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/linux-firmware/20230919.git3672ccab-0ubuntu2.9 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-mantic to verification-done-mantic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-mantic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Revision history for this message
Leszek (bigl-aff) wrote (last edit ):

I have issue with this fix - my card (Comfast CF-953AX with mt7921u) stopped working running on Ubuntu 22.04 with kernel 6.5.0-18-generic and linux-firmware_20220329.git681281e4-0ubuntu3.28.

Error message as follows:

[ 605.520461] usb 2-1: new SuperSpeed USB device number 14 using xhci_hcd
[ 605.543222] usb 2-1: New USB device found, idVendor=0e8d, idProduct=7961, bcdDevice= 1.00
[ 605.543250] usb 2-1: New USB device strings: Mfr=6, Product=7, SerialNumber=8
[ 605.543263] usb 2-1: Product: Wireless_Device
[ 605.543274] usb 2-1: Manufacturer: MediaTek Inc.
[ 605.543283] usb 2-1: SerialNumber: 000000000
[ 608.277255] Bluetooth: hci0: Device setup in 2659931 usecs
[ 608.277261] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 610.296549] Bluetooth: hci0: Opcode 0x c03 failed: -110
[ 612.312620] Bluetooth: hci0: Failed to read MSFT supported features (-110)
[ 614.328953] Bluetooth: hci0: AOSP get vendor capabilities (-110)
[ 625.261405] usb 2-1: device not accepting address 14, error -62
[ 636.266057] usb 2-1: device not accepting address 14, error -62
[ 680.304900] usb 2-1: device not accepting address 16, error -62
[ 680.313046] usb usb2-port1: attempt power cycle
[ 686.497347] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 691.869835] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 692.077751] usb 2-1: device not accepting address 17, error -62
[ 697.502168] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 702.878558] xhci_hcd 0000:00:14.0: Timeout while waiting for setup device command
[ 703.086369] usb 2-1: device not accepting address 18, error -62
[ 703.094470] usb usb2-port1: unable to enumerate USB device

Reverting to linux-firmware_20220329.git681281e4-0ubuntu3.26 fixes the issue with proper boot log:

[ 22.615258] usb 2-5: reset SuperSpeed USB device number 2 using xhci_hcd
[ 22.663627] usbcore: registered new interface driver mt7921u
[ 22.672236] mt7921u 2-5:1.3: HW/SW Version: 0x8a108a10, Build Time: 20220209150832a
[ 22.774957] Bluetooth: hci0: Device setup in 132243 usecs
[ 22.774962] Bluetooth: hci0: HCI Enhanced Setup Synchronous Connection command is advertised, but not supported.
[ 22.842705] Bluetooth: hci0: AOSP extensions version v1.00
[ 22.842711] Bluetooth: hci0: AOSP quality report is supported
[ 22.929812] mt7921u 2-5:1.3: WM Firmware Version: ____010000, Build Time: 20220209150915
[ 23.013631] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 23.013636] Bluetooth: BNEP filters: protocol multicast
[ 23.013641] Bluetooth: BNEP socket layer initialized
[ 23.017210] Bluetooth: MGMT ver 1.22

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

Hello Ciaby, or anyone else affected,

Accepted linux-firmware into jammy-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/linux-firmware/20220329.git681281e4-0ubuntu3.29 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-jammy to verification-done-jammy. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-jammy. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Revision history for this message
Mario Limonciello (superm1) wrote :

I tested with a Framework 16 with a 14c3:0616 WLAN. With 20220329.git681281e4-0ubuntu3.28 it's completely unusable with my AP unless I turn off power save with iwconfig (Unifi).

With to 20220329.git681281e4-0ubuntu3.29 it works as expected.

tags: added: verification-done-jammy
removed: verification-failed-jammy
Revision history for this message
Mario Limonciello (superm1) wrote :

#33, was your issue a one boot problem? Or it happens every time? Is it tied to specifically that kernel + firmware, or is it also with older kernel?

Revision history for this message
Leszek (bigl-aff) wrote (last edit ):

It's persistent problem and reboots doesn't help. I haven't tried other kernels, just latest HWE kernel for Ubuntu 22.04. I'll try linux-firmware_20220329.git681281e4-0ubuntu3.29 to see if it also has this issue.

UPDATE: I've tested linux-firmware_20220329.git681281e4-0ubuntu3.29 and everything is fine.

Revision history for this message
Matt Hartley (mattworks) wrote :

Appreciate the update, Leszek. Glad to hear linux-firmware_20220329.git681281e4-0ubuntu3.29 has this sorted for you.

Revision history for this message
Ciaby (ciaby) wrote :

This finally fixed it for me.

Revision history for this message
Patric Morgan (patmorgan235) wrote :

I was having the issue where I wasn't getting any GUA's and It looks like its fixed after installing linux-firmware 20220329.git681281e4-0ubuntu3.29
(on Ubuntu Jammy)

Timo Aaltonen (tjaalton)
tags: added: verification-needed-mantic
Anson Tsao (ansontsao)
tags: added: verification-done-mantic
removed: verification-needed-mantic
Revision history for this message
Karel Becerra (karelbecerra) wrote (last edit ):

I can confirm the fix after applying latest firmware!

ISSUE: I was getting intermittent internet dropping (for 5 to 10 seconds) between my MAC OS and my 22.04 Ubuntu server (no lost of connection from Ubuntu or Mac to internet)

HARDWARE: Motherboard: MSI MPG X670E CARBON WIFI (mt7921e wifi)

IPV6: I noticed missing ipv6 value after 'ifconfig' command (only local ipv6 - fe80)

ENVIRONMENT (after fix): Ubuntu 22.04 (jammy)

$ uname -a
Linux azyri 6.5.0-21-generic #21~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 9 13:32:52 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

HOW TO:
1- wget http://security.ubuntu.com/ubuntu/pool/main/l/linux-firmware/linux-firmware_20220329.git681281e4-0ubuntu3.29_all.deb
2- sudo dpkg -i linux-firmware_20220329.git681281e4-0ubuntu3.29_all.deb
3- sudo reboot now

After applying fix:
$ sudo dmesg | grep mt7921
[ 7.293748] mt7921e 0000:0d:00.0: enabling device (0000 -> 0002)
[ 7.298835] mt7921e 0000:0d:00.0: ASIC revision: 79220010
[ 7.380306] mt7921e 0000:0d:00.0: HW/SW Version: 0x8a108a10, Build Time: 20231120183400a
[ 7.395877] mt7921e 0000:0d:00.0: WM Firmware Version: ____000000, Build Time: 20231120183441
[ 8.497052] mt7921e 0000:0d:00.0 wlp13s0: renamed from wlan0

$ ifconfig
wlp13s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
        inet 192.168.86.21 netmask 255.255.255.0 broadcast 192.168.86.255
******* inet6 wdw:657f:3de:117:63f:d4ff:fe3f:dgd prefixlen 64 scopeid 0x0<global>
        inet6 fe80::5fd:d4ff:gd43:fead prefixlen 64 scopeid 0x20<link>
        ether sf:3d:3f:3f:fe:as txqueuelen 1000 (Ethernet)
        RX packets 13414 bytes 3510061 (3.5 MB)
        RX errors 0 dropped 5 overruns 0 frame 0
        TX packets 7267 bytes 4192805 (4.1 MB)
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

* this line was missing before

Revision history for this message
Timo Aaltonen (tjaalton) wrote : Update Released

The verification of the Stable Release Update for linux-firmware has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.9 KiB)

This bug was fixed in the package linux-firmware - 20220329.git681281e4-0ubuntu3.29

---------------
linux-firmware (20220329.git681281e4-0ubuntu3.29) jammy; urgency=medium

  * Update firmware for MT7921 in order to fix Framework 13 AMD 7040 (LP: #2049220)
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
    - linux-firmware: update firmware for MT7922 WiFi device
    - linux-firmware: update firmware for MT7922 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
    - linux-firmware: update firmware for MT7922 WiFi device
    - linux-firmware: update firmware for MT7922 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7922)
    - linux-firmware: update firmware for MT7922 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7922)

linux-firmware (20220329.git681281e4-0ubuntu3.28) jammy; urgency=medium

  * Missing firmware for AMD GPU GC 11.0.3 (LP: #2034103)
    - amdgpu: update VCN 4.0.0 firmware for amd.5.5 release
    - amdgpu: update VCN 4.0.0 firmware
  * DP connection swap to break eDP behavior on AMD 7735U (LP: #2049758)
    - SAUCE: Update DCN312 DMCUB firmware

linux-firmware (20220329.git681281e4-0ubuntu3.27) jammy; urgency=medium

  * AMD phoenix/phoenix2 platforms facing amdgpu(PHX) hangs during stress loading (LP: #2051636)
    - amdgpu: update PSP 13.0.4 firmware for amd.5.5 release
    - amdgpu: update PSP 13.0.11 firmware for amd.5.5 release
    - amdgpu: update PSP 13.0.4 firmware from 5.7 branch
    - amdgpu: update GC 11.0.1 firmware from 5.7 branch
    - amdgpu: update GC 11.0.4 firmware from 5.7 branch
    - amdgpu: update PSP 13.0.11 firmware from 5.7 branch
    - amdgpu: update GC 11.0.1 firmware
    - amdgpu: update PSP 13.0.4 firmware
    - amdgpu: update VCN 4.0.2 firmware
    - amdgpu: update GC 11.0.4 firmware
    - amdgpu: update PSP 13.0.11 firmware
  * Update firmware for MT7921 in order to fix Framework 13 AMD 7040 (LP: #2049220)
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
    - linux-firmware: update firmware for MT7921 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
    - linux-firmware: update firmware for MT7921 WiFi device
    - linux-firmware: update firmware for MT7921 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
    - linux-firmware: update firmware for MT7921 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
    - linux-firmware: update firmware for MT7921 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
    - linux-firmware: update firmware for MT7921 WiFi device
    - linux-firmware: update firmware for MT7921 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
    -...

Read more...

Changed in linux-firmware (Ubuntu Jammy):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux-firmware - 20230919.git3672ccab-0ubuntu2.9

---------------
linux-firmware (20230919.git3672ccab-0ubuntu2.9) mantic; urgency=medium

  * Update firmware for MT7921 in order to fix Framework 13 AMD 7040 (LP: #2049220)
    - linux-firmware: update firmware for MT7922 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7922)

linux-firmware (20230919.git3672ccab-0ubuntu2.8) mantic; urgency=medium

  * DP connection swap to break eDP behavior on AMD 7735U (LP: #2049758)
    - SAUCE: Update DCN312 DMCUB firmware

linux-firmware (20230919.git3672ccab-0ubuntu2.7) mantic; urgency=medium

  * Miscellaneous Ubuntu changes
    - [Packaging] scripts: Fix shellcheck warnings
    - [Workflow] Add initial gitea workflow file
    - SAUCE: [Workflow] Disable markdownlint pre-commit hook
    - SAUCE: [Workflow] check_whence.py: Update list of known files
    - [Packaging] scripts/generate-changelog: Fix array initialization
    - [Packaging] control: Add XSBC-Original-Maintainer field
    - [Packaging] scripts/install-firmware: Fix installation of license files
  * AMD phoenix/phoenix2 platforms facing amdgpu(PHX) hangs during stress loading (LP: #2051636)
    - amdgpu: update PSP 13.0.4 firmware from 5.7 branch
    - amdgpu: update GC 11.0.1 firmware from 5.7 branch
    - amdgpu: update GC 11.0.4 firmware from 5.7 branch
    - amdgpu: update PSP 13.0.11 firmware from 5.7 branch
    - amdgpu: update GC 11.0.1 firmware
    - amdgpu: update PSP 13.0.4 firmware
    - amdgpu: update VCN 4.0.2 firmware
    - amdgpu: update GC 11.0.4 firmware
    - amdgpu: update PSP 13.0.11 firmware
  * Update firmware for MT7921 in order to fix Framework 13 AMD 7040 (LP: #2049220)
    - linux-firmware: update firmware for MT7921 WiFi device
    - linux-firmware: update firmware for mediatek bluetooth chip (MT7921)
  * WCN6856 Wi-FI Unavailable and no function during suspend stress (LP: #2048977)
    - ath11k: WCN6855 hw2.0: update to WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.37

linux-firmware (20230919.git3672ccab-0ubuntu2.6) mantic; urgency=medium

  * occasional wifi firmware loading failures: wiwlwifi: BE200: Failed to start RT ucode: -110 (LP: #2048853)
    - iwlwifi: add new FWs from core83-55 release
    - iwlwifi: fix for the new FWs from core83-55 release
    - iwlwifi: update gl FW for core80-165 release
  * WCN6856 Wi-FI Unavailable and no function during suspend stress (LP: #2048977)
    - ath11k: WCN6855 hw2.0: update board-2.bin
    - ath11k: WCN6855 hw2.0: update to WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.36

 -- Juerg Haefliger <email address hidden> Wed, 21 Feb 2024 10:41:18 +0100

Changed in linux-firmware (Ubuntu Mantic):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.