Comments (45)
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.
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.
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.
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.
@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 ...
- On an x86_64 platform.
- Should therefore not have a customer kernel from the Pi foundation that's stripped down.
- 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.
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.
- Download and install Merlin WRT [1], which is a simple as upgrading the default Asus firmware.
- Plug a USB drive into the router, enable Entware by running the included
entware-setup.sh
or useamtm
maintained by [2] (depending how much extras you want to throw on your router, see below). - Install iperf3 via opkg package manager with
opkg install iperf3
- 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, ...).
from raspberry-pi-pcie-devices.
$ 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.
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.
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.
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.
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.
$ 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.
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.
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.
Related? QubesOS/qubes-issues#5615
from raspberry-pi-pcie-devices.
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.
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.
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.
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.
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.
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.
atop
output while the Pi is running the iperf server:
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.
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.
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.
@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.
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.
Upgraded the Dell, made a video: How to Upgrade a Dell XPS 13 to WiFi 6 (802.11ax).
from raspberry-pi-pcie-devices.
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.
@mo-g yes, I think that would be ideal. Basically give the user some flexibility.
from raspberry-pi-pcie-devices.
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.
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.
Testing with the Merlin firmware:
- Downloaded beta version for AX86U from here: https://www.asuswrt-merlin.net/download
- Follow the Installation guide (basically update firmware to the downloaded version).
- Restart the router, verify things still work fine.
Format a USB flash drive to set up Entware:
- Enable SSH in the router admin (I disabled password login, did LAN only, and added my pubkey).
- Log in with
user@[router address]
- Make sure a USB flash drive (with nothing on it you care about) is plugged in.
- Run
entware-setup.sh
which runsamtm
. - Use option
fd
to format the attached USB drive.
(After formatting, the router reboots.) Now install Entware so you can install iperf3
.
- Log back in via SSH.
- Run
entware-setup.sh
which runsamtm
. - Install Entware using option
et
. - Install
iperf3
viaopkg
: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.
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.
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.
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
):
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.
Video posted: WiFi 6 on the Raspberry Pi CM4 makes it Fly! MORE THAN 1 Gbps!
from raspberry-pi-pcie-devices.
And a blog post: WiFi 6 gets 1.34 Gbps on the Raspberry Pi CM4.
from raspberry-pi-pcie-devices.
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:
- Users connected and there signal strength
- Disconnect a user
- 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.
@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.
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.
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.
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.
The URL for amazon is not working.
from raspberry-pi-pcie-devices.
@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.
What a fun repo to have found!
The Amazon link does work again now.
from raspberry-pi-pcie-devices.
Related Issues (20)
- 52Pi NVDAC - 2230/2242 NVMe and PCM5122 DAC HAT for RPi5 HOT 1
- 52Pi NVDigi - 2230/2242 NVMe and WM8804 Digi HAT for RPi5 HOT 1
- Add 52Pi 2.5G PCIe Network Adapter HOT 2
- Add 52Pi PD Power HAT HOT 4
- Add NVPI5-2242T and NVPI5-2280B HAT HOT 1
- 2.5 Gigabit M.2 M+B key Ethernet Card NIC HOT 1
- Pi 5 nvme expansion boards hat testing HOT 1
- Waveshare PCIe To M.2 Adapter for Raspberry Pi 5 Testing HOT 4
- tested - SK Hynix Gold P31 1TB NVME Pi 5 4GB
- Add Waveshare PoE HAT (F) for Raspberry Pi 5 HOT 18
- Add HAT: Mcuzone MP4GM 4G LTE Module for Pi 5
- Add HAT: Mcuzone MPW7 E-Key WiFi 7 HAT HOT 1
- ASMedia Technology Inc. Device 1064 M.2 NVME to Mini SAS Expansion Card Support 4 Ports SATA3.0 6Gbps HDD SSD SATA Controller SFF8087 HOT 1
- Add HAT: Dual M.2 X1004 Board from Geekworm HOT 1
- Add Pi 5 HAT: Mcuzone MP2.5GD Pi 5 Dual 2.5 Gbps Ethernet HAT
- Test LSI 9440-8i on rpi5 with "FW in FAULT state" HOT 1
- Add PI-2230-SSD, an SSD expansion board for Raspberry PI 5 HOT 1
- Delock NVME Ethernet I225-V Adapter on RPI5 HOT 12
- Add HAT: NVMe Base Duo HOT 1
- Add LSI SAS 9211-8i / Dell PERC H310 SAS HBA raid controller HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from raspberry-pi-pcie-devices.