MT7925 wifi card stuck in NO_IR

even with 'country3=0x49' (indoor only) added to the generated hostapd.conf, the card refuses to use channel 29 on 6GHz. All of 6GHz isn't allowed.

Tue Jun 17 09:36:45 2025 kern.info kernel: [42580.652898] mt7925e 0000:04:00.0 phy0-ap0: entered allmulticast mode
Tue Jun 17 09:36:45 2025 kern.info kernel: [42580.659340] mt7925e 0000:04:00.0 phy0-ap0: entered promiscuous mode
Tue Jun 17 09:36:45 2025 daemon.notice hostapd: phy0-ap0: interface state UNINITIALIZED->COUNTRY_UPDATE
Tue Jun 17 09:36:45 2025 daemon.notice hostapd: Frequency 6095 (primary) not allowed for AP mode, flags: 0x13803 NO-IR
Tue Jun 17 09:36:45 2025 daemon.err hostapd: Primary frequency not allowed
Tue Jun 17 09:36:45 2025 daemon.warn hostapd: phy0-ap0: IEEE 802.11 Configured channel (29) or frequency (6095) (secondary_channel=-1) not found from the channel list of the current mode (2) IEEE 802.11a
Tue Jun 17 09:36:45 2025 daemon.warn hostapd: phy0-ap0: IEEE 802.11 Hardware does not support configured channel
Tue Jun 17 09:36:45 2025 daemon.err hostapd: Could not select hw_mode and channel. (-3)
Tue Jun 17 09:36:45 2025 daemon.notice hostapd: phy0-ap0: interface state COUNTRY_UPDATE->NO_IR
Tue Jun 17 09:36:45 2025 daemon.notice hostapd: phy0-ap0: AP-NO_IR

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

ubus call system board
cat /etc/config/wireless
1 Like
{
        "kernel": "6.12.30",
        "hostname": "OpenWrt",
        "system": "Intel(R) N100",
        "model": "Default string Default string",
        "board_name": "default-string-default-string",
        "rootfs_type": "ext4",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "firmware_url": "https://downloads.openwrt.org/",
                "revision": "r29853-98341edd58",
                "target": "x86/64",
                "description": "OpenWrt SNAPSHOT r29853-98341edd58",
                "builddate": "1748519238"
        }
}
config wifi-device 'radio0'
        option type 'mac80211'
        option path 'pci0000:00/0000:00:1d.1/0000:04:00.0'
        option cell_density '0'
        option country 'US'
        option htmode 'HE160'
        option band '6g'
        option channel '29'
        option hostapd_options 'country3=0x49 stationary_ap=1 he_6ghz_reg_pwr_type=0 beacon_prot=1'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'Roy'
        option mode 'ap'
        option ssid 'OpenWRT_6ghzBE160'
        option encryption 'sae'
        option key 'xxxxxx'
        option ocv '1'
        option wpa_disable_eapol_key_retries '1'
        option short_preamble '0'
root@OpenWrt:~# lspci -nnks 04:00.0
04:00.0 Network controller [0280]: MEDIATEK Corp. Device [14c3:7925]
        Subsystem: MEDIATEK Corp. Device [14c3:7925]
        Kernel driver in use: mt7925e
lspci: Unable to load libkmod resources: error -2

The Intel AX1690i card had the same behavior, but it is client-mode only. The MT7925 is supposed to be AP capable.

root@OpenWrt:~# iwinfo phy0-ap0 freqlist |grep \*
* 6.095 GHz (Band: 6 GHz, Channel 29) [NO_IR, INDOOR_ONLY]

No 6ghz ap in US

Follow here

1 Like

Yes, this seems to be a card/driver issue with the MediaTek MT7925 and kmod-mt76 (6.12.30.2025.04.11~be28ef77-r1) and mt7925bt-firmware (20250509-r1).

I got further with the Quectel QCNCM865 (Qualcomm WCN7850) with ath12k. At least with the Quectel, hostapd reported that the AP was enabled, yet the card either wasn't transmitting or it was in a format not recognized by my laptop with an Intel BE1750x.

hostapd reports AP up with country code set to GB! Yet, I can't see it from my laptop :frowning: There must be some format problem with the beacon

