Can't get firmware to power Wi-Fi access point

I recently got a MeLE Quieter DL to use as my new router. I installed

/releases/24.10.2/targets/x86/64/openwrt-24.10.2-x86-64-generic-squashfs-combined-efi.img.gz

to the device without issue; OpenWRT boots and runs as normal. The only thing I needed to configure was the Wi-Fi. The Wi-Fi chip has a vendor-model ID of 8086-54f0 with the name of (I think) "Intel's CNVi Wi-Fi"; I'm not sure what the exact name of it is.

I booted the device using a Gentoo livecd to find out what the Wi-Fi chip needed to work:

filtered output of dmesg from livecd

[ 10.811894] Intel(R) Wireless WiFi driver for Linux
[ 10.812046] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[ 10.813414] iwlwifi 0000:00:14.3: Detected crf-id 0x1300202, cnv-id 0x80400 wfpm id 0x80000030
[ 10.813456] iwlwifi 0000:00:14.3: PCI dev 54f0/0034, rev=0x370, rfid=0x105110
[ 10.813459] iwlwifi 0000:00:14.3: Detected Intel(R) Wireless-AC 9560 160MHz
[ 10.813752] Loading firmware: iwlwifi-so-a0-jf-b0-89.ucode
[ 10.814380] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-89.ucode failed with error -2
[ 10.814387] Loading firmware: iwlwifi-so-a0-jf-b0-88.ucode
[ 10.814437] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-88.ucode failed with error -2
[ 10.814440] Loading firmware: iwlwifi-so-a0-jf-b0-87.ucode
[ 10.814480] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-87.ucode failed with error -2
[ 10.814483] Loading firmware: iwlwifi-so-a0-jf-b0-86.ucode
[ 10.814522] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-86.ucode failed with error -2
[ 10.814524] Loading firmware: iwlwifi-so-a0-jf-b0-85.ucode
[ 10.814563] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-85.ucode failed with error -2
[ 10.814565] Loading firmware: iwlwifi-so-a0-jf-b0-84.ucode
[ 10.814604] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-84.ucode failed with error -2
[ 10.814607] Loading firmware: iwlwifi-so-a0-jf-b0-83.ucode
[ 10.814645] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-83.ucode failed with error -2
[ 10.814648] Loading firmware: iwlwifi-so-a0-jf-b0-82.ucode
[ 10.814685] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-82.ucode failed with error -2
[ 10.814688] Loading firmware: iwlwifi-so-a0-jf-b0-81.ucode
[ 10.814727] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-81.ucode failed with error -2
[ 10.814730] Loading firmware: iwlwifi-so-a0-jf-b0-80.ucode
[ 10.814767] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-80.ucode failed with error -2
[ 10.814769] Loading firmware: iwlwifi-so-a0-jf-b0-79.ucode
[ 10.814806] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-79.ucode failed with error -2
[ 10.814809] Loading firmware: iwlwifi-so-a0-jf-b0-78.ucode
[ 10.814848] iwlwifi 0000:00:14.3: Direct firmware load for iwlwifi-so-a0-jf-b0-78.ucode failed with error -2
[ 10.814850] Loading firmware: iwlwifi-so-a0-jf-b0-77.ucode
[ 10.951919] iwlwifi 0000:00:14.3: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.36
[ 10.953132] iwlwifi 0000:00:14.3: loaded firmware version 77.f92b5fed.0 so-a0-jf-b0-77.ucode op_mode iwlmvm
[ 11.263135] Modules linked in: wl(PO+) iwlmvm(+) snd_sof_intel_hda_mlink snd_sof_intel_hda i915(+) snd_hda_codec_hdmi mac80211 snd_sof_pci x86_pkg_temp_thermal snd_sof_xtensa_dsp intel_powerclamp snd_sof coretemp snd_sof_utils snd_soc_acpi_intel_match soundwire_generic_allocation snd_soc_acpi kvm_intel soundwire_bus libarc4 snd_soc_avs kvm snd_soc_hda_codec snd_hda_ext_core snd_soc_core snd_compress iwlwifi ac97_bus snd_pcm_dmaengine spi_nor uvcvideo iTCO_wdt irqbypass intel_pmc_bxt iTCO_vendor_support snd_usb_audio mtd snd_hda_intel btusb mei_hdcp mei_pxp uvc rapl videobuf2_vmalloc gpio_keys videobuf2_memops snd_intel_dspcfg snd_intel_sdw_acpi videobuf2_v4l2 btrtl snd_hda_codec videobuf2_common btintel btbcm videodev intel_cstate btmtk snd_hda_core i2c_algo_bit intel_uncore snd_usbmidi_lib ttm cfg80211 bluetooth snd_ump snd_rawmidi snd_seq_device snd_hwdep mc drm_display_helper snd_pcm pcspkr snd_timer snd r8169 cec soundcore joydev i2c_i801 realtek spi_intel_pci drm_buddy dm_multipath spi_intel i2c_smbus
[ 11.384903] iwlwifi 0000:00:14.3: WFPM_UMAC_PD_NOTIFICATION: 0x1f
[ 11.384953] iwlwifi 0000:00:14.3: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[ 11.384962] iwlwifi 0000:00:14.3: WFPM_AUTH_KEY_0: 0x90
[ 11.384971] iwlwifi 0000:00:14.3: CNVI_SCU_SEQ_DATA_DW9: 0x0
[ 11.385078] iwlwifi 0000:00:14.3: Detected RF JF, rfid=0x105110
[ 11.386220] iwlwifi 0000:00:14.3: RFIm is deactivated, reason = 4
[ 11.444132] iwlwifi 0000:00:14.3: base HW address: 68:34:21:75:f8:64
[ 11.647106] iwlwifi 0000:00:14.3: timeout waiting for FW reset ACK (inta_hw=0x0)
[ 11.647214] iwlwifi 0000:00:14.3: Start IWL Error Log Dump:
[ 11.647216] iwlwifi 0000:00:14.3: Transport status: 0x0000004A, valid: 6
[ 11.647218] iwlwifi 0000:00:14.3: Loaded firmware version: 77.f92b5fed.0 so-a0-jf-b0-77.ucode
[ 11.647220] iwlwifi 0000:00:14.3: 0x00000084 | NMI_INTERRUPT_UNKNOWN
[ 11.647222] iwlwifi 0000:00:14.3: 0x00A002F0 | trm_hw_status0
[ 11.647223] iwlwifi 0000:00:14.3: 0x00000000 | trm_hw_status1
[ 11.647224] iwlwifi 0000:00:14.3: 0x004D2A06 | branchlink2
[ 11.647225] iwlwifi 0000:00:14.3: 0x004C92BE | interruptlink1
[ 11.647226] iwlwifi 0000:00:14.3: 0x004C92BE | interruptlink2
[ 11.647227] iwlwifi 0000:00:14.3: 0x00011F5A | data1
[ 11.647228] iwlwifi 0000:00:14.3: 0x01000000 | data2
[ 11.647230] iwlwifi 0000:00:14.3: 0x00000000 | data3
[ 11.647230] iwlwifi 0000:00:14.3: 0x00000000 | beacon time
[ 11.647232] iwlwifi 0000:00:14.3: 0x0001BD90 | tsf low
[ 11.647233] iwlwifi 0000:00:14.3: 0x00000000 | tsf hi
[ 11.647234] iwlwifi 0000:00:14.3: 0x00000000 | time gp1
[ 11.647234] iwlwifi 0000:00:14.3: 0x0002740E | time gp2
[ 11.647235] iwlwifi 0000:00:14.3: 0x00000001 | uCode revision type
[ 11.647236] iwlwifi 0000:00:14.3: 0x0000004D | uCode version major
[ 11.647237] iwlwifi 0000:00:14.3: 0xF92B5FED | uCode version minor
[ 11.647238] iwlwifi 0000:00:14.3: 0x00000370 | hw version
[ 11.647240] iwlwifi 0000:00:14.3: 0x00480002 | board version
[ 11.647241] iwlwifi 0000:00:14.3: 0x802DFF00 | hcmd
[ 11.647241] iwlwifi 0000:00:14.3: 0x00020000 | isr0
[ 11.647242] iwlwifi 0000:00:14.3: 0x00000000 | isr1
[ 11.647243] iwlwifi 0000:00:14.3: 0x58F00002 | isr2
[ 11.647244] iwlwifi 0000:00:14.3: 0x00C0000C | isr3
[ 11.647245] iwlwifi 0000:00:14.3: 0x00000000 | isr4
[ 11.647246] iwlwifi 0000:00:14.3: 0x00000000 | last cmd Id
[ 11.647247] iwlwifi 0000:00:14.3: 0x00011F5A | wait_event
[ 11.647248] iwlwifi 0000:00:14.3: 0x00000000 | l2p_control
[ 11.647249] iwlwifi 0000:00:14.3: 0x00000000 | l2p_duration
[ 11.647250] iwlwifi 0000:00:14.3: 0x00000000 | l2p_mhvalid
[ 11.647251] iwlwifi 0000:00:14.3: 0x00000000 | l2p_addr_match
[ 11.647252] iwlwifi 0000:00:14.3: 0x00000009 | lmpm_pmg_sel
[ 11.647253] iwlwifi 0000:00:14.3: 0x00000000 | timestamp
[ 11.647254] iwlwifi 0000:00:14.3: 0x00000028 | flow_handler
[ 11.647302] iwlwifi 0000:00:14.3: 0x00000000 | ADVANCED_SYSASSERT
[ 11.647304] iwlwifi 0000:00:14.3: 0x00000000 | umac branchlink1
[ 11.647305] iwlwifi 0000:00:14.3: 0x00000000 | umac branchlink2
[ 11.647306] iwlwifi 0000:00:14.3: 0x00000000 | umac interruptlink1
[ 11.647306] iwlwifi 0000:00:14.3: 0x00000000 | umac interruptlink2
[ 11.647307] iwlwifi 0000:00:14.3: 0x00000000 | umac data1
[ 11.647308] iwlwifi 0000:00:14.3: 0x00000000 | umac data2
[ 11.647309] iwlwifi 0000:00:14.3: 0x00000000 | umac data3
[ 11.647310] iwlwifi 0000:00:14.3: 0x00000000 | umac major
[ 11.647311] iwlwifi 0000:00:14.3: 0x00000000 | umac minor
[ 11.647312] iwlwifi 0000:00:14.3: 0x00000000 | frame pointer
[ 11.647313] iwlwifi 0000:00:14.3: 0x00000000 | stack pointer
[ 11.647313] iwlwifi 0000:00:14.3: 0x00000000 | last host cmd
[ 11.647314] iwlwifi 0000:00:14.3: 0x00000000 | isr status reg
[ 11.647351] iwlwifi 0000:00:14.3: IML/ROM dump:
[ 11.647352] iwlwifi 0000:00:14.3: 0x00000B03 | IML/ROM error/state
[ 11.647361] iwlwifi 0000:00:14.3: 0x00005034 | IML/ROM data1
[ 11.647369] iwlwifi 0000:00:14.3: 0x00000090 | IML/ROM WFPM_AUTH_KEY_0
[ 11.647375] iwlwifi 0000:00:14.3: Fseq Registers:
[ 11.647378] iwlwifi 0000:00:14.3: 0x20000000 | FSEQ_ERROR_CODE
[ 11.647381] iwlwifi 0000:00:14.3: 0x80330000 | FSEQ_TOP_INIT_VERSION
[ 11.647384] iwlwifi 0000:00:14.3: 0x00010009 | FSEQ_CNVIO_INIT_VERSION
[ 11.647387] iwlwifi 0000:00:14.3: 0x0000A384 | FSEQ_OTP_VERSION
[ 11.647390] iwlwifi 0000:00:14.3: 0x3DC6AF7D | FSEQ_TOP_CONTENT_VERSION
[ 11.647393] iwlwifi 0000:00:14.3: 0x4552414E | FSEQ_ALIVE_TOKEN
[ 11.647395] iwlwifi 0000:00:14.3: 0x00080400 | FSEQ_CNVI_ID
[ 11.647398] iwlwifi 0000:00:14.3: 0x01300202 | FSEQ_CNVR_ID
[ 11.647401] iwlwifi 0000:00:14.3: 0x00080400 | CNVI_AUX_MISC_CHIP
[ 11.647406] iwlwifi 0000:00:14.3: 0x01300202 | CNVR_AUX_MISC_CHIP
[ 11.647411] iwlwifi 0000:00:14.3: 0x0000485B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
[ 11.647467] iwlwifi 0000:00:14.3: 0x0BADCAFE | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
[ 11.647511] iwlwifi 0000:00:14.3: 0x00000000 | FSEQ_PREV_CNVIO_INIT_VERSION
[ 11.647513] iwlwifi 0000:00:14.3: 0x00330000 | FSEQ_WIFI_FSEQ_VERSION
[ 11.647516] iwlwifi 0000:00:14.3: 0x8147D5CF | FSEQ_BT_FSEQ_VERSION
[ 11.647519] iwlwifi 0000:00:14.3: 0x00000122 | FSEQ_CLASS_TP_VERSION
[ 11.647528] iwlwifi 0000:00:14.3: UMAC CURRENT PC: 0x8047e450
[ 11.647531] iwlwifi 0000:00:14.3: LMAC1 CURRENT PC: 0xd0
[ 11.647534] iwlwifi 0000:00:14.3: WRT: Collecting data: ini trigger 4 fired (delay=0ms).
[ 12.123139] iwlwifi 0000:00:14.3 wlp0s20f3: renamed from wlan0
[ 16.445550] iwlwifi 0000:00:14.3: WFPM_UMAC_PD_NOTIFICATION: 0x1f
[ 16.445599] iwlwifi 0000:00:14.3: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[ 16.445608] iwlwifi 0000:00:14.3: WFPM_AUTH_KEY_0: 0x90
[ 16.445659] iwlwifi 0000:00:14.3: CNVI_SCU_SEQ_DATA_DW9: 0x0
[ 16.446792] iwlwifi 0000:00:14.3: RFIm is deactivated, reason = 4
[ 16.508289] iwlwifi 0000:00:14.3: Registered PHC clock: iwlwifi-PTP, with index: 0
[ 16.740469] iwlwifi 0000:00:14.3: timeout waiting for FW reset ACK (inta_hw=0x0)
[ 16.740571] iwlwifi 0000:00:14.3: Start IWL Error Log Dump:
[ 16.740572] iwlwifi 0000:00:14.3: Transport status: 0x0000004A, valid: 6
[ 16.740574] iwlwifi 0000:00:14.3: Loaded firmware version: 77.f92b5fed.0 so-a0-jf-b0-77.ucode
[ 16.740576] iwlwifi 0000:00:14.3: 0x00000084 | NMI_INTERRUPT_UNKNOWN
[ 16.740577] iwlwifi 0000:00:14.3: 0x000002F0 | trm_hw_status0
[ 16.740578] iwlwifi 0000:00:14.3: 0x00000000 | trm_hw_status1
[ 16.740579] iwlwifi 0000:00:14.3: 0x004D2A06 | branchlink2
[ 16.740580] iwlwifi 0000:00:14.3: 0x004C92BE | interruptlink1
[ 16.740581] iwlwifi 0000:00:14.3: 0x004C92BE | interruptlink2
[ 16.740582] iwlwifi 0000:00:14.3: 0x00011F5A | data1
[ 16.740583] iwlwifi 0000:00:14.3: 0x01000000 | data2
[ 16.740583] iwlwifi 0000:00:14.3: 0x00000000 | data3
[ 16.740584] iwlwifi 0000:00:14.3: 0x00000000 | beacon time
[ 16.740585] iwlwifi 0000:00:14.3: 0x00023123 | tsf low
[ 16.740586] iwlwifi 0000:00:14.3: 0x00000000 | tsf hi
[ 16.740587] iwlwifi 0000:00:14.3: 0x00000000 | time gp1
[ 16.740588] iwlwifi 0000:00:14.3: 0x0002E487 | time gp2
[ 16.740588] iwlwifi 0000:00:14.3: 0x00000001 | uCode revision type
[ 16.740589] iwlwifi 0000:00:14.3: 0x0000004D | uCode version major
[ 16.740590] iwlwifi 0000:00:14.3: 0xF92B5FED | uCode version minor
[ 16.740591] iwlwifi 0000:00:14.3: 0x00000370 | hw version
[ 16.740592] iwlwifi 0000:00:14.3: 0x00480002 | board version
[ 16.740593] iwlwifi 0000:00:14.3: 0x805BFF00 | hcmd
[ 16.740593] iwlwifi 0000:00:14.3: 0x00020000 | isr0
[ 16.740594] iwlwifi 0000:00:14.3: 0x00000000 | isr1
[ 16.740595] iwlwifi 0000:00:14.3: 0x48F04802 | isr2
[ 16.740596] iwlwifi 0000:00:14.3: 0x00C3000C | isr3
[ 16.740597] iwlwifi 0000:00:14.3: 0x00000000 | isr4
[ 16.740597] iwlwifi 0000:00:14.3: 0x001C0148 | last cmd Id
[ 16.740604] iwlwifi 0000:00:14.3: 0x00011F5A | wait_event
[ 16.740605] iwlwifi 0000:00:14.3: 0x00000000 | l2p_control
[ 16.740606] iwlwifi 0000:00:14.3: 0x00000000 | l2p_duration
[ 16.740607] iwlwifi 0000:00:14.3: 0x00000000 | l2p_mhvalid
[ 16.740608] iwlwifi 0000:00:14.3: 0x00000000 | l2p_addr_match
[ 16.740609] iwlwifi 0000:00:14.3: 0x00000018 | lmpm_pmg_sel
[ 16.740609] iwlwifi 0000:00:14.3: 0x00000000 | timestamp
[ 16.740610] iwlwifi 0000:00:14.3: 0x00001840 | flow_handler
[ 16.740658] iwlwifi 0000:00:14.3: 0x00000000 | ADVANCED_SYSASSERT
[ 16.740664] iwlwifi 0000:00:14.3: 0x00000000 | umac branchlink1
[ 16.740665] iwlwifi 0000:00:14.3: 0x00000000 | umac branchlink2
[ 16.740666] iwlwifi 0000:00:14.3: 0x00000000 | umac interruptlink1
[ 16.740666] iwlwifi 0000:00:14.3: 0x00000000 | umac interruptlink2
[ 16.740667] iwlwifi 0000:00:14.3: 0x00000000 | umac data1
[ 16.740668] iwlwifi 0000:00:14.3: 0x00000000 | umac data2
[ 16.740669] iwlwifi 0000:00:14.3: 0x00000000 | umac data3
[ 16.740670] iwlwifi 0000:00:14.3: 0x00000000 | umac major
[ 16.740670] iwlwifi 0000:00:14.3: 0x00000000 | umac minor
[ 16.740671] iwlwifi 0000:00:14.3: 0x00000000 | frame pointer
[ 16.740672] iwlwifi 0000:00:14.3: 0x00000000 | stack pointer
[ 16.740673] iwlwifi 0000:00:14.3: 0x00000000 | last host cmd
[ 16.740673] iwlwifi 0000:00:14.3: 0x00000000 | isr status reg
[ 16.740709] iwlwifi 0000:00:14.3: IML/ROM dump:
[ 16.740709] iwlwifi 0000:00:14.3: 0x00000B03 | IML/ROM error/state
[ 16.740718] iwlwifi 0000:00:14.3: 0x00004F71 | IML/ROM data1
[ 16.740727] iwlwifi 0000:00:14.3: 0x00000090 | IML/ROM WFPM_AUTH_KEY_0
[ 16.740733] iwlwifi 0000:00:14.3: Fseq Registers:
[ 16.740736] iwlwifi 0000:00:14.3: 0x60000000 | FSEQ_ERROR_CODE
[ 16.740741] iwlwifi 0000:00:14.3: 0x80330000 | FSEQ_TOP_INIT_VERSION
[ 16.740782] iwlwifi 0000:00:14.3: 0x00010009 | FSEQ_CNVIO_INIT_VERSION
[ 16.740785] iwlwifi 0000:00:14.3: 0x0000A384 | FSEQ_OTP_VERSION
[ 16.740787] iwlwifi 0000:00:14.3: 0x3DC6AF7D | FSEQ_TOP_CONTENT_VERSION
[ 16.740790] iwlwifi 0000:00:14.3: 0x4552414E | FSEQ_ALIVE_TOKEN
[ 16.740793] iwlwifi 0000:00:14.3: 0x00080400 | FSEQ_CNVI_ID
[ 16.740795] iwlwifi 0000:00:14.3: 0x01300202 | FSEQ_CNVR_ID
[ 16.740798] iwlwifi 0000:00:14.3: 0x00080400 | CNVI_AUX_MISC_CHIP
[ 16.740803] iwlwifi 0000:00:14.3: 0x01300202 | CNVR_AUX_MISC_CHIP
[ 16.740808] iwlwifi 0000:00:14.3: 0x0000485B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
[ 16.740863] iwlwifi 0000:00:14.3: 0x0BADCAFE | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
[ 16.740866] iwlwifi 0000:00:14.3: 0x00010009 | FSEQ_PREV_CNVIO_INIT_VERSION
[ 16.740868] iwlwifi 0000:00:14.3: 0x00330000 | FSEQ_WIFI_FSEQ_VERSION
[ 16.740871] iwlwifi 0000:00:14.3: 0x00330000 | FSEQ_BT_FSEQ_VERSION
[ 16.740874] iwlwifi 0000:00:14.3: 0x00000122 | FSEQ_CLASS_TP_VERSION
[ 16.740882] iwlwifi 0000:00:14.3: UMAC CURRENT PC: 0x8047e450
[ 16.740885] iwlwifi 0000:00:14.3: LMAC1 CURRENT PC: 0xd0
[ 16.740888] iwlwifi 0000:00:14.3: WRT: Collecting data: ini trigger 4 fired (delay=0ms).
[ 17.306531] iwlwifi 0000:00:14.3: WFPM_UMAC_PD_NOTIFICATION: 0x1f
[ 17.306581] iwlwifi 0000:00:14.3: WFPM_LMAC2_PD_NOTIFICATION: 0x1f
[ 17.306590] iwlwifi 0000:00:14.3: WFPM_AUTH_KEY_0: 0x90
[ 17.306600] iwlwifi 0000:00:14.3: CNVI_SCU_SEQ_DATA_DW9: 0x0
[ 17.307842] iwlwifi 0000:00:14.3: RFIm is deactivated, reason = 4

