Git Product home page Git Product logo

Comments (45)

geerlingguy avatar geerlingguy commented on May 5, 2024 3

The card works great! Working on a short video now just to show the process of upgrading the Dell card.

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024 1

In my cross-compile environment:

$ nano iwlwifi.patch
(paste in contents of the previous comment patch)

$ git apply -v iwlwifi.patch
Checking patch drivers/net/wireless/intel/iwlwifi/mvm/fw.c...
Hunk #1 succeeded at 1367 (offset 256 lines).
Applied patch drivers/net/wireless/intel/iwlwifi/mvm/fw.c cleanly.

Note: that patch causes the following warning to emit during compilation:

  CC [M]  drivers/net/wireless/intel/iwlwifi/mvm/fw.o
drivers/net/wireless/intel/iwlwifi/mvm/fw.c:128:12: warning: ‘iwl_configure_rxq’ defined but not used [-Wunused-functio]
 static int iwl_configure_rxq(struct iwl_mvm *mvm)
            ^~~~~~~~~~~~~~~~~

Recompiling the kernel the 18th time this week :D

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024 1

Both my Mac and Dell are laptops, and I just realized the Dell has a replaceable WiFi module—so I just ordered a AX200NGW Wireless Card in M.2/NGFF, and it's coming tomorrow.

Getting ready to do a little surgery on my XPS 13 again (I upgraded the SSD a couple years ago), and I'll let you know how it goes. It looks like iperf is also available on Windows, so I'll have to see what happens! (Totally unfamiliar with Windows' networking stack since the last time I did anything networking-related was probably around the time Windows NT was the new hotness).

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024 1

Heh. This is probably the most expensive of all the tests so far. I figured...

  • I'm going to be upgrading my home network to 10G soon (at least my office drop).
  • I now have two 802.11ax devices.
  • I might as well upgrade my WiFi router for the time when I inevitably get an M1 Mac that has built-in WiFi 6.

So I ran and grabbed an ASUS RT-AX86U AX5700 WiFi 6 router, which is not the top of the heap, and is only dual band... but is better than my older ac router, and has a 2.5 Gbps LAN uplink port (which can be swapped for the WAN port—though here in St. Louis it'll probably be 50 years before we end up getting gigabit ethernet to the home!). I installed it, got it configured, and now I'm planning on doing some more testing from 10G wired to AX wireless on both my Dell laptop and the CM4.

But that has to wait a bit as I'm trying to finish up my NAS explorations with the SATA card first!

from raspberry-pi-pcie-devices.

Dygear avatar Dygear commented on May 5, 2024 1

@geerlingguy We need to stop running into each other like this. People will talk.

Yeah, I'm actually having the same problem as you had here but on a Razer Blade Stealth that I'm using while waiting for my System76 laptop be be delivered. I really don't want to have to recompile the Kernel as you had done here. Surely that shouldn't be the solution given the fact that I'm ...

  1. On an x86_64 platform.
  2. Should therefore not have a customer kernel from the Pi foundation that's stripped down.
  3. Did all of the things that you short of recompiling the kernel and yet here I am and it's still not working.
    And yet here I am anyway trying to figure at this problem as well. I don't think the AX200 platform cards are as Linux friendly as they seem to claim.

Will update once I've got this working.

from raspberry-pi-pcie-devices.

st0nedB avatar st0nedB commented on May 5, 2024 1

Hey, just stumbled across this after watching your latest video! Regarding the testing of raw 802.11ax performance with iperf and ASUS network gear discussed above:
Why not throw Merlin WRT on an ASUS router, enable Entware, then install and run iperf server on the router? This way you could exclude the wired connection (which, as you said, might be a bottleneck).
Just did a quick test with my Phone and RT88AX and got around 900 MBit/s without any further optimizations at a reasonable distance (some meters). Steps are quite simple.

  1. Download and install Merlin WRT [1], which is a simple as upgrading the default Asus firmware.
  2. Plug a USB drive into the router, enable Entware by running the included entware-setup.sh or use amtm maintained by [2] (depending how much extras you want to throw on your router, see below).
  3. Install iperf3 via opkg package manager with opkg install iperf3
  4. Run iperf3 -s, profit!

If you are using Asus network gear, you might be able to make use of some other community-developed tools running directly on the router (adblocking, improved firewalls, ...).

[1] - MerlinWRT
[2] - amtm

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024
$ sudo lspci -vvv
...
01:00.0 Network controller: Intel Corporation Device 2723 (rev 1a)
	Subsystem: Intel Corporation Device 0084
	Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 0
	Region 0: Memory at 600000000 (64-bit, non-prefetchable) [disabled] [size=16K]
	Capabilities: [c8] Power Management version 3
		Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
		Address: 0000000000000000  Data: 0000
	Capabilities: [40] Express (v2) Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 unlimited
			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0.000W
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd+ ExtTag- PhantFunc- AuxPwr+ NoSnoop+ FLReset-
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L1, Exit Latency L0s <4us, L1 <8us
			ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range B, TimeoutDis+, LTR+, OBFF Via WAKE#
		DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis-, LTR-, OBFF Disabled
		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance De-emphasis: -6dB
		LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
			 EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
	Capabilities: [80] MSI-X: Enable- Count=16 Masked-
		Vector table: BAR=0 offset=00002000
		PBA: BAR=0 offset=00003000
	Capabilities: [100 v1] Advanced Error Reporting
		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
	Capabilities: [14c v1] Latency Tolerance Reporting
		Max snoop latency: 0ns
		Max no snoop latency: 0ns
	Capabilities: [154 v1] L1 PM Substates
		L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+ L1_PM_Substates+
			  PortCommonModeRestoreTime=30us PortTPowerOnTime=18us
		L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
			   T_CommonMode=0us LTR1.2_Threshold=0ns
		L1SubCtl2: T_PwrOn=10us

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Rebuilding the kernel, here's where the driver is according to menuconfig:

 Symbol: IWLWIFI [=n]                                                                                            │   
  │ Type  : tristate                                                                                                │   
  │ Prompt: Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi)                           │   
  │   Location:                                                                                                     │   
  │     -> Device Drivers                                                                                           │   
  │       -> Network device support (NETDEVICES [=y])                                                               │   
  │         -> Wireless LAN (WLAN [=y])                                                                             │   
  │ (1)       -> Intel devices (WLAN_VENDOR_INTEL [=y])                                                             │   
  │   Defined at drivers/net/wireless/intel/iwlwifi/Kconfig:2                                                       │   
  │   Depends on: NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_INTEL [=y] && PCI [=y] && HAS_IOMEM [=y] && CFG80211  │   
  │   Selects: FW_LOADER [=y] 

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

From dmesg:

[    0.900858] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[    0.900892] brcm-pcie fd500000.pcie:   No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
[    0.900966] brcm-pcie fd500000.pcie:      MEM 0x0600000000..0x0603ffffff -> 0x00f8000000
[    0.901044] brcm-pcie fd500000.pcie:   IB MEM 0x0000000000..0x00ffffffff -> 0x0100000000
[    0.932348] brcm-pcie fd500000.pcie: link up, 5 GT/s x1 (SSC)
[    0.932656] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
[    0.932685] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.932711] pci_bus 0000:00: root bus resource [mem 0x600000000-0x603ffffff] (bus address [0xf8000000-0xfbffffff])
[    0.932779] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400
[    0.933008] pci 0000:00:00.0: PME# supported from D0 D3hot
[    0.936621] pci 0000:00:00.0: bridge configuration invalid ([bus ff-ff]), reconfiguring
[    0.936846] pci 0000:01:00.0: [8086:2723] type 00 class 0x028000
[    0.936945] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
[    0.937231] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    0.940708] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    0.940759] pci 0000:00:00.0: BAR 8: assigned [mem 0x600000000-0x6000fffff]
[    0.940790] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600003fff 64bit]
[    0.940841] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.940869] pci 0000:00:00.0:   bridge window [mem 0x600000000-0x6000fffff]