Tue Jun 17 11:59:46 2025 daemon.notice wpa_supplicant[2571]: Set new config for phy phy0
Tue Jun 17 11:59:46 2025 daemon.notice hostapd: Set new config for phy phy0: /var/run/hostapd-phy0.conf
Tue Jun 17 11:59:46 2025 daemon.notice hostapd: Restart interface for phy phy0
Tue Jun 17 11:59:46 2025 daemon.notice hostapd: Remove interface 'phy0'
Tue Jun 17 11:59:46 2025 daemon.notice hostapd: phy0-ap0: interface state NO_IR->DISABLED
Tue Jun 17 11:59:46 2025 daemon.notice hostapd: phy0-ap0: AP-DISABLED
Tue Jun 17 11:59:46 2025 daemon.notice hostapd: phy0-ap0: CTRL-EVENT-TERMINATING
Tue Jun 17 11:59:46 2025 daemon.err hostapd: rmdir[ctrl_interface=/var/run/hostapd]: Permission denied
Tue Jun 17 11:59:46 2025 daemon.err hostapd: hostapd_free_hapd_data: Interface phy0-ap0 wasn't started
Tue Jun 17 11:59:46 2025 daemon.notice hostapd: nl80211: deinit ifname=phy0-ap0 disabled_11b_rates=0
Tue Jun 17 11:59:46 2025 kern.info kernel: [51161.522497] mt7925e 0000:04:00.0 phy0-ap0: left allmulticast mode
Tue Jun 17 11:59:46 2025 kern.info kernel: [51161.528662] mt7925e 0000:04:00.0 phy0-ap0: left promiscuous mode
Tue Jun 17 11:59:46 2025 kern.info kernel: [51161.534714] br-roy: port 2(phy0-ap0) entered disabled state
Tue Jun 17 11:59:47 2025 daemon.notice hostapd: Configuration file: data: driver=nl80211 logger_syslog=127 logger_syslog_level=2 logger_stdout=127 logger_stdout_level=2 country_code=GB ieee80211d=1 ieee80211h=1 hw_mode=a beacon_int=100 he_6ghz_reg_pwr_type=0 stationary_ap=1 country3=0x49 stationary_ap=1 he_6ghz_reg_pwr_type=0 beacon_prot=1 chanlist=29 #num_global_macaddr=1 #macaddr_base= op_class=134 ieee80211ax=1 he_oper_chwidth=2 he_oper_centr_freq_seg0_idx=15 he_bss_color=128 he_spr_sr_control=3 he_default_pe_duration=4 he_rts_threshold=1023 he_mu_edca_qos_info_param_count=0 he_mu_edca_qos_info_q_ack=0 he_mu_edca_qos_info_queue_request=0 he_mu_edca_qos_info_txop_request=0 he_mu_edca_ac_be_aifsn=8 he_mu_edca_ac_be_aci=0 he_mu_edca_ac_be_ecwmin=9 he_mu_edca_ac_be_ecwmax=10 he_mu_edca_ac_be_timer=255 he_mu_edca_ac_bk_aifsn=15 he_mu_edca_ac_bk_aci=1 he_mu_edca_ac_bk_ecwmin=9 he_mu_edca_ac_bk_ecwmax=10 he_mu_edca_ac_bk_timer=255 he_mu_edca_ac_vi_ecwmin=5 he_mu_edca_ac_vi_ecwmax=7 he_mu_edca_ac_vi_aifsn=5 he_mu_edca_ac_vi_aci=2 h
Tue Jun 17 11:59:47 2025 kern.info kernel: [51161.802669] br-roy: port 2(phy0-ap0) entered blocking state
Tue Jun 17 11:59:47 2025 kern.info kernel: [51161.808308] br-roy: port 2(phy0-ap0) entered disabled state
Tue Jun 17 11:59:47 2025 kern.info kernel: [51161.813914] mt7925e 0000:04:00.0 phy0-ap0: entered allmulticast mode
Tue Jun 17 11:59:47 2025 kern.info kernel: [51161.820337] mt7925e 0000:04:00.0 phy0-ap0: entered promiscuous mode
Tue Jun 17 11:59:47 2025 daemon.notice hostapd: phy0-ap0: interface state UNINITIALIZED->COUNTRY_UPDATE
Tue Jun 17 11:59:47 2025 daemon.info dnsmasq[1]: read /etc/hosts - 12 names
Tue Jun 17 11:59:47 2025 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 8 names
Tue Jun 17 11:59:47 2025 daemon.info dnsmasq[1]: read /tmp/hosts/odhcpd - 8 names
Tue Jun 17 11:59:47 2025 daemon.info dnsmasq-dhcp[1]: read /etc/ethers - 0 addresses
Tue Jun 17 11:59:47 2025 daemon.notice netifd: Network device 'phy0-ap0' link is up
Tue Jun 17 11:59:47 2025 daemon.notice netifd: bridge 'br-roy' link is up
Tue Jun 17 11:59:47 2025 daemon.notice netifd: Interface 'Roy' has link connectivity
Tue Jun 17 11:59:47 2025 kern.info kernel: [51162.489861] br-roy: port 2(phy0-ap0) entered blocking state
Tue Jun 17 11:59:47 2025 kern.info kernel: [51162.495500] br-roy: port 2(phy0-ap0) entered forwarding state
Tue Jun 17 11:59:47 2025 daemon.notice hostapd: phy0-ap0: interface state COUNTRY_UPDATE->ENABLED
Tue Jun 17 11:59:47 2025 daemon.notice hostapd: phy0-ap0: AP-ENABLED
Tue Jun 17 11:59:48 2025 daemon.notice netifd: Wireless device 'radio0' is now up

