What's new

802.11be the cheap way.... <$40

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Tech Junky

Part of the Furniture
https://www.aliexpress.us/item/3256805957376726.html - picked them up for $36/ea
1700513810945.png


Got the cards and tackled the laptop install first since it's easier to mess with while not interrupting the server / router to install the M2.

The cards show up in Windows as wcn7851 which isn't quite the same as what is named for the M2 as QCNCM865 posted all over the net for the QCA BE adapters. When looking at Google it seems as though the drivers are picking up the BGA type chip w/o the PCB? It's weird... Anyway, also if you don't have a wired connection you won't have wifi with any generic Windows drivers as this isn't picked up yet.


Drivers for download. I use a program though that picked them up when connected to Ethernet and running a scan.

As you can see below BE is indeed on this adapter as advertised. Windows is showing connectivity to the AP I have at 2.4gbps.

1700513787171.png


1700513795869.png


Now, the next step is to finagle this M2 into my server setup which I already dread a bit because of the stuff I need to pull out to get to the M2 socket to put this into. But, it is what it is and just need to do it to get things setup and test for 5gbps wifi ability between the two using hostapd.

File copy as is right now hitting 125MB/s which is consistent with the prior AX411 card though the QCA seems to sustain the speeds better so far. Just initial function testing right now to make sure things are working. Need some time to do in depth testing / stability.
 
Of course this changed a bit from back when I was using the AC1200 and how the firmware is loaded in the kernel. Played around with some ways to get the firmware to load but, eventually stumbled upon https://gist.github.com/mtint/fada761a5b8e96b2fc1a131d8773291e

I had already switched kernel versions and assembled similar to the post but excluded everything except ath12k. Since the kvalo repo has the files I want to use listed under ath11k it's a bit counter intuitive and/or having to compile the kernel using the link above to get the adapter recognized is just a n00b security issue unless you're determined to get these things working. I suspect this will cause issues with other people adding them to their system w/o jumping through a couple of hoops to get the card working. Sources said the drivers and everything were added at 6.3 and there was an ath12k folder buried under the modules but, the old /lib/firmware structure doesn't really exist on a new install anymore with kernel modules built in.

Anyway....

Code:
[    5.856610] ath12k_pci 0000:5c:00.0: BAR 0: assigned [mem 0xa1a00000-0xa1bfffff 64bit]
[    5.856632] ath12k_pci 0000:5c:00.0: enabling device (0000 -> 0002)
[    5.856900] ath12k_pci 0000:5c:00.0: Hardware name: wcn7850 hw2.0

5c:00.0 Network controller: Qualcomm Technologies, Inc Device 1107 (rev 01)

Now to figure out how to make the IF appear to configure things and get it working as a client & AP for testing. Not sure why it's now showing up in iwconfig / ifconfig as it should if the FW is loading now. Then again it's probably something silly that needs to be enabled in the UEFI as adding the card didn't mess with my port configuration in linux as it probably should have by adding an additional device to the mix. Even turning on TB ports changed the IF index / naming.
 
The cards show up in Windows as wcn7851 which isn't quite the same as what is named for the M2 as QCNCM865 posted all over the net for the QCA BE adapters

The QC module is the board itself, it has the 7851 as the actual chipset, and it's ath12k - at present, drivers might be a challenge to find unless someone is violating their NDA.

The module is there as a reference design to get thru FCC and EU-RED, along with other regulatory bodies...
 

Doesn't look good....

QCN9274 supports both AP and station; WCN7850 supports only station mode. Monitor mode is not (yet) supported. Only PCI bus devices are supported.
Seems as though there's a gotcha that was a bit unknown before purchase due to not disclosing the chipset. Then again Linux descriptions of devices in outputs sometimes aren't quite right either. I'm not 100% convinced this an issue as the Windows side is working but, still digging for more info on the Linux side due to the ath12k sort of working but not working as a client / ap at this point.

Waiting on a clone of source code to DL for more to play with. At least the card is enabled by firmware at a basic level which means more detective work to get it functioning in at least client mode if the above is true and not allowing AP mode. I doubt this is actually the case until exhausting all options to prove it doesn't. The alternative 9274 cards though are pricy north of $500 and only single bands from the looks of it.


1700619196685.png

1700619216329.png
 
@sfx2000