So it seems to init correctly, but then when the driver loads:

[    3.925098] Intel(R) Wireless WiFi driver for Linux
[    3.925112] Copyright(c) 2003- 2015 Intel Corporation
[    3.925532] pci 0000:00:00.0: enabling device (0000 -> 0002)
[    3.925563] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)
[    3.929671] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-50.ucode failed with error -2
[    3.929760] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-49.ucode failed with error -2
[    3.929824] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-48.ucode failed with error -2
[    3.929884] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-47.ucode failed with error -2
[    3.929944] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-46.ucode failed with error -2
[    3.930006] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-45.ucode failed with error -2
[    3.930064] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-44.ucode failed with error -2
[    3.930123] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-43.ucode failed with error -2
[    3.930180] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-42.ucode failed with error -2
[    3.930354] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-41.ucode failed with error -2
[    3.930418] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-40.ucode failed with error -2
[    3.930477] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-39.ucode failed with error -2
[    3.930495] iwlwifi 0000:01:00.0: no suitable firmware found!
[    3.930507] iwlwifi 0000:01:00.0: minimum version required: iwlwifi-cc-a0-39
[    3.930518] iwlwifi 0000:01:00.0: maximum version supported: iwlwifi-cc-a0-50
[    3.930527] iwlwifi 0000:01:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

Looks like I need to install some firmware...

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Looking at Intel's page https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi — it looks like it needs MVM (which I have installed, as well as the firmware linked in the table for Intel® Wi-Fi 6 AX200 160MHz.

$ wget https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi/iwlwifi-cc-46.3cfab8da.0.tgz
$ tar -xvzf iwlwifi-cc-46.3cfab8da.0.tgz
$ cd iwlwifi-cc-46.3cfab8da.0/
$ sudo cp iwlwifi-*.ucode /lib/firmware
$ sudo reboot

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Yikes, tons of error output, going to have to blacklist the module and load it manually to see what's going on...

$ sudo nano /etc/modprobe.d/blacklist-iwlwifi.conf
(contents of file below:)
blacklist iwlwifi

$ sudo reboot

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024
$ sudo modprobe iwlwifi

Then concurrently, dmesg starts spewing:

[   49.784664] Intel(R) Wireless WiFi driver for Linux
[   49.784677] Copyright(c) 2003- 2015 Intel Corporation
[   49.785037] pci 0000:00:00.0: enabling device (0000 -> 0002)
[   49.785064] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)
[   49.788534] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-50.ucode failed with error -2
[   49.788599] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-49.ucode failed with error -2
[   49.788654] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-48.ucode failed with error -2
[   49.788704] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-47.ucode failed with error -2
[   49.817473] iwlwifi 0000:01:00.0: loaded firmware version 46.3cfab8da.0 op_mode iwlmvm
[   49.923040] iwlwifi 0000:01:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
[   50.082225] iwlwifi 0000:01:00.0: base HW address: e0:d4:e8:49:ff:e8
[   50.097951] thermal thermal_zone1: failed to read out thermal zone (-61)
[   50.522448] iwlwifi 0000:01:00.0: Microcode SW error detected.  Restarting 0x2000000.
[   50.522555] iwlwifi 0000:01:00.0: Start IWL Error Log Dump:
[   50.522619] iwlwifi 0000:01:00.0: Status: 0x00000040, count: 6
[   50.522619] iwlwifi 0000:01:00.0: Loaded firmware version: 46.3cfab8da.0
[   50.522629] iwlwifi 0000:01:00.0: 0x00000071 | NMI_INTERRUPT_UMAC_FATAL    
[   50.522633] iwlwifi 0000:01:00.0: 0x00A0BEF5 | trm_hw_status0
[   50.522638] iwlwifi 0000:01:00.0: 0x00000000 | trm_hw_status1
[   50.522639] iwlwifi 0000:01:00.0: 0x004FC308 | branchlink2
[   50.522639] iwlwifi 0000:01:00.0: 0x004E8926 | interruptlink1
[   50.522639] iwlwifi 0000:01:00.0: 0x004E8926 | interruptlink2
[   50.522639] iwlwifi 0000:01:00.0: 0x00016F7E | data1
[   50.522639] iwlwifi 0000:01:00.0: 0x00001000 | data2
[   50.522660] iwlwifi 0000:01:00.0: 0xF0000008 | data3
[   50.522660] iwlwifi 0000:01:00.0: 0x00000000 | beacon time
[   50.522669] iwlwifi 0000:01:00.0: 0x0004DC44 | tsf low
[   50.522674] iwlwifi 0000:01:00.0: 0x00000000 | tsf hi
[   50.522679] iwlwifi 0000:01:00.0: 0x00000000 | time gp1
[   50.522679] iwlwifi 0000:01:00.0: 0x0004DC44 | time gp2
[   50.522679] iwlwifi 0000:01:00.0: 0x00000001 | uCode revision type
[   50.522691] iwlwifi 0000:01:00.0: 0x0000002E | uCode version major
[   50.522691] iwlwifi 0000:01:00.0: 0x3CFAB8DA | uCode version minor
[   50.522691] iwlwifi 0000:01:00.0: 0x00000340 | hw version
[   50.522703] iwlwifi 0000:01:00.0: 0x18C89000 | board version
[   50.522704] iwlwifi 0000:01:00.0: 0x800CF500 | hcmd
[   50.522704] iwlwifi 0000:01:00.0: 0xA0120000 | isr0
[   50.522715] iwlwifi 0000:01:00.0: 0x00000000 | isr1
[   50.522715] iwlwifi 0000:01:00.0: 0x08F00002 | isr2
[   50.522715] iwlwifi 0000:01:00.0: 0x00C0000C | isr3
[   50.522725] iwlwifi 0000:01:00.0: 0x00000000 | isr4
[   50.522728] iwlwifi 0000:01:00.0: 0x000301D1 | last cmd Id
[   50.522728] iwlwifi 0000:01:00.0: 0x00016F7E | wait_event
[   50.522728] iwlwifi 0000:01:00.0: 0x00000000 | l2p_control
[   50.522728] iwlwifi 0000:01:00.0: 0x00002820 | l2p_duration
[   50.522728] iwlwifi 0000:01:00.0: 0x00000000 | l2p_mhvalid
[   50.522728] iwlwifi 0000:01:00.0: 0x00000000 | l2p_addr_match
[   50.522752] iwlwifi 0000:01:00.0: 0x00000009 | lmpm_pmg_sel
[   50.522756] iwlwifi 0000:01:00.0: 0x16042142 | timestamp
[   50.522762] iwlwifi 0000:01:00.0: 0x00000828 | flow_handler
[   50.522856] iwlwifi 0000:01:00.0: Start IWL Error Log Dump:
[   50.522865] iwlwifi 0000:01:00.0: Status: 0x00000040, count: 7
[   50.522871] iwlwifi 0000:01:00.0: 0x20000034 | NMI_INTERRUPT_WDG
[   50.522873] iwlwifi 0000:01:00.0: 0x00000000 | umac branchlink1
[   50.522881] iwlwifi 0000:01:00.0: 0xC008B1C0 | umac branchlink2
[   50.522884] iwlwifi 0000:01:00.0: 0x8048BC5C | umac interruptlink1
[   50.522889] iwlwifi 0000:01:00.0: 0xC0084264 | umac interruptlink2
[   50.522894] iwlwifi 0000:01:00.0: 0x00000004 | umac data1
[   50.522901] iwlwifi 0000:01:00.0: 0xC0084264 | umac data2
[   50.522906] iwlwifi 0000:01:00.0: 0xDEADBEEF | umac data3
[   50.522909] iwlwifi 0000:01:00.0: 0x0000002E | umac major
[   50.522913] iwlwifi 0000:01:00.0: 0x3CFAB8DA | umac minor
[   50.522913] iwlwifi 0000:01:00.0: 0x0004DC2B | frame pointer
[   50.522921] iwlwifi 0000:01:00.0: 0xC08869B4 | stack pointer
[   50.522930] iwlwifi 0000:01:00.0: 0x0006050D | last host cmd
[   50.522933] iwlwifi 0000:01:00.0: 0x00000000 | isr status reg
[   50.522943] iwlwifi 0000:01:00.0: Fseq Registers:
[   50.522949] iwlwifi 0000:01:00.0: 0xE0000000 | FSEQ_ERROR_CODE
[   50.522955] iwlwifi 0000:01:00.0: 0x80290001 | FSEQ_TOP_INIT_VERSION
[   50.522959] iwlwifi 0000:01:00.0: 0x80050008 | FSEQ_CNVIO_INIT_VERSION
[   50.522959] iwlwifi 0000:01:00.0: 0x0000A503 | FSEQ_OTP_VERSION
[   50.522959] iwlwifi 0000:01:00.0: 0x80000003 | FSEQ_TOP_CONTENT_VERSION
[   50.522972] iwlwifi 0000:01:00.0: 0x4552414E | FSEQ_ALIVE_TOKEN
[   50.522978] iwlwifi 0000:01:00.0: 0x00100530 | FSEQ_CNVI_ID
[   50.522978] iwlwifi 0000:01:00.0: 0x00000532 | FSEQ_CNVR_ID
[   50.522978] iwlwifi 0000:01:00.0: 0x00100530 | CNVI_AUX_MISC_CHIP
[   50.522978] iwlwifi 0000:01:00.0: 0x00000532 | CNVR_AUX_MISC_CHIP
[   50.523005] iwlwifi 0000:01:00.0: 0x05B0905B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
[   50.523007] iwlwifi 0000:01:00.0: 0x0000025B | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
[   50.523126] iwlwifi 0000:01:00.0: Collecting data: trigger 2 fired.
[   50.523137] ieee80211 phy1: Hardware restart was requested
[   50.523161] iwlwifi 0000:01:00.0: FW error in SYNC CMD RFH_QUEUE_CONFIG_CMD
[   50.523167] CPU: 0 PID: 618 Comm: wpa_supplicant Tainted: G         C        5.4.75-v8+ #4
[   50.523173] Hardware name: Raspberry Pi Compute Module 4 Rev 1.0 (DT)
[   50.523177] Call trace:
[   50.523186]  dump_backtrace+0x0/0x148
[   50.523193]  show_stack+0x24/0x30
[   50.523197]  dump_stack+0xdc/0x158
[   50.523214]  iwl_trans_pcie_gen2_send_hcmd+0x490/0x498 [iwlwifi]
[   50.523255]  iwl_trans_send_cmd+0x68/0x108 [iwlwifi]
[   50.523289]  iwl_mvm_send_cmd+0x28/0x50 [iwlmvm]
[   50.523302]  iwl_configure_rxq+0x104/0x170 [iwlmvm]
[   50.523323]  iwl_mvm_up+0x3ec/0x698 [iwlmvm]
[   50.523340]  __iwl_mvm_mac_start+0x34/0x210 [iwlmvm]
[   50.523355]  iwl_mvm_mac_start+0x34/0x50 [iwlmvm]
[   50.523431]  drv_start+0x44/0x1c8 [mac80211]
[   50.523461]  ieee80211_do_open+0x37c/0x880 [mac80211]
[   50.523504]  ieee80211_open+0x4c/0x68 [mac80211]
[   50.523509]  __dev_open+0xfc/0x1a8
[   50.523509]  __dev_change_flags+0x16c/0x1d0
[   50.523516]  dev_change_flags+0x3c/0x78
[   50.523520]  devinet_ioctl+0x3f0/0x750
[   50.523524]  inet_ioctl+0x208/0x380
[   50.523529]  sock_do_ioctl+0x58/0x2c0
[   50.523533]  sock_ioctl+0x330/0x4d8
[   50.523534]  do_vfs_ioctl+0xc4/0xaa0
[   50.523542]  ksys_ioctl+0x84/0xb8
[   50.523545]  __arm64_sys_ioctl+0x28/0xc8
[   50.523550]  el0_svc_common.constprop.1+0x98/0x1a0
[   50.523554]  el0_svc_handler+0x34/0xa0
[   50.523560]  el0_svc+0x8/0x204
[   50.523610] iwlwifi 0000:01:00.0: Failed to configure RX queues: -5
[   50.523615] iwlwifi 0000:01:00.0: Firmware not running - cannot dump error
[   50.895687] iwlwifi 0000:01:00.0: Microcode SW error detected.  Restarting 0x2000000.
[   50.895816] iwlwifi 0000:01:00.0: Start IWL Error Log Dump:
[   50.895816] iwlwifi 0000:01:00.0: Status: 0x00000050, count: 6
[   50.895816] iwlwifi 0000:01:00.0: Loaded firmware version: 46.3cfab8da.0
[   50.895830] iwlwifi 0000:01:00.0: 0x00000071 | NMI_INTERRUPT_UMAC_FATAL    
[   50.895830] iwlwifi 0000:01:00.0: 0x00A03EF5 | trm_hw_status0
[   50.895830] iwlwifi 0000:01:00.0: 0x00000000 | trm_hw_status1
[   50.895830] iwlwifi 0000:01:00.0: 0x004FC308 | branchlink2
[   50.895830] iwlwifi 0000:01:00.0: 0x004E8926 | interruptlink1
[   50.895830] iwlwifi 0000:01:00.0: 0x004E8926 | interruptlink2
[   50.895830] iwlwifi 0000:01:00.0: 0x00016F7E | data1
[   50.895830] iwlwifi 0000:01:00.0: 0x00001000 | data2
[   50.895830] iwlwifi 0000:01:00.0: 0xF0000008 | data3
[   50.895830] iwlwifi 0000:01:00.0: 0x00000000 | beacon time
[   50.895830] iwlwifi 0000:01:00.0: 0x0004DEFD | tsf low
[   50.895830] iwlwifi 0000:01:00.0: 0x00000000 | tsf hi
[   50.895876] iwlwifi 0000:01:00.0: 0x00000000 | time gp1
[   50.895876] iwlwifi 0000:01:00.0: 0x0004DEFD | time gp2
[   50.895876] iwlwifi 0000:01:00.0: 0x00000001 | uCode revision type
[   50.895876] iwlwifi 0000:01:00.0: 0x0000002E | uCode version major
[   50.895876] iwlwifi 0000:01:00.0: 0x3CFAB8DA | uCode version minor
[   50.895876] iwlwifi 0000:01:00.0: 0x00000340 | hw version
[   50.895876] iwlwifi 0000:01:00.0: 0x18C89000 | board version
[   50.895876] iwlwifi 0000:01:00.0: 0x800BF500 | hcmd
[   50.895876] iwlwifi 0000:01:00.0: 0x80120000 | isr0
[   50.895913] iwlwifi 0000:01:00.0: 0x00000000 | isr1
[   50.895913] iwlwifi 0000:01:00.0: 0x08F00002 | isr2
[   50.895913] iwlwifi 0000:01:00.0: 0x00C0000C | isr3
[   50.895913] iwlwifi 0000:01:00.0: 0x00000000 | isr4
[   50.895929] iwlwifi 0000:01:00.0: 0x00000000 | last cmd Id
[   50.895929] iwlwifi 0000:01:00.0: 0x00016F7E | wait_event
[   50.895929] iwlwifi 0000:01:00.0: 0x00000000 | l2p_control
[   50.895929] iwlwifi 0000:01:00.0: 0x00002820 | l2p_duration
[   50.895929] iwlwifi 0000:01:00.0: 0x00000000 | l2p_mhvalid
[   50.895929] iwlwifi 0000:01:00.0: 0x00000000 | l2p_addr_match
[   50.895951] iwlwifi 0000:01:00.0: 0x00000009 | lmpm_pmg_sel
[   50.895956] iwlwifi 0000:01:00.0: 0x16042142 | timestamp
[   50.895956] iwlwifi 0000:01:00.0: 0x00000028 | flow_handler
[   50.895986] iwlwifi 0000:01:00.0: Start IWL Error Log Dump:
[   50.895986] iwlwifi 0000:01:00.0: Status: 0x00000050, count: 7
[   50.895986] iwlwifi 0000:01:00.0: 0x20000034 | NMI_INTERRUPT_WDG
[   50.895986] iwlwifi 0000:01:00.0: 0x00000000 | umac branchlink1
[   50.895986] iwlwifi 0000:01:00.0: 0xC008B1C0 | umac branchlink2
[   50.895986] iwlwifi 0000:01:00.0: 0x8048BC5C | umac interruptlink1
[   50.895986] iwlwifi 0000:01:00.0: 0xC0084264 | umac interruptlink2
[   50.895986] iwlwifi 0000:01:00.0: 0x00000004 | umac data1
[   50.895986] iwlwifi 0000:01:00.0: 0xC0084264 | umac data2
[   50.895986] iwlwifi 0000:01:00.0: 0xDEADBEEF | umac data3
[   50.895986] iwlwifi 0000:01:00.0: 0x0000002E | umac major
[   50.895986] iwlwifi 0000:01:00.0: 0x3CFAB8DA | umac minor
[   50.895986] iwlwifi 0000:01:00.0: 0x0004DEE6 | frame pointer
[   50.895986] iwlwifi 0000:01:00.0: 0xC08869B4 | stack pointer
[   50.895986] iwlwifi 0000:01:00.0: 0x0005050D | last host cmd
[   50.895986] iwlwifi 0000:01:00.0: 0x00000000 | isr status reg
[   50.896122] iwlwifi 0000:01:00.0: Fseq Registers:
[   50.896122] iwlwifi 0000:01:00.0: 0xE0000000 | FSEQ_ERROR_CODE
[   50.896131] iwlwifi 0000:01:00.0: 0x80290001 | FSEQ_TOP_INIT_VERSION
[   50.896131] iwlwifi 0000:01:00.0: 0x80050008 | FSEQ_CNVIO_INIT_VERSION
[   50.896131] iwlwifi 0000:01:00.0: 0x0000A503 | FSEQ_OTP_VERSION
[   50.896131] iwlwifi 0000:01:00.0: 0x80000003 | FSEQ_TOP_CONTENT_VERSION
[   50.896131] iwlwifi 0000:01:00.0: 0x4552414E | FSEQ_ALIVE_TOKEN
[   50.896131] iwlwifi 0000:01:00.0: 0x00100530 | FSEQ_CNVI_ID
[   50.896161] iwlwifi 0000:01:00.0: 0x00000532 | FSEQ_CNVR_ID
[   50.896161] iwlwifi 0000:01:00.0: 0x00100530 | CNVI_AUX_MISC_CHIP
[   50.896161] iwlwifi 0000:01:00.0: 0x00000532 | CNVR_AUX_MISC_CHIP
[   50.896177] iwlwifi 0000:01:00.0: 0x05B0905B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
[   50.896177] iwlwifi 0000:01:00.0: 0x0000025B | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
[   50.896189] iwlwifi 0000:01:00.0: Firmware error during reconfiguration - reprobe!
[   50.896216] iwlwifi 0000:01:00.0: FW error in SYNC CMD RFH_QUEUE_CONFIG_CMD
[   50.896227] CPU: 0 PID: 618 Comm: wpa_supplicant Tainted: G         C        5.4.75-v8+ #4
[   50.896227] Hardware name: Raspberry Pi Compute Module 4 Rev 1.0 (DT)
[   50.896234] Call trace:
[   50.896245]  dump_backtrace+0x0/0x148
[   50.896245] iwlwifi 0000:01:00.0: LED command failed: -5
[   50.896251]  show_stack+0x24/0x30
[   50.896251]  dump_stack+0xdc/0x158
[   50.896294]  iwl_trans_pcie_gen2_send_hcmd+0x490/0x498 [iwlwifi]
[   50.896305]  iwl_trans_send_cmd+0x68/0x108 [iwlwifi]
[   50.896318] iwlwifi 0000:01:00.0: LED command failed: -5
[   50.896341]  iwl_mvm_send_cmd+0x28/0x50 [iwlmvm]
[   50.896361]  iwl_configure_rxq+0x104/0x170 [iwlmvm]
[   50.896376]  iwl_mvm_up+0x3ec/0x698 [iwlmvm]
[   50.896391]  __iwl_mvm_mac_start+0x34/0x210 [iwlmvm]
[   50.896404]  iwl_mvm_mac_start+0x34/0x50 [iwlmvm]
[   50.896484]  drv_start+0x44/0x1c8 [mac80211]
[   50.896514]  ieee80211_do_open+0x37c/0x880 [mac80211]
[   50.896551]  ieee80211_open+0x4c/0x68 [mac80211]
[   50.896554]  __dev_open+0xfc/0x1a8
[   50.896557]  __dev_change_flags+0x16c/0x1d0
[   50.896562]  dev_change_flags+0x3c/0x78
[   50.896562]  devinet_ioctl+0x3f0/0x750
[   50.896562]  inet_ioctl+0x208/0x380
[   50.896562]  sock_do_ioctl+0x58/0x2c0
[   50.896562]  sock_ioctl+0x330/0x4d8
[   50.896562]  do_vfs_ioctl+0xc4/0xaa0
[   50.896586]  ksys_ioctl+0x84/0xb8
[   50.896586]  __arm64_sys_ioctl+0x28/0xc8
[   50.896586]  el0_svc_common.constprop.1+0x98/0x1a0
[   50.896586]  el0_svc_handler+0x34/0xa0
[   50.896586]  el0_svc+0x8/0x204
[   50.898495] iwlwifi 0000:01:00.0: Failed to configure RX queues: -5
[   51.002010] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-50.ucode failed with error -2
[   51.002036] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-49.ucode failed with error -2
[   51.002047] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-48.ucode failed with error -2
[   51.002075] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-47.ucode failed with error -2
[   51.006742] iwlwifi 0000:01:00.0: loaded firmware version 46.3cfab8da.0 op_mode iwlmvm
[   51.007659] iwlwifi 0000:01:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
[   51.166347] iwlwifi 0000:01:00.0: base HW address: e0:d4:e8:49:ff:e8
[   51.180362] thermal thermal_zone1: failed to read out thermal zone (-61)
[   51.598815] iwlwifi 0000:01:00.0: Microcode SW error detected.  Restarting 0x2000000.

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