I have an MT7991 coming in the mail soon, so I'll see how that will go for the goal of getting an AP on Wifi 7 and supporting HE320. The MT7925 can only do HE160

It will not change unless someone provides a PR towards regdb package removing no-ir from us which is there upstream for "old kernels" not for total transmission prohibition.

It seems specific to either the MT7925's firmware or the driver. I just did an apk upgrade for some relevant code, rebooted with the Quectel card, and regdb is fine with countrycode set to US. Hostapd enables the AP, but I still can't see it from my laptop. I wish I had an RF testset to debug properly.

root@OpenWrt:~# iwinfo phy0-ap0 frequencylist
  2.412 GHz (Band: 2.4 GHz, Channel 1) [NO_HT40-, NO_80MHZ, NO_160MHZ]
  2.417 GHz (Band: 2.4 GHz, Channel 2) [NO_HT40-, NO_80MHZ, NO_160MHZ]
  2.422 GHz (Band: 2.4 GHz, Channel 3) [NO_HT40-, NO_80MHZ, NO_160MHZ]
  2.427 GHz (Band: 2.4 GHz, Channel 4) [NO_HT40-, NO_80MHZ, NO_160MHZ]
  2.432 GHz (Band: 2.4 GHz, Channel 5) [NO_80MHZ, NO_160MHZ]
  2.437 GHz (Band: 2.4 GHz, Channel 6) [NO_80MHZ, NO_160MHZ]
  2.442 GHz (Band: 2.4 GHz, Channel 7) [NO_80MHZ, NO_160MHZ]
  2.447 GHz (Band: 2.4 GHz, Channel 8) [NO_HT40+, NO_80MHZ, NO_160MHZ]
  2.452 GHz (Band: 2.4 GHz, Channel 9) [NO_HT40+, NO_80MHZ, NO_160MHZ]
  2.457 GHz (Band: 2.4 GHz, Channel 10) [NO_HT40+, NO_80MHZ, NO_160MHZ]
  2.462 GHz (Band: 2.4 GHz, Channel 11) [NO_HT40+, NO_80MHZ, NO_160MHZ]
  5.180 GHz (Band: 5 GHz, Channel 36) [NO_HT40-]
  5.200 GHz (Band: 5 GHz, Channel 40)
  5.220 GHz (Band: 5 GHz, Channel 44)
  5.240 GHz (Band: 5 GHz, Channel 48)
  5.260 GHz (Band: 5 GHz, Channel 52)
  5.280 GHz (Band: 5 GHz, Channel 56)
  5.300 GHz (Band: 5 GHz, Channel 60)
  5.320 GHz (Band: 5 GHz, Channel 64) [NO_HT40+]
  5.500 GHz (Band: 5 GHz, Channel 100) [NO_HT40-]
  5.520 GHz (Band: 5 GHz, Channel 104)
  5.540 GHz (Band: 5 GHz, Channel 108)
  5.560 GHz (Band: 5 GHz, Channel 112)
  5.580 GHz (Band: 5 GHz, Channel 116)
  5.600 GHz (Band: 5 GHz, Channel 120)
  5.620 GHz (Band: 5 GHz, Channel 124)
  5.640 GHz (Band: 5 GHz, Channel 128)
  5.660 GHz (Band: 5 GHz, Channel 132)
  5.680 GHz (Band: 5 GHz, Channel 136)
  5.700 GHz (Band: 5 GHz, Channel 140)
  5.720 GHz (Band: 5 GHz, Channel 144) [NO_HT40+]
  5.745 GHz (Band: 5 GHz, Channel 149) [NO_HT40-]
  5.765 GHz (Band: 5 GHz, Channel 153)
  5.785 GHz (Band: 5 GHz, Channel 157)
  5.805 GHz (Band: 5 GHz, Channel 161)
  5.825 GHz (Band: 5 GHz, Channel 165)
  5.845 GHz (Band: 5 GHz, Channel 169)
  5.865 GHz (Band: 5 GHz, Channel 173) [NO_HT40+, INDOOR_ONLY]
  5.935 GHz (Band: 6 GHz, Channel 2) [NO_HT40-, INDOOR_ONLY]
  5.955 GHz (Band: 6 GHz, Channel 1) [INDOOR_ONLY]
  5.975 GHz (Band: 6 GHz, Channel 5) [INDOOR_ONLY]
  5.995 GHz (Band: 6 GHz, Channel 9) [INDOOR_ONLY]
  6.015 GHz (Band: 6 GHz, Channel 13) [INDOOR_ONLY]
  6.035 GHz (Band: 6 GHz, Channel 17) [INDOOR_ONLY]
  6.055 GHz (Band: 6 GHz, Channel 21) [INDOOR_ONLY]
  6.075 GHz (Band: 6 GHz, Channel 25) [INDOOR_ONLY]