It seems that the chip uses the iwlwifi kernel module with the iwlwifi-so-a0-jf-b0-77.ucode firmware. opkg has the kmod-iwlwifi package for the iwlwifi kernel module, but opkg doesn't contain any packages for the correct firmware--I know this because I installed ALL the iwlwifi-firmware-* packages without the Wi-Fi working (this should probably be a package added to the official repository).

I then manually copied the firmware from the Linux firmware repository and put it in the OpenWRT directory /lib/firmware/iwlwifi-so-a0-jf-b0-77.ucode. After rebooting, the Wi-Fi device showed up in LuCI (Network > Wireless). radio0 worked as expected--able to scan and make new networks. However, the networks failed to become usable access points. All the options, modes, enabling/disabling, etc. worked, it's just that the "Current power" was always at 0dBm.

No matter what I did, the "Current power" was always at 0dBm.

Intel wifi only support 802.11n in AP mode.

I changed the operating frequency to:
Mode: N
Band: 5 GHz
Channel: auto
Width: 20 MHz

But it still doesn't work.

Try 802.11n at 2.4GHz.

1 Like

It still doesn't work.

Just to clarify, Intel wireless is explicitly not made for AP mode. While they've 'recently' (I'm not 100% if that even covers AC9650) gained some very basic AP support as a side effect of p2p operations (for interacting with android), this is still largely untested, buggy and very limited in a number of ways (most importantly not supporting AP mode on 5 GHz at all). Sadly due to this being a CNVio M.2 port, it's probably not possible to replace the WLAN card with a better PCIe based one either. The best course of action would probably be to use this as a wired-only router and using (even-) a (cheap) plastic wifi router as AP with OpenWrt.

