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

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Tech Junky

Active Member
Oct 26, 2023
379
126
43
Code:
BEFORE
sudo dmesg | grep ath12
[    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

AFTER
sudo dmesg | grep ath12
[    5.320676] ath12k_pci 0000:5c:00.0: BAR 0 [mem 0xa1a00000-0xa1bfffff 64bit]: assigned
[    5.320723] ath12k_pci 0000:5c:00.0: enabling device (0000 -> 0002)
[    5.321080] ath12k_pci 0000:5c:00.0: MSI vectors: 16
[    5.321095] ath12k_pci 0000:5c:00.0: Hardware name: wcn7850 hw2.0
[    5.884652] ath12k_pci 0000:5c:00.0: chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200
[    5.884656] 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
 

muh12487

New Member
Apr 16, 2024
5
0
1
Hello . Can someone please guide me on how to configure hostapd.conf file to be able to start hotspot with ieee80211be enabled ? every time I try to start , it fails .

I am using Intel BE200 wireless card . on linux mint 21.3 cinnamon , kernel 6.5 .

this is my configuration :

interface=wlp43s0f0
ssid=acer7
channel=149
hw_mode=a
ieee80211ax=1
ieee80211be=1

and this is the error :

root@Acer:/mnt/60EE3F0BEE3ED94C/linux/hostapd# hostapd hostapd3.conf
Failed to set beacon parameters
Interface initialization failed
wlp43s0f0: interface state UNINITIALIZED->DISABLED
wlp43s0f0: AP-DISABLED
wlp43s0f0: Unable to setup interface.
wlp43s0f0: interface state DISABLED->DISABLED
wlp43s0f0: AP-DISABLED
wlp43s0f0: CTRL-EVENT-TERMINATING
hostapd_free_hapd_data: Interface wlp43s0f0 wasn't started
nl80211: deinit ifname=wlp43s0f0 disabled_11b_rates=0

Thanks in advance .
 

Tech Junky

Active Member
Oct 26, 2023
379
126
43
Intel doesn't work for this and when it does it's hobbled to slow speeds.

You need to use Qualcomm or RTL based adapters.

Sidenote, I updated to 24.04 and now the Qualcomm adapter shows up in the system and is usable as a client at least and the option to use it as a hotspot shows up in the network options. I've been working on something else and haven't tried it yet as a simple hotspot outside of hostapd though but, will try it and report back.
 

Tech Junky

Active Member
Oct 26, 2023
379
126
43
Did a quick test and the hotspot option failed to bring up the AP mode but, in the past using the built-in option hasn't been the best in controlling the adapters so, need to spend some time with hostapd to see if it's going to engage and work in AP mode now that it shows up properly.

55:00.0 Network controller: Qualcomm Technologies, Inc WCN785x Wi-Fi 7(802.11be) 320MHz 2x2 [FastConnect 7800] (rev 01)

wlan0 IEEE 802.11 ESSID:eek:ff/any
Mode:Managed Access Point: Not-Associated
Retry short limit:7 RTS thr:eek:ff Fragment thr:eek:ff
Power Management:eek:n

This is what it created in NM for a profile when just using the dummy button and specifying the SSID / PSK.

Code:
Hotspot            a37fb36d-1544-4193-8ff0-5d00c3aeb6cb  wifi      --     

===============================================================================
                     Connection profile details (Hotspot)
===============================================================================
connection.id:                          Hotspot
connection.uuid:                        a37fb36d-1544-4193-8ff0-5d00c3aeb6cb
connection.stable-id:                   --
connection.type:                        802-11-wireless
connection.interface-name:              wlan0
connection.autoconnect:                 no
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1713273815
connection.permissions:                 --
connection.zone:                        --
connection.controller:                  --
connection.master:                      --
connection.slave-type:                  --
connection.port-type:                   --
connection.autoconnect-slaves:          -1 (default)
connection.autoconnect-ports:           -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.dns-over-tls:                -1 (default)
connection.mptcp-flags:                 0x0 (default)
connection.wait-device-timeout:         -1
connection.wait-activation-delay:       -1
-------------------------------------------------------------------------------
802-11-wireless.ssid:                   server-be
802-11-wireless.mode:                   ap
802-11-wireless.band:                   --
802-11-wireless.channel:                0
802-11-wireless.bssid:                  --
802-11-wireless.mac-address:            --
802-11-wireless.cloned-mac-address:     --
802-11-wireless.generate-mac-address-mask:--
802-11-wireless.mac-address-blacklist:  --
802-11-wireless.mac-address-randomization:default
802-11-wireless.mtu:                    auto
802-11-wireless.seen-bssids:            BC:F4:D4:A1:FC:15
802-11-wireless.hidden:                 no
802-11-wireless.powersave:              0 (default)
802-11-wireless.wake-on-wlan:           0x1 (default)
802-11-wireless.ap-isolation:           -1 (default)
-------------------------------------------------------------------------------
802-11-wireless-security.key-mgmt:      wpa-psk
802-11-wireless-security.wep-tx-keyidx: 0
802-11-wireless-security.auth-alg:      --
802-11-wireless-security.proto:         rsn
802-11-wireless-security.pairwise:      ccmp
802-11-wireless-security.group:         ccmp
802-11-wireless-security.pmf:           0 (default)
802-11-wireless-security.leap-username: --
802-11-wireless-security.wep-key0:      <hidden>
802-11-wireless-security.wep-key1:      <hidden>
802-11-wireless-security.wep-key2:      <hidden>
802-11-wireless-security.wep-key3:      <hidden>
802-11-wireless-security.wep-key-flags: 0 (none)
802-11-wireless-security.wep-key-type:  unknown
802-11-wireless-security.psk:           <hidden>
802-11-wireless-security.psk-flags:     0 (none)
802-11-wireless-security.leap-password: <hidden>
802-11-wireless-security.leap-password-flags:0 (none)
802-11-wireless-security.wps-method:    0x0 (default)
802-11-wireless-security.fils:          0 (default)
-------------------------------------------------------------------------------
ipv4.method:                            shared
ipv4.dns:                               --
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         --
ipv4.gateway:                           --
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.replace-local-rule:                -1 (default)
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-dscp:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.required-timeout:                  -1 (default)
ipv4.dad-timeout:                       -1 (default)
ipv4.dhcp-vendor-class-identifier:      --
ipv4.link-local:                        0 (default)
ipv4.dhcp-reject-servers:               --
ipv4.auto-route-ext-gw:                 -1 (default)
-------------------------------------------------------------------------------
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.replace-local-rule:                -1 (default)
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.required-timeout:                  -1 (default)
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     default
ipv6.ra-timeout:                        0 (default)
ipv6.mtu:                               auto
ipv6.dhcp-pd-hint:                      --
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.auto-route-ext-gw:                 -1 (default)
ipv6.token:                             --
-------------------------------------------------------------------------------
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
-------------------------------------------------------------------------------
 

muh12487

New Member
Apr 16, 2024
5
0
1
Intel doesn't work for this and when it does it's hobbled to slow speeds.

You need to use Qualcomm or RTL based adapters.

Sidenote, I updated to 24.04 and now the Qualcomm adapter shows up in the system and is usable as a client at least and the option to use it as a hotspot shows up in the network options. I've been working on something else and haven't tried it yet as a simple hotspot outside of hostapd though but, will try it and report back.
Can you guide me where to buy a wifi 7 M.2 card to use in the laptop , other than BE200 ?
also is qualcomm self-managed ( shows in iw reg get ) ? I hate intel for being self-managed , and love mediatek for being totally modifiable when it comes to setting wifi region , but I don't think they made any wifi 7 cards yet .
 
Last edited:

Tech Junky

Active Member
Oct 26, 2023
379
126
43
I listed the one I'm using in the first post. https://www.aliexpress.us/item/3256805957376726.html

I have one installed in both my server (AP) and laptop.

iw reg get
phy#0 (self-managed)
country na: DFS-UNSET
(2402 - 2472 @ 40), (N/A, 20), (N/A)
(2457 - 2482 @ 20), (N/A, 20), (N/A), PASSIVE-SCAN
(5170 - 5330 @ 160), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
(5490 - 5730 @ 160), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
(5735 - 5895 @ 160), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
(5945 - 7125 @ 160), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
(5945 - 7125 @ 320), (N/A, 30), (N/A), AUTO-BW, PASSIVE-SCAN

I've tested AX stuff with RTL/MTK and they didn't do very well in terms of performance but did work. I just tend to use QCA based options because they tend to be less problematic. There are some switches you can implement on Intel cards to get them to work in AP mode but, IME they're limited in terms of speed vs what they can do as clients. IIRC the top speed was under 300mbps due to the switches to enable AP mode disabling higher speeds on the card. The other options weren't all that palatable due to the price in comparison to the cheap ass Intel cards being $20 vs $60+

The AE link above though and in the first post on this thread shows the price I paid when starting this adventure again. As with everything though the prices jump around and it looks like these are trending a bit higher today than they were then. There are a couple of different QCA cards out though that use the BE controllers. This one is cheap and the other tends to be $500+ but is designed to be an AP to the extent of higher bandwidth potential. But, for under $100 and unlocking 5gbps speeds it's not a bad experiment if you have the time and patience to get it working. Right now I'm fighting a battle with my WWAN card dropping routes that just started in the last week or so. I didn't change anything that I recall and it had been stable for months even with periodic updates to the system.

I don't recall what the AC version of this setup was RE:self-managed but, invoking hostapd should change the output to the correct method as well as putting it in to /etc/network/interfaces and/or disabling network-manager from managing it. The whole card/hostapd thing though has been a rolling update issue with things slowly being unlocked upstream as time passes. There are other ways to expedite it and I've tried them but, waiting it out seems to be the better option for me since compiling kernels weekly vs just downloading them as deb's is more time efficient. When using the AC setup speeds and stability were consistent for daily use for a few years.
 

muh12487

New Member
Apr 16, 2024
5
0
1
I read the whole post now . the card in the link is not available .
1713352102215.png
As per using a self managed card as a hotpot , I couldn't find anyway to use it outside the allowed frequencies .
as you can see in your posted " iw reg get " ( Thanks for that by the way ) , you can only use frequencies between 2402 and 2472 . all the remaining frequnecies are passive-scan , which as far as I know is the same as no IR ( no initiation of radiation ) which means can't be used as hotspot .
I don't know if you can let it detect which country you are in to have more frequencies allowed .
The beauty of Mediatik ( I have MT7921 ) is there is no phys# section , only global , and whatever you set it to ( iw reg set ) is accepted .
 

muh12487

New Member
Apr 16, 2024
5
0
1
By the way the best I was able to achieve as a hot spot with any M.2 card was 1200 mbps with 80 MHz . do you know of anyway to get any more ? were you ever able to use 160 MHz as a hotpot ?
here is the hostapd.conf I use :

interface=
ssid=
channel=149
hw_mode=a
ht_capab=[HT40+]
ieee80211ac=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=155
ieee80211ax=1
he_oper_chwidth=1
he_oper_centr_freq_seg0_idx=155

Of course you fill in your interface and SSID .

By the way , hostapd that you get by apt install hostapd is very old , no AX , no BE . Building latest hostapd is not difficult , to get AX and BE . Just follow the instructions :
 

muh12487

New Member
Apr 16, 2024
5
0
1
strangely now when I checked your iw list . it appears as if all frequencies are allowed .
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
 

Tech Junky

Active Member
Oct 26, 2023
379
126
43
the card in the link is not available .
Always an option. It was when I started all of this. Maybe there's a new model number? The actual card model is a WCN7851 but, it was marketed under that odd QCNCM865 ID for some reason.

IIRC I tried this or avoided it based on comments. I know I tried the AX version and it just didn't hit the mark for performance and was over priced.

By the way , hostapd that you get by apt install hostapd is very old , no AX , no BE . Building latest hostapd is not difficult , to get AX and BE . Just follow the instructions :
Been there, done that. Problem at the time was the card not being enabled in the kernel with the proper modules associated to enable AP mode. Now that the card is showing up and more apt to manipulation I might spend some time on it again. I've already added some of the prered stuff again today to get some more outputs due to a fresh OS install the other day for another issue.

ATH12K hasn't been out very long and didn't exist when I got the cards originally. I cobbled together some ath11k stuff kvalo posted over on github originally just to see the card in the system. QC has been releasing updates / patches though slowly unlocking features and rolling them into the kernel for use.


I need to spend some time and dig around again to get back into this though. It's not been a high priority while waiting on patches and such. Not to mention not much interest from others until now. Maybe we'll rally some synergy and get it working at least as a POC.
 

casulo

Member
Nov 30, 2022
49
21
8
I too configured my linux gateway with wifi. I'm using a meditek MT7922 card, so far no issues. In fact, i configured it with wifi5. Recently i decided to tried wifi6, the speeds and range got boosted. 75-80MB/s on the phone. Kernel here is 6.8.4. I'm surprised to read here hostapd supports wifi7.

Intel cards might be good for client side, but suck as AP, because they don't support AP mode in 5Ghz and (probably) 6Ghz as well.

Never tried qualcomm. Maybe it's the time?

You might want to check GitHub - morrownr/USB-WiFi: USB WiFi Adapter Information for Linux for configs and stuff, despite its name, it's not just for usb wifi. Morrow might help you.

I agree that some AP are expensive, however i have a xiaomi ax1800 (the white one) that is just rock solid. 80MB/s+. Best 30€ ever spent on a networking device. But looking to upgrade to a ax5400 (gaming version) or a be6500 Pro, both with 2.5Gbs LAN ports. For the be6500 sellers are charging too much for shipping tough.


EDIT: That qualcomm card is not available on aliexpress, but msi is selling a pci card with it: https://us-store.msi.com/HERALD-BE-NCM865-WI-FI-7
Also, the Banana Pi BPI-R4 board is looking very tempting. With mediatek filogic 880.

EDIT2: looks the banaba pi board does NOT actually come with a wifi card :/
 
Last edited:

Tech Junky

Active Member
Oct 26, 2023
379
126
43
That's good info.


Intel cards
They work, just have to hack them and lose true performance of them for AP mode.

Qualcomm is used for the majority of APs and when I was running AC it worked great. The problem is the intended AP controller cards are $500 and this one is about $40. Being that this is a client card the max would be about 5GE where the other one IIRC tops out at about 10GE. But a single client would only hit 5GE anyway due to only two antennas. If there were client adapters with more then it might make sense to go with the higher end card.
 

Tech Junky

Active Member
Oct 26, 2023
379
126
43
@muh12487

Found something interesting RE the card.

NCM865 supports simultaneous operation on 2.4 GHz + 5 GHz and 2.4 GHz + 6 GHz.

Looks like it's not a true tri-mode but, could be at least dual mode per client on either 5/6ghz. Kind of makes me ponder whether this would need 2 hostapd files or if you can configure all 3 options in the same file and get it up and running. I know when I was doing AC with the QNAP card it had two physical radios one for each 2.4/5ghz and needed two files to bring both up.