The modules / firmware is posted it's a matter of moving it to the proper locations for the OS to activate it

I'm just moving step by step through getting the module to at least be a client before jumping into making it an AP. Once I get it working in client mode then I'll dig into forcing AP mode since that's a different can of worms to deal with.

Tomorrow I might just boot into a live image without all of my custom stuff running and see if it works as a client. It seems like it wants to do something at this point but, I might have something disabled preventing some configuration from happening and listing it as an available adapter to the OS to be configured.
 
Ok, got the adapter working now and showing up as configurable.

Code:
 sudo dmesg | grep ath12
[    6.034284] ath12k_pci 0000:5c:00.0: BAR 0: assigned [mem 0xa1a00000-0xa1bfffff 64bit]
[    6.034307] ath12k_pci 0000:5c:00.0: enabling device (0000 -> 0002)
[    6.035346] ath12k_pci 0000:5c:00.0: Hardware name: wcn7850 hw2.0
[    6.584564] ath12k_pci 0000:5c:00.0: chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200
[    6.584572] ath12k_pci 0000:5c:00.0: fw_version 0x1005bc12 fw_build_timestamp 2022-10-11 12:13 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
[    6.820561] ath12k_pci 0000:5c:00.0 wlp92s0: renamed from wlan0

I cloned the kvalo git and then copied over the bin files to the new directory.

Probably don't need to clone the whole thing though and just DL the bin files and pop them into the hw2.0 directory. I also grabbed the linux-firmware latest package and it helps some other things show up but doesn't have the ath12k directory nor the adapter listed but, before kvalo changed things for the modules it would seem they were originally deployed under ath11k.

Code:
ls -l /lib/firmware/ath12k/WCN7850/hw2.0/
total 4536
-rw-r--r-- 1 root root 5812288 Nov 22 09:51 amss.bin
-rw-r--r-- 1 root root   88896 Nov 22 09:51 board.bin
-rw-r--r-- 1 root root  299660 Nov 22 09:51 m3.bin
-rw-r--r-- 1 root root   24310 Nov 22 09:51 regdb.bin

Before I was getting an amss.bin error and failing the adapter.
 
Ok... looks like this is ready to rock out in AP mode and showing 320mhz as an option. I would post the txt output but, it's a bit long so attaching instead.

Code:
            EHT MCS/NSS: (0x22222222222222222200000000):
            EHT bw <= 80 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
            EHT bw <= 80 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
            EHT bw <= 80 MHz, max NSS for MCS 12-13: Rx=2, Tx=2
            EHT bw=160 MHz, max NSS for MCS 8-9: Rx=2, Tx=2
            EHT bw=160 MHz, max NSS for MCS 10-11: Rx=2, Tx=2
            EHT bw=160 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
            EHT bw=320 MHz, max NSS for MCS 8-9: Rx=0, Tx=0
            EHT bw=320 MHz, max NSS for MCS 10-11: Rx=0, Tx=0
            EHT bw=320 MHz, max NSS for MCS 12-13: Rx=0, Tx=0
        HE Iftypes: AP
 

Attachments

  • iwlist.txt
    31.5 KB · Views: 36
Finally taking some time to play around with this a bit more since it's been enabled.

hostapd / needs to be compiled vs just installed to enable BE .... bit of a nightmare to deal with at this point of the game

NMCLI / NMTUI - got it into AP mode a bit easier but, needs some tweaking.
- first attempt brought it up in WIFI4 (N?)
- currently in WIFI5 (AC) / speed is meh at the moment
- speed is likely due to it broadcasting 20mhz ATM / needs to be tweaked LR is hovering around ~200mbps
- need to enable AX/E / BE somehow through NMCLI
- seems to be a quirk as well causing it to disco for some reason

Code:
nmcli con show --active
NAME          UUID                                  TYPE       DEVICE   
AMD           9786185d-7a3b-4d29-8955-4e2acf918e32  wifi       wlp92s0

 nmcli device wifi
IN-USE  BSSID              SSID  MODE   CHAN  RATE      SIGNAL  BARS  SECURITY 
*       BC:F4:D4:A1:FC:15  AMD   Infra  36    0 Mbit/s  0             WPA1 WPA2
 
From upstream...

Went there and grabbed the most recent option and have the files dated 1/15/2024 >>> /lib/firmware/ath12k/WCN7850/hw2.0/