2 Likes

So this is simply a hardware limitation?

This device has an M.2 M-Key for NVMe SSDs; if I use an M-Key to A/E-Key adapter and then plug a Wi-Fi card into that, will that work (assuming the card is compatible with OpenWRT)?

I'm just trying to keep the overall package small--I know that I'll get better results if I connect a separate AP to the device.

1 Like

Long story short: yes.
iw list will give you the card capabilities (Supported interface modes). Check for AP.

My main router is an x86 device, and I had a wifi card in it. it was very hot, even if I don't use wifi (I use it moderatly). So I got rid of the card and use a separate AP. Consider the price of a new card + nvme adapter, you are close (if not >) to the an AP price.

2 Likes

Thank you; this answers a few questions of mine.

Out of curiosity, I ran iw list on the device to see if AP mode was supported--it says it is, but I assume that's wrong.

output of 'iw list' on the device

Wiphy phy0
wiphy index: 0
max # scan SSIDs: 20
max scan IEs length: 413 bytes
max # sched scan SSIDs: 20
max # match sets: 8
Retry short limit: 7
Retry long limit: 4
Coverage class: 0 (up to 0m)
Device supports AP-side u-APSD.
Device supports T-DLS.
Available Antennas: TX 0x3 RX 0x3
Configured Antennas: TX 0x3 RX 0x3
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* P2P-client
* P2P-GO
* P2P-device
Band 1:
Capabilities: 0x19ef
RX LDPC
HT20/HT40
SM Power Save disabled
RX HT20 SGI
RX HT40 SGI
TX STBC
RX STBC 1-stream
Max AMSDU length: 7935 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 4 usec (0x05)
HT Max RX data rate: 300 Mbps
HT TX/RX MCS rate indexes supported: 0-15
Frequencies:
* 2412.0 MHz [1] (22.0 dBm)
* 2417.0 MHz [2] (22.0 dBm)
* 2422.0 MHz [3] (22.0 dBm)
* 2427.0 MHz [4] (22.0 dBm)
* 2432.0 MHz [5] (22.0 dBm)
* 2437.0 MHz [6] (22.0 dBm)
* 2442.0 MHz [7] (22.0 dBm)
* 2447.0 MHz [8] (22.0 dBm)
* 2452.0 MHz [9] (22.0 dBm)
* 2457.0 MHz [10] (22.0 dBm)
* 2462.0 MHz [11] (22.0 dBm)
* 2467.0 MHz [12] (22.0 dBm)
* 2472.0 MHz [13] (22.0 dBm)
* 2484.0 MHz [14] (disabled)
Band 2:
Capabilities: 0x19ef
RX LDPC
HT20/HT40
SM Power Save disabled
RX HT20 SGI
RX HT40 SGI
TX STBC
RX STBC 1-stream
Max AMSDU length: 7935 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 4 usec (0x05)
HT Max RX data rate: 300 Mbps
HT TX/RX MCS rate indexes supported: 0-15
VHT Capabilities (0x039071f6):
Max MPDU length: 11454
Supported Channel Width: 160 MHz
RX LDPC
short GI (80 MHz)
short GI (160/80+80 MHz)
TX STBC
SU Beamformee
MU Beamformee
VHT RX MCS set:
1 streams: MCS 0-9
2 streams: MCS 0-9
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
VHT RX highest supported: 0 Mbps
VHT TX MCS set:
1 streams: MCS 0-9
2 streams: MCS 0-9
3 streams: not supported
4 streams: not supported
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
VHT TX highest supported: 0 Mbps
VHT extended NSS: supported
Frequencies:
* 5180.0 MHz [36] (22.0 dBm) (no IR)
* 5200.0 MHz [40] (22.0 dBm) (no IR)
* 5220.0 MHz [44] (22.0 dBm) (no IR)
* 5240.0 MHz [48] (22.0 dBm) (no IR)
* 5260.0 MHz [52] (22.0 dBm) (no IR, radar detection)
* 5280.0 MHz [56] (22.0 dBm) (no IR, radar detection)
* 5300.0 MHz [60] (22.0 dBm) (no IR, radar detection)
* 5320.0 MHz [64] (22.0 dBm) (no IR, radar detection)
* 5340.0 MHz [68] (disabled)
* 5360.0 MHz [72] (disabled)
* 5380.0 MHz [76] (disabled)
* 5400.0 MHz [80] (disabled)
* 5420.0 MHz [84] (disabled)
* 5440.0 MHz [88] (disabled)
* 5460.0 MHz [92] (disabled)
* 5480.0 MHz [96] (disabled)
* 5500.0 MHz [100] (22.0 dBm) (no IR, radar detection)
* 5520.0 MHz [104] (22.0 dBm) (no IR, radar detection)
* 5540.0 MHz [108] (22.0 dBm) (no IR, radar detection)
* 5560.0 MHz [112] (22.0 dBm) (no IR, radar detection)
* 5580.0 MHz [116] (22.0 dBm) (no IR, radar detection)
* 5600.0 MHz [120] (22.0 dBm) (no IR, radar detection)
* 5620.0 MHz [124] (22.0 dBm) (no IR, radar detection)
* 5640.0 MHz [128] (22.0 dBm) (no IR, radar detection)
* 5660.0 MHz [132] (22.0 dBm) (no IR, radar detection)
* 5680.0 MHz [136] (22.0 dBm) (no IR, radar detection)
* 5700.0 MHz [140] (22.0 dBm) (no IR, radar detection)
* 5720.0 MHz [144] (22.0 dBm) (no IR, radar detection)
* 5745.0 MHz [149] (22.0 dBm) (no IR)
* 5765.0 MHz [153] (22.0 dBm) (no IR)
* 5785.0 MHz [157] (22.0 dBm) (no IR)
* 5805.0 MHz [161] (22.0 dBm) (no IR)
* 5825.0 MHz [165] (22.0 dBm) (no IR)
* 5845.0 MHz [169] (disabled)
* 5865.0 MHz [173] (disabled)
* 5885.0 MHz [177] (disabled)
* 5905.0 MHz [181] (disabled)
valid interface combinations:
* #{ managed } <= 1, #{ P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
total <= 3, #channels <= 2
* #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
total <= 3, #channels <= 1
HT Capability overrides:
* MCS: ff ff ff ff ff ff ff ff ff ff
* maximum A-MSDU length
* supported channel width
* short GI for 40 MHz
* max A-MPDU length exponent
* min MPDU start spacing
max # scan plans: 2
max scan plan interval: 65535
max scan plan iterations: 254
Supported extended features:
* [ VHT_IBSS ]: VHT-IBSS
* [ RRM ]: RRM
* [ MU_MIMO_AIR_SNIFFER ]: MU-MIMO sniffer
* [ SCAN_START_TIME ]: scan start timestamp
* [ BSS_PARENT_TSF ]: BSS last beacon/probe TSF
* [ BEACON_RATE_LEGACY ]: legacy beacon rate setting
* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
* [ FILS_MAX_CHANNEL_TIME ]: FILS max channel attribute override with dwell time
* [ ACCEPT_BCAST_PROBE_RESP ]: accepts broadcast probe response
* [ OCE_PROBE_REQ_HIGH_TX_RATE ]: probe request TX at high rate (at least 5.5Mbps)
* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
* [ TXQS ]: FQ-CoDel-enabled intermediate TXQs
* [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
* [ ENABLE_FTM_RESPONDER ]: enable FTM (Fine Time Measurement) responder
* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
* [ PROTECTED_TWT ]: protected Target Wake Time (TWT) support
* [ DEL_IBSS_STA ]: deletion of IBSS station support
* [ BEACON_PROTECTION_CLIENT ]: beacon prot. for clients support
* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support
* [ PROT_RANGE_NEGO_AND_MEASURE ]: support for MFP in range measurement negotiation/procedure
* [ POWERED_ADDR_CHANGE ]: can change MAC address while up
* [ DFS_CONCURRENT ]: DFS channel use under concurrent DFS master
* [ SPP_AMSDU_SUPPORT ]: SPP A-MSDU support
Peer measurement (PMSR)
Max peers: 5
REPORT_AP_TSF
RANDOMIZE_MAC_ADDR
FTM (Fine time measurement or Flight time measurement)
Preambles: LEGACY HT VHT
Bandwidth: 20_NOHT 20 40 80 160
ASAP
NON_ASAP
REQ_LCI
REQ_CIVICLOC
TRIGGER_BASED
NON_TRIGGER_BASED

I didn't dare to write it in the previous message, but I feared this. Fact is that intel cards are not meant for AP, even if AP is displayed. I remember having the same issue a couple of years ago. At last I didn't remember if it's a SW or HW problem, or a voluntary policy from Intel.

So after playing with it more, I got it to work; I changed the operating frequency to:
Mode: N
Band: 2.4 GHz
Channel: <anything except "auto">
Width: 20 MHz

The only thing I changed was the channel; for some reason, "auto" doesn't work.

1 Like

I forgot to mention that it doesn't work in 5GHz band (see @slh 's comment about this).

This is true, but I wonder why it doesn't work when the channel is set to "auto".

Asked intel ?

2 Likes

I wouldn't think to ask them--I figured this is an OpenWrt issue.

It's their code running in Linux, OpenWRT uses whatever's in the kernel.

1 Like

I made a new issue on the Linux kernel's Bugzilla:
https://bugzilla.kernel.org/show_bug.cgi?id=220532

For now, the following solution works:

Honestly, this is known for years. I don't know if creating an issue for this is relevant.

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