First see:

[   50.097951] thermal thermal_zone1: failed to read out thermal zone (-61)

And just noting:

$ grep . /sys/class/thermal/*/*
/sys/class/thermal/thermal_zone0/available_policies:step_wise 
grep: /sys/class/thermal/thermal_zone0/hwmon0: Is a directory
/sys/class/thermal/thermal_zone0/integral_cutoff:0
/sys/class/thermal/thermal_zone0/k_d:0
/sys/class/thermal/thermal_zone0/k_i:0
/sys/class/thermal/thermal_zone0/k_po:0
/sys/class/thermal/thermal_zone0/k_pu:0
/sys/class/thermal/thermal_zone0/mode:enabled
/sys/class/thermal/thermal_zone0/offset:410040
/sys/class/thermal/thermal_zone0/passive:0
/sys/class/thermal/thermal_zone0/policy:step_wise
grep: /sys/class/thermal/thermal_zone0/power: Is a directory
/sys/class/thermal/thermal_zone0/slope:-487
grep: /sys/class/thermal/thermal_zone0/subsystem: Is a directory
/sys/class/thermal/thermal_zone0/sustainable_power:0
/sys/class/thermal/thermal_zone0/temp:46251
/sys/class/thermal/thermal_zone0/type:cpu-thermal

lol, there's an open bug from a few years back for this thermal issue: https://bugzilla.kernel.org/show_bug.cgi?id=201761

But moving on, I also see:

$ iw list
Wiphy phy288
  max # scan SSIDs: 20
  max scan IEs length: 365 bytes
  max # sched scan SSIDs: 20
  max # match sets: 11
  max # scan plans: 2
  max scan plan interval: 65535
  max scan plan iterations: 254
  Retry short limit: 7
  Retry long limit: 4
  Coverage class: 0 (up to 0m)
  Device supports RSN-IBSS.
  Device supports AP-side u-APSD.
  Device supports T-DLS.
  Supported Ciphers:
    * WEP40 (00-0f-ac:1)
    * WEP104 (00-0f-ac:5)
    * TKIP (00-0f-ac:2)
    * CCMP-128 (00-0f-ac:4)
    * GCMP-128 (00-0f-ac:8)
    * GCMP-256 (00-0f-ac:9)
    * CMAC (00-0f-ac:6)
    * GMAC-128 (00-0f-ac:11)
    * GMAC-256 (00-0f-ac:12)
  Available Antennas: TX 0 RX 0
  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
    Bitrates (non-HT):
      * 1.0 Mbps
      * 2.0 Mbps (short preamble supported)
      * 5.5 Mbps (short preamble supported)
      * 11.0 Mbps (short preamble supported)
      * 6.0 Mbps
      * 9.0 Mbps
      * 12.0 Mbps
      * 18.0 Mbps
      * 24.0 Mbps
      * 36.0 Mbps
      * 48.0 Mbps
      * 54.0 Mbps
    Frequencies:
      * 2412 MHz [1] (22.0 dBm)
      * 2417 MHz [2] (22.0 dBm)
      * 2422 MHz [3] (22.0 dBm)
      * 2427 MHz [4] (22.0 dBm)
      * 2432 MHz [5] (22.0 dBm)
      * 2437 MHz [6] (22.0 dBm)
      * 2442 MHz [7] (22.0 dBm)
      * 2447 MHz [8] (22.0 dBm)
      * 2452 MHz [9] (22.0 dBm)
      * 2457 MHz [10] (22.0 dBm)
      * 2462 MHz [11] (22.0 dBm)
      * 2467 MHz [12] (22.0 dBm)
      * 2472 MHz [13] (22.0 dBm)
      * 2484 MHz [14] (22.0 dBm)
  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
    Bitrates (non-HT):
      * 6.0 Mbps
      * 9.0 Mbps
      * 12.0 Mbps
      * 18.0 Mbps
      * 24.0 Mbps
      * 36.0 Mbps
      * 48.0 Mbps
      * 54.0 Mbps
    Frequencies:
      * 5180 MHz [36] (22.0 dBm)
      * 5200 MHz [40] (22.0 dBm)
      * 5220 MHz [44] (22.0 dBm)
      * 5240 MHz [48] (22.0 dBm)
      * 5260 MHz [52] (22.0 dBm)
      * 5280 MHz [56] (22.0 dBm)
      * 5300 MHz [60] (22.0 dBm)
      * 5320 MHz [64] (22.0 dBm)
      * 5340 MHz [68] (22.0 dBm)
      * 5360 MHz [72] (22.0 dBm)
      * 5380 MHz [76] (22.0 dBm)
      * 5400 MHz [80] (22.0 dBm)
      * 5420 MHz [84] (22.0 dBm)
      * 5440 MHz [88] (22.0 dBm)
      * 5460 MHz [92] (22.0 dBm)
      * 5480 MHz [96] (22.0 dBm)
      * 5500 MHz [100] (22.0 dBm)
      * 5520 MHz [104] (22.0 dBm)
      * 5540 MHz [108] (22.0 dBm)
      * 5560 MHz [112] (22.0 dBm)
      * 5580 MHz [116] (22.0 dBm)
      * 5600 MHz [120] (22.0 dBm)
      * 5620 MHz [124] (22.0 dBm)
      * 5640 MHz [128] (22.0 dBm)
      * 5660 MHz [132] (22.0 dBm)
      * 5680 MHz [136] (22.0 dBm)
      * 5700 MHz [140] (22.0 dBm)
      * 5720 MHz [144] (22.0 dBm)
      * 5745 MHz [149] (22.0 dBm)
      * 5765 MHz [153] (22.0 dBm)
      * 5785 MHz [157] (22.0 dBm)
      * 5805 MHz [161] (22.0 dBm)
      * 5825 MHz [165] (22.0 dBm)
      * 5845 MHz [169] (22.0 dBm)
      * 5865 MHz [173] (22.0 dBm)
      * 5885 MHz [177] (22.0 dBm)
      * 5905 MHz [181] (22.0 dBm)
  Supported commands:
     * new_interface
     * set_interface
     * new_key
     * start_ap
     * new_station
     * new_mpath
     * set_mesh_config
     * set_bss
     * authenticate
     * associate
     * deauthenticate
     * disassociate
     * join_ibss
     * join_mesh
     * remain_on_channel
     * set_tx_bitrate_mask
     * frame
     * frame_wait_cancel
     * set_wiphy_netns
     * set_channel
     * set_wds_peer
     * tdls_mgmt
     * tdls_oper
     * start_sched_scan
     * probe_client
     * set_noack_map
     * register_beacons
     * start_p2p_device
     * set_mcast_rate
     * connect
     * disconnect
     * channel_switch
     * set_qos_map
     * add_tx_ts
     * set_multicast_to_unicast
  Supported TX frame types:
     * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
     * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
     * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
     * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
     * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
     * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
     * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
     * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
  Supported RX frame types:
     * IBSS: 0x40 0xb0 0xc0 0xd0
     * managed: 0x40 0xd0
     * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
     * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
     * mesh point: 0xb0 0xc0 0xd0
     * P2P-client: 0x40 0xd0
     * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
     * P2P-device: 0x40 0xd0
  software interface modes (can always be added):
     * AP/VLAN
     * monitor
  valid interface combinations:
     * #{ managed } <= 1, #{ AP, P2P-client, P2P-GO } <= 1, #{ P2P-device } <= 1,
       total <= 3, #channels <= 2
  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
  Device supports TX status socket option.
  Device supports HT-IBSS.
  Device supports SAE with AUTHENTICATE command
  Device supports low priority scan.
  Device supports scan flush.
  Device supports per-vif TX power setting
  P2P GO supports CT window setting
  P2P GO supports opportunistic powersave setting
  Driver supports full state transitions for AP/GO clients
  Driver supports a userspace MPM
  Driver/device bandwidth changes during BSS lifetime (AP/GO mode)
  Device adds DS IE to probe requests
  Device can update TPC Report IE
  Device supports static SMPS
  Device supports dynamic SMPS
  Device supports WMM-AC admission (TSPECs)
  Device supports configuring vdev MAC-addr on create.
  Device supports randomizing MAC-addr in scans.
  Device supports randomizing MAC-addr in sched scans.
  Device supports randomizing MAC-addr in net-detect scans.
  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
    * [ SET_SCAN_DWELL ]: scan dwell setting
    * [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
    * [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
    * [ TXQS ]: FQ-CoDel-enabled intermediate TXQs

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

ip address shows:

443: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether e0:d4:e8:49:ff:e8 brd ff:ff:ff:ff:ff:ff

And every time the driver resets itself, it increments (now it's up to 464... waiting a few seconds, now it's 482...)

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Related? QubesOS/qubes-issues#5615

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Maybe this patch will help—that's where the error is coming from, anyways... https://lore.kernel.org/linux-wireless/[email protected]/T/#u

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
index 98263cd37944..943831c9b685 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -1111,15 +1111,6 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
 		goto error;

 	/* Init RSS configuration */