My current versions were from looks like quite awhile ago....

Code:
[    5.813755] ath12k_pci 0000:5c:00.0: BAR 0 [mem 0xa1a00000-0xa1bfffff 64bit]: assigned
[    5.813778] ath12k_pci 0000:5c:00.0: enabling device (0000 -> 0002)
[    5.814356] ath12k_pci 0000:5c:00.0: MSI vectors: 16
[    5.814362] ath12k_pci 0000:5c:00.0: Hardware name: wcn7850 hw2.0
[    6.388609] ath12k_pci 0000:5c:00.0: chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200
[    6.388613] ath12k_pci 0000:5c:00.0: fw_version 0x1005bc12 fw_build_timestamp 2022-10-11 12:13 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4
[    6.924974] ath12k_pci 0000:5c:00.0: WBRF is not supported
[    7.460368] ath12k_pci 0000:5c:00.0 wlp92s0: renamed from wlan0

After FW update
Code:
[    6.205039] ath12k_pci 0000:5c:00.0: fw_version 0x100301e1 fw_build_timestamp 2023-12-06 04:05 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

[    6.212227] ath12k_pci 0000:5c:00.0: failed to fetch board data for bus=pci,qmi-chip-id=2,qmi-board-id=255 from ath12k/WCN7850/hw2.0/board-2.bin

Now a couple of things stand out... the FW is now using newer info 12/6/2023 and there's now a board-2 file like on prior QCA cards but.... is it loading or using the old method m3/amss instead.... Maybe the next push tot he FW will include the patch. I checked for the 6.8-RC2 and it's out but, failed testing and don't feel like building / compiling it as nothing was mentioned for anything I'm using or wanting.

I guess it's time to monitor stability for awhile before bothering with digging into it deeper to get the BW up to where it should be which likely isn't something to be done with NM but hostapd for more control over the connection params.
 
One other quick tip - you don't have to settle for the new interface naming scheme... as the newer scheme can be troublesome for scripts, etc... can just add the bold item below ("net.ifnames=0") to the existing line in grub

change /etc/default/grub and update grub - then it'll settle on wlan0 rather than wlp92s0

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0"
 
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0"
Avoided doing this for a couple of days knowing it would wreak havoc on things. Of course renaming things in various places as usual but, the odd thing was my onboard 2.5GE RTL port would come up with the AP attached and then drop after ~30s for no apparent reason. Plugged it into one of my other 5GE ports and worked fine. Thought maybe it was the firmware for the RTL port but, it was using the right version. So, ended up killing NetworkManager and the shenanigans stopped and the port works just fine again... downside... AP mode for the M2 now turns into only hostapd as the option. Though that might be a blessing in disguise since putting it up in AP mode w/ NM yielded some oddities over time. It was fairly stable with the more recent firmware but, it would eventually drop the connection or maybe my phone / laptop just wanted a breakup from it. I did catch a couple of crashes though which is a bit annoying. A lot of moving parts to deal with besides trying to get the firmware updates needed to stabilize things.

As for my 5G modem I put together I setup a connection in NM at one point but, the modem itself is configured with all of the APN info needed to autoconnect regardless of what I connect it to at this point which means NM is now dead for the server since it's no longer needed for anything again. NM is such a PITA to deal with if you're doing anything more than a single port connected to your LAN .

--------------
Further testing showed issues with disabling NM.
- 5G wouldn't come up post disable.
- Eth0 drops continued until explicitly making the interface unmanaged with additional commands even though it's listed int he interfaces file which should remove it from NM control.
- Trying to readd the AP profile under br0 caused a ton of duplicate profiles to be generated and compete for connectivity and found them hidden under /etc/netplan and deleted all of them manually from there since any other method seemed to autoscan and populate them after removing them again. I really don't like NM and how it binds things together.

So, after purging all of the .yaml files above it also zapped the 5G profile in the process of course since the names of the files are gibberish with UUID's. I took a stab at readding the 5G profile with some basic options instead of adding it through the GUI and it came up right away. I would rather find a way to make it work w/o NM but, it kind of sounds like you have to script it out for launch on every boot with libqmi or libmibm. For the time being though I managed to effectively kill NM from messing with my interfaces that I don't need it running on but, still allowing the chain reaction of NM / MM to bring up the 5G WWAN on boot.

