morrownr / USB-WiFi

USB WiFi Adapter Information for Linux
2.81k stars 180 forks source link

News: Firmware for the mt7925 (WiFi 7) Chipset Posted #359

Open morrownr opened 11 months ago

morrownr commented 11 months ago

Hello All,

The driver for the new mt7925 chipset was merged into kernel 6.7 and now the first release of the firmware for the mt7925 chipset is available. I have updated the firmware guide that is on the Main Menu:

https://github.com/morrownr/USB-WiFi/blob/main/home/How_to_Install_Firmware_for_Mediatek_based_USB_WiFi_adapters.md

Before you get in a hurry to grab the firmware and upgrade your kernel to 6.7, there is no hardware available to buy. None. Nothing. My best guess is that we will starting seeing cards and USB adapters based on the mt7925 at some point in 2024. Mediatek keeps getting support for their products in the kernel earlier and earlier. They are getting close to what Intel and AMD do...and they are the Gold Standard.

A walk down memory lane tells us that USB WiFi support in Linux 10-15 years ago was not what it is today. The trend has been up over the last 6 years and continues to get better.

Have a Happy New Year.

@morrownr

fakemanhk commented 11 months ago

Mediatek keeps getting support for their products in the kernel earlier and earlier. They are getting close to what Intel and AMD do...and they are the Gold Standard.

That's why I immediately pay for the first Banana Pi BPI-R4, and waiting for their WiFi 7 module to come out for a build.

Ten0 commented 10 months ago

Well... there's one in there: https://www.asus.com/motherboards-components/motherboards/workstation/pro-ws-trx50-sage-wifi/

Doesn't work because our kernel is too old ATM, and then there's also this: https://lore.kernel.org/all/dbb87db4cef3620c44fe678a81a062bef11c557f.camel@mediatek.com/T/ :') EDIT: indeed there's this but pre-applying the following kernel patch on kernel 6.7 makes everything work

fs30000 commented 4 months ago

Well... there's one in there: https://www.asus.com/motherboards-components/motherboards/workstation/pro-ws-trx50-sage-wifi/

Doesn't work because our kernel is too old ATM, and then there's also this: https://lore.kernel.org/all/dbb87db4cef3620c44fe678a81a062bef11c557f.camel@mediatek.com/T/ :') EDIT: indeed there's this but pre-applying the following kernel patch on kernel 6.7 makes everything work

How to apply only the mt7925 patches? I mean, any easy way to apply all the respective patches? I just want to update the driver and recompile the kernel.

Ten0 commented 4 months ago

How to apply only the mt7925 patches? I mean, any easy way to apply all the respective patches? I just want to update the driver and recompile the kernel.

Kernel 6.9 has Wifi working I think, patch fixes specifically bluetooth. I'm not sure if it's still necessary to have the bluetooth patch at this point (I'm not sure how far the patch has gone yet), but as far as I'm concerned I'm on NixOS so I select kernel and apply the patch simply by adding:

  # Enforce very recent kernel to get the wifi working:
  # (ATM this is mainline but not even stable)
  boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_9;
  # However that isn't enough to make bluetooth work because of this:
  # https://lore.kernel.org/all/dbb87db4cef3620c44fe678a81a062bef11c557f.camel@mediatek.com/
  # Rest of discussion: https://lore.kernel.org/all/170542082933.25552.3927828232982053152.git-patchwork-notify@kernel.org/
  # Patch here: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/commit/?id=eaab5c300eab
  boot.kernelPatches = [{
    name = "Bluetooth: btusb: Add new VID/PID 13d3/3602 for MT7925";
    patch = ./bluetooth-mt7925.patch;
  }];

to my configuration.nix. (where ./bluetooth-mt7925.patch is https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/patch/?id=eaab5c300eab901be0040aa03bf22b20cc6ce0a5)

fs30000 commented 4 months ago

So, that's similar to ansible. Does it recompile the kernel with that conf? That sounds nice.

Ten0 commented 4 months ago

So, that's similar to ansible. Does it recompile the kernel with that conf? That sounds nice.

Yes it does. In NixOS fundamentally you declare how to build your entire system in the nix language (it has reasonable default values for properties you don't specify), and for each package either you've got it common enough that it cache hits the official nixpkgs binary cache, or it compiles stuff. That makes overriding specific packages easy while also not spending an absurd amount of time compiling everything that you don't change. NixOS is great 🙂 It has a steep learning curve though.