-	if (mvm->trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_22000) {
-		ret = iwl_configure_rxq(mvm);
-		if (ret) {
-			IWL_ERR(mvm, "Failed to configure RX queues: %d\n",
-				ret);
-			goto error;
-		}
-	}
-
 	if (iwl_mvm_has_new_rx_api(mvm)) {
 		ret = iwl_send_rss_cfg_cmd(mvm);
 		if (ret) {

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Well heck. What do you know?

$ dmesg
[   39.933592] Intel(R) Wireless WiFi driver for Linux
[   39.933606] Copyright(c) 2003- 2015 Intel Corporation
[   39.933984] pci 0000:00:00.0: enabling device (0000 -> 0002)
[   39.934010] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002)
[   39.937178] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-50.ucode failed with error -2
[   39.937242] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-49.ucode failed with error -2
[   39.937298] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-48.ucode failed with error -2
[   39.937348] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-cc-a0-47.ucode failed with error -2
[   39.966176] iwlwifi 0000:01:00.0: loaded firmware version 46.3cfab8da.0 op_mode iwlmvm
[   40.069057] iwlwifi 0000:01:00.0: Detected Intel(R) Wi-Fi 6 AX200 160MHz, REV=0x340
[   40.234560] iwlwifi 0000:01:00.0: base HW address: e0:d4:e8:49:ff:e8
[   40.259091] thermal thermal_zone1: failed to read out thermal zone (-61)

And:

$ ip addr
4: wlan1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether e0:d4:e8:49:ff:e8 brd ff:ff:ff:ff:ff:ff

The Pi seems much happier. Now, to connect to my WiFi...

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Hmm... this isn't super encouraging though:

root@raspberrypi:/home/pi# wpa_cli
wpa_cli v2.8-devel
Copyright (c) 2004-2019, Jouni Malinen <[email protected]> and contributors

This software may be distributed under the terms of the BSD license.
See README for more details.


Selected interface 'p2p-dev-wlan1'

Interactive mode

> scan
OK
> scan_results
bssid / frequency / signal level / flags / ssid
> 

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

But... after setting up config in wpa_supplicant.conf, I am seeing:

$ ip addr
...
4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether e0:d4:e8:49:ff:e8 brd ff:ff:ff:ff:ff:ff
    inet 10.0.100.211/24 brd 10.0.100.255 scope global dynamic noprefixroute wlan1
       valid_lft 86396sec preferred_lft 75596sec
    inet6 fe80::194d:561c:5428:3250/64 scope link 
       valid_lft forever preferred_lft forever

So... 🤷‍♂️

Let's get some performance testing!

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

On the Pi:

$ sudo apt install -y iperf
$ iperf -s

On my Mac:

$ iperf -c 10.0.100.211
------------------------------------------------------------
Client connecting to 10.0.100.211, TCP port 5001
TCP window size:  129 KByte (default)
------------------------------------------------------------
[  4] local 10.0.100.118 port 64560 connected with 10.0.100.211 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   784 MBytes   658 Mbits/sec

As I used to say in college: "Noice!"

Compared the the maximum 80 Mbits/sec I can get via the CM4's internal WiFi, even with an external antenna... that's rather speedy!

Edit: A few tests:

Run Result
1 658 Mbits/sec
2 686 Mbits/sec
3 666 Mbits/sec
Average 670 Mbits/sec

(For comparison, wired interface gives ~940 Mbits/sec.)

Edit 2: OOH... if I reverse the roles (Pi is client, Mac is server), I can pump through 928 Mbits/sec over WiFi! Nice—that's faster than I can get through my old Mac mini to my new MacBook pro...

Run Result
1 928 Mbits/sec
2 927 Mbits/sec
3 931 Mbits/sec
Average 929 Mbits/sec

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Dangit, now that I finally had some success I should probably make a video about it. But who has the time!?

I think the other thing I want to test and see how it works is using the PCIe splitter/switch with this WiFi card and my Samsung 970 EVO Plus, and see if I can max out the WiFi bandwidth and write a full ~650 Mbps (80 MB/sec) so we could have a worthy little WiFi-only NAS that still competes with a wired NAS (for general usage... not gonna be pumping ProRes RAW through one of these little dudes!).

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

atop output while the Pi is running the iperf server:

Screen Shot 2020-11-13 at 6 11 44 PM

So with all the defaults, ~675 Mbps while Pi is doing the serving, ~930 Mbps when not. It's gonna be interesting to see how real-world copies work on this, but I'll have to wait as dinner calls!

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

So... I was thinking, "hey, it would be a great idea to test this WiFi card on a real WiFi 6 network, using a router that works with a 10G network interface, allowing me to test the full throughput against my Mac over 10G wired network..."

Then I was glancing around at the (very few, so far) good WiFi 6 ax routers with 10G network ports, and they all cost $450+ and are out of stock pretty much everywhere. I was looking mostly at the ASUS RT-AX89X, mostly because I've stuck with ASUS wireless gear for like 5 years now and never had an issue... but it's out of stock everywhere.

So I'll stick with testing over my ASUS AC2900-based 802.11ac network for now.

I mean, getting 1 gig over my current network is nothing shabby, as that's also probably hitting the max throughput I've seen through two of my Macs (a 2016 MBP and a 2019 MBP) over the same network... Heck, maybe my Mac is the slower of the two devices in terms of raw potential throughput!

All that to say, I think the 'year of WiFi 6' in the Geerling household is not in 2020. Unless maybe I can get ASUS to sponsor a video (a video for a router, eh?).

from raspberry-pi-pcie-devices.

PixlRainbow avatar PixlRainbow commented on May 5, 2024

How much would it cost to just have a direct ad-hoc connection between two Wi-Fi 6 clients, instead of buying a router?

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

@PixlRainbow - I've been looking around unsuccessfully—does anyone make a WiFi 6 / ax adapter for ThunderBolt 3, USB-C/3.2, or any other connection besides internal/PCIe?

I don't have any other devices currently that support PCI express :(

from raspberry-pi-pcie-devices.

PixlRainbow avatar PixlRainbow commented on May 5, 2024

Your Mac is a laptop? Or a desktop? I'm guessing it's an older model that doesn't have WiFi 6 built in.
Some laptops and desktops may have a "WiFi card" slot which you may be able to install a WiFi 6 card into. But some newer devices aren't really made to allow end users to open them up and configure their hardware.

Unfortunately, it appears the speed of WiFi 6 doesn't really allow regular USB to be used, and there aren't direct thunderbolt WiFi adapters either, not even for older WiFi standards. I presume the manufacturers are assuming that the general thunderbolt user would already have wifi integrated in their device. I did find thunderbolt to PCIE adapters but they are still quite pricy.

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Upgraded the Dell, made a video: How to Upgrade a Dell XPS 13 to WiFi 6 (802.11ax).

from raspberry-pi-pcie-devices.

mo-g avatar mo-g commented on May 5, 2024

This is exceedingly interesting. So - similar to Danish Guy's project, I've also been thinking about how the Pi CM4 and recent kernel patches now make a Pi-based Laptop feasible. This suggests that the best way to implement Wi-Fi on such a device would actually not be through the CM4's SDIO chipset, but through a standard m.2 card.

I guess the ideal approach would be to design the laptop to allow an antenna cable to be routed to either a PCIe card or a Wireless CM4; and offer the former through one of those fancy m.2 slots with three screws that could take anything from a wifi card to an NVMe drive?

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

@mo-g yes, I think that would be ideal. Basically give the user some flexibility.

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Interesting... after upgrading my router, I retested everything today, and I can get 875-900 Mbps both ways, regardless of which host is the iperf3 server now.

Further testing is warranted—I now have a 10 GbE interface hooked up to my Mac, a 2.5 Gbps connection to my WiFi router, and a 10 GbE switch (though I'm not sure if it can drop to 2.5G on the router connection, so that'll have to be something I test later).

I'm guessing I could push more bandwidth through this card with my new router :-O

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Now that iperf3 has --bidir (see esnet/iperf#780), I should also do a test with that mode: iperf3 -c [ip address] --bidir

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Testing with the Merlin firmware:

  1. Downloaded beta version for AX86U from here: https://www.asuswrt-merlin.net/download
  2. Follow the Installation guide (basically update firmware to the downloaded version).
  3. Restart the router, verify things still work fine.

Screen Shot 2020-12-19 at 7 04 39 PM

Format a USB flash drive to set up Entware:

  1. Enable SSH in the router admin (I disabled password login, did LAN only, and added my pubkey).
  2. Log in with user@[router address]
  3. Make sure a USB flash drive (with nothing on it you care about) is plugged in.
  4. Run entware-setup.sh which runs amtm.
  5. Use option fd to format the attached USB drive.

(After formatting, the router reboots.) Now install Entware so you can install iperf3.

  1. Log back in via SSH.
  2. Run entware-setup.sh which runs amtm.
  3. Install Entware using option et.
  4. Install iperf3 via opkg: opkg install iperf3

Thanks again to @st0nedB for the suggestion! First quick run from my Mac over ac:

$ iperf3 -c 10.0.1.100
...
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec   673 MBytes   565 Mbits/sec                  sender
[  5]   0.00-10.00  sec   672 MBytes   564 Mbits/sec                  receiver

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Hmm... the version installed via opkg is:

# iperf3 --version
iperf 3.1.3

It looks like that's a fairly outdated version though, and doesn't support --bidir.

On my Mac:

$ iperf3 --version
iperf 3.9 (cJSON 1.7.13)

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Regular old iperf allows --dualtest:

$ iperf -c 10.0.100.1 --dualtest
...
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec  78.4 MBytes  65.5 Mbits/sec
[  7]  0.0-10.1 sec   556 MBytes   463 Mbits/sec

(Just noting these results and the ones above are from my Mac in a non-optimal location; can do better if I'm closer to the router. This is just me debugging the process.)

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

On the Pi:

iperf -c 10.0.100.1 --bind 10.0.100.211 --dualtest
...
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec   265 MBytes   222 Mbits/sec
[  4]  0.0-10.0 sec  1.40 GBytes  1.20 Gbits/sec

iperf3 from Pi to Router: 928 Mbits/sec (with --reverse, 1.34 Gbits/sec)

Monitoring with atop (sudo apt-get install -y atop):

Screen Shot 2020-12-19 at 8 02 05 PM

So the CPU isn't causing any bottleneck—it seems like this card can pump quite a few wireless bits through, beating even my MacBook Pro from a similar range! (The MBP gets ~900 Mbps in the same spot as the Pi).

I'm guessing I could tweak some things, move some things around, and get more, but 1.2+ Gbps on WiFi on the Pi is pretty darn toasty!

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Video posted: WiFi 6 on the Raspberry Pi CM4 makes it Fly! MORE THAN 1 Gbps!

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

And a blog post: WiFi 6 gets 1.34 Gbps on the Raspberry Pi CM4.

from raspberry-pi-pcie-devices.

christofer-f avatar christofer-f commented on May 5, 2024

Hi! I just stumbled over your excellent youtube channel.
I am thinking that it would be really cool to build an open-source python-based system for wifi 6 access points.

So here are my question...
Is it possible to query the wifi 6 card about:

  1. Users connected and there signal strength
  2. Disconnect a user
  3. Connect a user

If so then one could build a wifi system that automatically passes a connected user around between different access points.

Cisco sells these kind of systems so I thought that it would be fun to build an open source version.

I was thinking that you could build a rest like interface with fastapi to run on the rasberry and the control all ap:s from a webserver.

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

@christofer-f - It seems the AX200 might not be the best chip for the purpose (though it probably can be made to work). It would be cool to be able to do an open source setup like that, though!

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

All right, after going through another round of testing for the Intel AX200 Desktop Kit adapted by the MZHOU WiFi/BT adapter in #38, I'm going to re-run the benchmarks today, this time both with the wired network enabled and disabled, and see what kind of results I get:

First testing with iperf and --dualtest:

$ iperf -c 10.0.100.1 --bind 10.0.100.168 --dualtest
------------------------------------------------------------
Server listening on TCP port 5001
Binding to local address 10.0.100.168
TCP window size:  128 KByte (default)
------------------------------------------------------------
------------------------------------------------------------
Client connecting to 10.0.100.1, TCP port 5001
Binding to local address 10.0.100.168
TCP window size:  187 KByte (default)
------------------------------------------------------------
[  5] local 10.0.100.168 port 51947 connected with 10.0.100.1 port 5001
[  4] local 10.0.100.168 port 5001 connected with 10.0.100.1 port 53119
[ ID] Interval       Transfer     Bandwidth
[  5]  0.0-10.0 sec   237 MBytes   198 Mbits/sec
[  4]  0.0-10.0 sec  1.40 GBytes  1.19 Gbits/sec

Then with iperf3:

  • eth0 disabled (sudo ip link set eth0 down):
    • iperf3 from Pi to router: 436 Mbits/sec
    • iperf3 from router to Pi (--reverse): 1.07 Gbits/sec
  • eth0 enabled (sudo ip link set eth0 up):
    • iperf3 from Pi to router: 933 Mbits/sec
    • iperf3 from router to Pi (--reverse): 941 Gbits/sec

So... this card is not breaking the gigabit barrier (except for RX traffic from the router to the Pi), and I think it would be safe to say I can get better speeds than the same card in my Dell XPS 13 (likely due to the larger external antennae), but even my i9 MacBook Pro can get about the same speeds over 802.11ac (again, likely due to it's well-designed antennae).

Oopsie! I'll have to work on a correction video. Don't want to mislead people! See #38 for more speculation and links to reasons why this happened.

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Hmm...

$ iw dev wlan1 info
Interface wlan1
	ifindex 4
	wdev 0x1
	addr e0:d4:e8:49:ff:e8
	ssid geerling-acn
	type managed
	wiphy 0
	channel 149 (5745 MHz), width: 80 MHz, center1: 5775 MHz
	txpower 22.00 dBm
	multicast TXQ:
		qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
		0	0	0	0	0	0	0	0		0

It's using 80 MHz, why not 160 MHz?

Source: Dmitri Arekhta's comment indicated I might not be seeing the full potential of the AX200...

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

Closing issues where testing is at least mostly complete, to keep the issue queue tidy.

I'm going to move the rest of the testing of the AX200 with 80 vs 160 MHz over to #56.

from raspberry-pi-pcie-devices.

lealog avatar lealog commented on May 5, 2024

The URL for amazon is not working.

from raspberry-pi-pcie-devices.

geerlingguy avatar geerlingguy commented on May 5, 2024

@lealog - That's weird. Even if I go into my order history on Amazon, and click through the order link, it gives me a Page Not Found... I guess EDUP dropped the card or something :(

from raspberry-pi-pcie-devices.

belden avatar belden commented on May 5, 2024

What a fun repo to have found!

The Amazon link does work again now.

from raspberry-pi-pcie-devices.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.