None of this gets me any further with BE though. In fact now even the limited AP use of he card via NM is not in play at this point. Time to let things sit for a bit and settle before launching another attack on WIFI.
 
As for my 5G modem I put together I setup a connection in NM at one point but, the modem itself is configured with all of the APN info needed to autoconnect regardless of what I connect it to at this point which means NM is now dead for the server since it's no longer needed for anything again. NM is such a PITA to deal with if you're doing anything more than a single port connected to your LAN .

Not sure where to start here - NM is a bit of a hot mess, and modemmanager hooks into this, adding an extra layer of complexity...

With 5g modems over USB, hotplug makes things a total dance party...

note for others - when adding "netifnames=1" in grub - systemd controls all the interfaces, and networkmanager just follows its lead...

remember, when making changes to /etc/default/grub - one has to do the whole update-grub or it won't take effect.
 
total dance party
That's one way to look at it. I also got a PCIE adapter card I can use with it but those snap on MHF4 cables are a real pita even when not in a confined space. Plus it has 8 of them split between 5G/mmwave. Which means I have a second 4-hole slot cover to deal with pigtails to try to get into place at the same time.

I've managed to detangle some of this binding crap but, just trying to work through it one piece at a time. I like the USB option but really should test the PCIE side to see if it produces better results. The issue I have ATM is all 4 slots are populated which means removing my quad port NIC and popping the modem into that slot and the adjoining slot for the mmwave antennas. The issue there is it's the bottom slot which really doesn't leave much room for squeezing things in and since the modem would be in the bottom slot I'm not sure the pigtail I got will reach to the next slot up. Now, If I move the GPU down to another slot then the antennas wouldn't be an issue but, that might block off using another card. I suppose I could juggle the other 2 single slot cards and put the modem into the 3rd slot and bump that card down.

AMD setups don't make it easy to cram things into slots with adequate bandwidth though. Their DMI equivalent is only X4 where Intel is X8 and they also daisy chain 2 controllers across another X4 between them. It's a bit obtuse IMO. Hopefully they'll upgrade that link on the X870 series boards but, who knows.

Putting the modem inside just looks like it's going to be a mess not worth fighting with in terms of slots/cards/bandwidth as I have it hooked up to a TB port as the normal USB ports don't fire it up for some reason. The lights come on on the adapter but it just sits there and doesn't do much else, Since it's an SD x65 maybe it's needing more power from the port than USB will provide. The whole idea when setting it up though was to convert from an A to C anyway to reduce the need for cables and get it away from the physical port with a cable for placement / less interference / heat.

I suppose I could knock off the mmwave side of it since there's not much of it in use still which would simplify which slot to put it into. I'm still going through all of the AT commands for testing the options out though. It's interesting to toggle it between SA / NSA mode and bounce the channels it's using in NSA to get better speeds from it. It pulls back the curtains a bit on why the TMHI KVD box behaved the way it did at times. Being able to force / push it to use certain channel combos though makes a huge difference in terms of speeds. If it locks to n66 it tends to be about 50% vs n2 and SA mode picks up n41 only and produces 50-70mbps where the bonded NSA in off peak hits ~300mbps DL.
 
So, I've been using one of the adapters in my laptop and using the Gigabyte driver x.x.x.909 and it presents some issues that have been naggingly annoying for the past few months now. I went on the hunt for updates for this apparently niche card and finally found an updated version on MSI's site.

3.0.0.1078

Just installed the updated driver and will have to see if this improves things. Mainly I have an issue with my trackpad that requires a quick suspend / resume to purge the issue. Well, the WIFI driver normally works for maybe 4-5 times of this before crapping out and requiring a full reboot to resume network connectivity. Sometimes though it hangs on a DMA driver BSOD though upon reboot. It's just a PITA sometimes and maybe the newer version will reduce my frustrations. When using the Intel AX411 this wasn't an issue so, it leads me to think it's a quirk of the 909 driver.

Seeing as thought he laptop is Intel I might reconsider using the BE200 instead.... Though there are some potential drawbacks to this idea.

On the AP front there's been some movement on rolling in the ath12k modules