* 6.095 GHz (Band: 6 GHz, Channel 29) [INDOOR_ONLY]
  6.115 GHz (Band: 6 GHz, Channel 33) [INDOOR_ONLY]
  6.135 GHz (Band: 6 GHz, Channel 37) [INDOOR_ONLY]
  6.155 GHz (Band: 6 GHz, Channel 41) [INDOOR_ONLY]
  6.175 GHz (Band: 6 GHz, Channel 45) [INDOOR_ONLY]
  6.195 GHz (Band: 6 GHz, Channel 49) [INDOOR_ONLY]
  6.215 GHz (Band: 6 GHz, Channel 53) [INDOOR_ONLY]
  6.235 GHz (Band: 6 GHz, Channel 57) [INDOOR_ONLY]
  6.255 GHz (Band: 6 GHz, Channel 61) [INDOOR_ONLY]
  6.275 GHz (Band: 6 GHz, Channel 65) [INDOOR_ONLY]
  6.295 GHz (Band: 6 GHz, Channel 69) [INDOOR_ONLY]
  6.315 GHz (Band: 6 GHz, Channel 73) [INDOOR_ONLY]
  6.335 GHz (Band: 6 GHz, Channel 77) [INDOOR_ONLY]
  6.355 GHz (Band: 6 GHz, Channel 81) [INDOOR_ONLY]
  6.375 GHz (Band: 6 GHz, Channel 85) [INDOOR_ONLY]
  6.395 GHz (Band: 6 GHz, Channel 89) [INDOOR_ONLY]
  6.415 GHz (Band: 6 GHz, Channel 93) [INDOOR_ONLY]
  6.435 GHz (Band: 6 GHz, Channel 97) [INDOOR_ONLY]
  6.455 GHz (Band: 6 GHz, Channel 101) [INDOOR_ONLY]
  6.475 GHz (Band: 6 GHz, Channel 105) [INDOOR_ONLY]
  6.495 GHz (Band: 6 GHz, Channel 109) [INDOOR_ONLY]
  6.515 GHz (Band: 6 GHz, Channel 113) [INDOOR_ONLY]
  6.535 GHz (Band: 6 GHz, Channel 117) [INDOOR_ONLY]
  6.555 GHz (Band: 6 GHz, Channel 121) [INDOOR_ONLY]
  6.575 GHz (Band: 6 GHz, Channel 125) [INDOOR_ONLY]
  6.595 GHz (Band: 6 GHz, Channel 129) [INDOOR_ONLY]
  6.615 GHz (Band: 6 GHz, Channel 133) [INDOOR_ONLY]
  6.635 GHz (Band: 6 GHz, Channel 137) [INDOOR_ONLY]
  6.655 GHz (Band: 6 GHz, Channel 141) [INDOOR_ONLY]
  6.675 GHz (Band: 6 GHz, Channel 145) [INDOOR_ONLY]
  6.695 GHz (Band: 6 GHz, Channel 149) [INDOOR_ONLY]
  6.715 GHz (Band: 6 GHz, Channel 153) [INDOOR_ONLY]
  6.735 GHz (Band: 6 GHz, Channel 157) [INDOOR_ONLY]
  6.755 GHz (Band: 6 GHz, Channel 161) [INDOOR_ONLY]
  6.775 GHz (Band: 6 GHz, Channel 165) [INDOOR_ONLY]
  6.795 GHz (Band: 6 GHz, Channel 169) [INDOOR_ONLY]
  6.815 GHz (Band: 6 GHz, Channel 173) [INDOOR_ONLY]
  6.835 GHz (Band: 6 GHz, Channel 177) [INDOOR_ONLY]
  6.855 GHz (Band: 6 GHz, Channel 181) [INDOOR_ONLY]
  6.875 GHz (Band: 6 GHz, Channel 185) [INDOOR_ONLY]
  6.895 GHz (Band: 6 GHz, Channel 189) [INDOOR_ONLY]
  6.915 GHz (Band: 6 GHz, Channel 193) [INDOOR_ONLY]
  6.935 GHz (Band: 6 GHz, Channel 197) [INDOOR_ONLY]
  6.955 GHz (Band: 6 GHz, Channel 201) [INDOOR_ONLY]
  6.975 GHz (Band: 6 GHz, Channel 205) [INDOOR_ONLY]
  6.995 GHz (Band: 6 GHz, Channel 209) [INDOOR_ONLY]
  7.015 GHz (Band: 6 GHz, Channel 213) [INDOOR_ONLY]
  7.035 GHz (Band: 6 GHz, Channel 217) [INDOOR_ONLY]
  7.055 GHz (Band: 6 GHz, Channel 221) [INDOOR_ONLY]
  7.075 GHz (Band: 6 GHz, Channel 225) [INDOOR_ONLY]
  7.095 GHz (Band: 6 GHz, Channel 229) [INDOOR_ONLY]
  7.115 GHz (Band: 6 GHz, Channel 233) [NO_HT40+, INDOOR_ONLY]

Just set "normal" 5ghz channel and test that antennas are wired correctly.

Thanks for the push. The Quectel QCNCM865 is working on 5Ghz set to HE160 as an AP. I'm posting through the connection right now

SSID:	OpenWRT_6ghzBE320
Protocol:	802.11be
Security type:	WPA3-Personal
Manufacturer:	Intel Corporation
Description:	Killer(TM) Wi-Fi 7 BE1750x 320MHz Wireless Network Adapter (BE200NGW)
Driver version:	23.140.0.3
Network band (channel):	5 GHz (36)
Aggregated link speed (Receive/Transmit):	576/864 (Mbps)
Link-local IPv6 address:	fe80::a629:35bd:2f47:3a3f%19
IPv4 address:	192.168.3.238
IPv4 default gateway:	192.168.3.1
IPv4 DNS servers:	192.168.3.1 (Unencrypted)
Physical address (MAC):	44:38:E8:xx:xx:xx

Renting this seems to be the most logical solution I can come up with to solve the lack of a valid beacon I have with the Qualtec QCNCM865

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.