Code:
sudo dmesg | grep ath12k
[    4.106677] ath12k_pci 0000:5c:00.0: BAR 0 [mem 0xa1a00000-0xa1bfffff 64bit]: assigned
[    4.106699] ath12k_pci 0000:5c:00.0: enabling device (0000 -> 0002)
[    4.106946] ath12k_pci 0000:5c:00.0: MSI vectors: 16
[    4.106951] ath12k_pci 0000:5c:00.0: Hardware name: wcn7850 hw2.0
[    5.087576] ath12k_pci 0000:5c:00.0: chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200
[    5.087580] ath12k_pci 0000:5c:00.0: fw_version 0x100301e1 fw_build_timestamp 2023-12-06 04:05 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
[    5.095111] ath12k_pci 0000:5c:00.0: failed to fetch board data for bus=pci,qmi-chip-id=2,qmi-board-id=255 from ath12k/WCN7850/hw2.0/board-2.bin

I just updated to kernel 6.8 a little while ago and haven't had a chance to check things out when it comes to the WIFI card / AP mode yet.
 
So, I've been using one of the adapters in my laptop and using the Gigabyte driver x.x.x.909 and it presents some issues that have been naggingly annoying for the past few months now. I went on the hunt for updates for this apparently niche card and finally found an updated version on MSI's site.

3.0.0.1078

Just installed the updated driver and will have to see if this improves things. Mainly I have an issue with my trackpad that requires a quick suspend / resume to purge the issue. Well, the WIFI driver normally works for maybe 4-5 times of this before crapping out and requiring a full reboot to resume network connectivity. Sometimes though it hangs on a DMA driver BSOD though upon reboot. It's just a PITA sometimes and maybe the newer version will reduce my frustrations. When using the Intel AX411 this wasn't an issue so, it leads me to think it's a quirk of the 909 driver.

Seeing as thought he laptop is Intel I might reconsider using the BE200 instead.... Though there are some potential drawbacks to this idea.

On the AP front there's been some movement on rolling in the ath12k modules

Code:
sudo dmesg | grep ath12k
[    4.106677] ath12k_pci 0000:5c:00.0: BAR 0 [mem 0xa1a00000-0xa1bfffff 64bit]: assigned
[    4.106699] ath12k_pci 0000:5c:00.0: enabling device (0000 -> 0002)
[    4.106946] ath12k_pci 0000:5c:00.0: MSI vectors: 16
[    4.106951] ath12k_pci 0000:5c:00.0: Hardware name: wcn7850 hw2.0
[    5.087576] ath12k_pci 0000:5c:00.0: chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200
[    5.087580] ath12k_pci 0000:5c:00.0: fw_version 0x100301e1 fw_build_timestamp 2023-12-06 04:05 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
[    5.095111] ath12k_pci 0000:5c:00.0: failed to fetch board data for bus=pci,qmi-chip-id=2,qmi-board-id=255 from ath12k/WCN7850/hw2.0/board-2.bin

I just updated to kernel 6.8 a little while ago and haven't had a chance to check things out when it comes to the WIFI card / AP mode yet.
Thank you from me as well. There’s a lot of really good and hard to find information here. I am also picking up a QCN9274 to play around with. My focus will be on getting AP mode to work across all bands. I tried doing this a few years ago. I ended up recompiling the Intel driver and even hostapd many times with no success. A lot of wasted time. IIRC, QC’s AP support is much better than Intels, no? Let’s hope that this is achievable.

Side note while on the subject, did you guys read that Intel has received even more money from the government and is opening up a few factories? 20 billion I believe. I might try my hand at one of those engineering positions in a few years.
 
@Packets
Intel hobbles the AP mode and it's a waste of time, There are some tricks to get it working though but not nearly the full performance potential in terms of speed.

I still haven't dove into making it fully functional but did get it working in "hot spot" mode in Linux to an extent before getting sidetracked by other things. I've been keeping an eye on the firmware releases though and it should be workable with the right command combos in the .conf file. They sure are dragging their feet though in releasing it into the actual kernel vs importing pieces into the /lib/firmware directories to make it work.

I think there's still some testing going on or hesitation in releasing things. I haven't checked in the past couple of weeks but, Kalle Valo seems for the most part the person tasked with the modules https://github.com/kvalo

git doesn't get updated as much but the firmware pages tend to show bread crumbs when there's patches and enablements being applied.
 

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top