3.18.25 update appears to break the iwlwifi driver. 3.18.24 works: Intel(R) Wireless WiFi driver for Linux, in-tree: Copyright(c) 2003- 2014 Intel Corporation iwlwifi 0000:04:00.0: enabling device (0000 -> 0002) iwlwifi 0000:04:00.0: irq 34 for MSI/MSI-X iwlwifi 0000:04:00.0: loaded firmware version 23.15.10.0 op_mode iwlmvm iwlwifi 0000:04:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x210 iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs' iwlwifi 0000:04:00.0 wlp4s0: renamed from wlan0 3.18.25 doesn't: Intel(R) Wireless WiFi driver for Linux, in-tree: Copyright(c) 2003- 2014 Intel Corporation iwlwifi 0000:04:00.0: irq 34 for MSI/MSI-X iwlwifi 0000:04:00.0: loaded firmware version 23.15.10.0 op_mode iwlmvm iwlwifi 0000:04:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x210 iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled iwlwifi 0000:04:00.0: Failed to start INIT ucode: -110 iwlwifi 0000:04:00.0: Failed to run INIT ucode: -110 It looks like the problem is with firmware handling. The firmware appears to be the latest one listed for for 3.17+ kernels.
Likely due to my commit 8babe12bfba735a55fd42e3ba3d0178eb3383c37 Author: Johannes Berg <johannes.berg@intel.com> Date: Tue Nov 18 15:39:51 2014 +0100 iwlwifi: pcie: support 7265-D devices [ Upstream commit 3fd0d3c170ad6ba8b64e16938f699d0b43cc782e ] does the bug go away if you install the 7265D firmware image(s)?
7265D firmware blobs are already there: # ls -la /lib/firmware/*7265* -rw-r--r--. 1 root root 736844 Mar 5 2015 /lib/firmware/iwlwifi-7265-10.ucode -rw-r--r--. 1 root root 880604 May 3 2015 /lib/firmware/iwlwifi-7265-12.ucode -rw-r--r--. 1 root root 740436 Mar 5 2015 /lib/firmware/iwlwifi-7265D-10.ucode -rw-r--r--. 1 root root 1002800 May 3 2015 /lib/firmware/iwlwifi-7265D-12.ucode
Oh, right, it's actually loading it, sorry. What if you rename the 7265 files to 7256D? That would load the original one - just want to be sure that it's really due to this change, this obviously isn't really a fix.
Yes, renaming iwlwifi-7265-10.ucode to iwlwifi-7265D-10.ucode does appear to make it work. So it looks like it is picking the wrong firmware file.
Thank you for your report. This is extremely strange. It'd mean that you have a device that identifies itself as 7265D (through the register) but is not a real 7265D device. I'll try to get information internally. Note that the 7265D is "newer" than 7265 and it has more room for firmware, hence the different firmware versions. Are you sure your device is not an engineering sample? Did it come from a known OEM or you bought it on internet? can you share the output of: sudo lspci -vvvv -xxxx thank you.
Created attachment 197881 [details] lspci.txt
Output of lspci is attached. The WiFi module came with a new Clevo laptop a couple of months ago, so I don't think it is an engineering sample.
Thanks for the data. Checking internally.
Can you please do: echo 1 > /sys/kernel/debug/iwlwifi/0000\:04\:00.0/trans/csr and attach the dmesg output? Thanks.
There is no /sys/kernel/debug/iwlwifi directory.
Hmm... probably you don't have CONFIG_IWLWIFI_DEBUGFS set?
If you want, I can send you a link to a backport based tree with our driver. This will save you the compilation of the kernel to change the Kconfig option.
Indeed: # CONFIG_IWLWIFI_DEBUGFS is not set I'll recompile my kernel and report back.
Created attachment 197901 [details] iwlwifi dmesg output dmesg CSR output attached.
To be able to rule out a bad firmware, can you please install our backport based driver to be able to use the latest firmware? https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi/core_release I'd like to make sure that the bug isn't in the firmware itself. Thanks!
CSR_HW_REV: 0X00000210 This register tells us that you have a 7265D device which should be able to use 7265D.ucode
Which version of the driver should I build? 14? 15? iwlwifi-7265-10.ucode works with the driver in 3.18.25 (when I copy the file to iwlwifi-7265D-10.ucode) iwlwifi-7265D-10.ucode results in the error above. The firmwares are the latest from: https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-7265-ucode-23.15.10.0.tgz
(In reply to gordan from comment #17) > Which version of the driver should I build? 14? 15? > Let's go for 15 which means -18.ucode > iwlwifi-7265-10.ucode works with the driver in 3.18.25 (when I copy the file > to iwlwifi-7265D-10.ucode) > iwlwifi-7265D-10.ucode results in the error above. The firmwares are the > latest from: > > https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-7265-ucode- > 23.15.10.0.tgz Right - you are doing the right thing :) You have the latest firmware your kernel supports :)
With the v15 driver it seems to work (downloaded the firmware blobs listed on the same page). $ dmesg | grep iwl Loading modules backported from iwlwifi iwlwifi-stack-public:release/LinuxCore15:4768:96149b8f iwlwifi 0000:04:00.0: enabling device (0000 -> 0002) iwlwifi 0000:04:00.0: irq 34 for MSI/MSI-X iwlwifi 0000:04:00.0: Direct firmware load for iwl-dbg-cfg.ini failed with iwlwifi 0000:04:00.0: loaded firmware version 18.261294.0 op_mode iwlmvm iwlwifi 0000:04:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x210 iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs' iwlwifi 0000:04:00.0 wlp4s0: renamed from wlan0 iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled It loaded firmware v18, so it seems to be the correct driver (the one I just built). I'm not sure what this proves, though (new driver with new firmware works, but it isn't obvious from dmesg output whether the new driver tried to load the 7265 blob or the 7265D blob).
Great. The easiest is just to remove 7265-18.ucode and leave only 7265D-18.ucode. This will prove that 7265D.ucode was loaded.
OK, it still works with the iwlwifi-7265-18.ucode file moved out of the way. I'm not sure, however, how that indicates whether the 3.18.25 driver or v10 firmware are at fault. All we still know is that the 3.18.25 driver works with the v10 7265 firmware but not the v10 7265D firmware.
v10 is clearly at fault. The driver doesn't do anything at that stage, just waits for the firmware to finish the INIT phase... and it doesn't. We clearly need to revert the patch Johannes mentioned above. I just need to think about how to do it... We also need to delete 7265D-10.ucode from linux-firmware.git. Oh well.. I'll need to check with Greg / firmware folks how to handle that. Thanks for your cooperation!
I replaced 7265D-10.ucode with 7265-10.ucode in http://git.kernel.org/cgit/linux/kernel/git/iwlwifi/linux-firmware.git/ Pull request has been sent upstream and communicated to our OSV collaboration team to accelerate the process of introducing this change in distributions. Thanks for reporting this bug.
This appears to still be broken in 3.18.26. The API version has been bumped up to 12 (from 10) (which means that it also now needs to be pointed out on the firmware download page that kernels 3.18.26+ need iwlwifi-7265-ucode-25.17.12.0.tgz firmware blobs). However, the only way to make my WiFi card work with 3.18.26 kernel is to copy iwlwifi-7265-12.ucode to iwlwifi-7265D-12.ucode # dmesg | grep iwl [ 3.900196] iwlwifi 0000:04:00.0: enabling device (0000 -> 0002) [ 3.900327] iwlwifi 0000:04:00.0: irq 33 for MSI/MSI-X [ 3.904409] iwlwifi 0000:04:00.0: loaded firmware version 25.17.12.0 op_mode iwlmvm [ 3.910980] iwlwifi 0000:04:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x210 [ 3.911049] iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled [ 3.911226] iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled [ 3.998163] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs' [ 4.000879] iwlwifi 0000:04:00.0 wlp4s0: renamed from wlan0 [ 6.496631] iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled [ 6.496814] iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled This reports 7265 but tries to load the 7265D firmware blob which fails.
Hi again, We never print: Detected Intel(R) Dual Band Wireless AC 7265D, REV=0x210 Only 7265 even for 'D' devices. According to the REV= value (0x210), our device is a 'D' model. Can I please ask you to try to install our Core release bundle? I would like to know what happens on latest firmware and for that you'd need to update your driver: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi/core_release#core_release Please try to install the Core16 bundle (driver + firmware, no need to update thee supplicant). If that does not work, then we will try to see how come you can't load the 'D' firmware on your device. Thank you.
This is a bit Deja Vu-ish. Can we not debug the problem with 3.18.26 using the driver in 3.18.26, with the proscribed firmware for it (.10 up to 3.18.25 and .12 from 3.18.26)? It seems that last time troubleshooting with the latest driver and firmware resulted in backport of a fix that doesn't seem to have fixed the problem.
oh right. Sorry. Will refresh my memory with the bug and get back to you.
OK... I reproduced the bug. I was convinced it was a firmware issue, but ...it is a driver bug. In fact there is a dependency that is not satisfied in 3.18. I hope I'll have some time tonight to debug this a bit further.
Created attachment 203101 [details] fix rebased to 3.18 I just sent this patch to stable for 3.18. This should fix your issue. Can you test? thanks
Will close when I'll get feedback. Moving to resolved for now.
Assuming all is good now.
Still broken in the same way on 3.18.28 released on Friday: # dmesg | grep -i iwl [ 38.705879] iwlwifi 0000:04:00.0: enabling device (0000 -> 0002) [ 38.706041] iwlwifi 0000:04:00.0: irq 34 for MSI/MSI-X [ 38.710581] iwlwifi 0000:04:00.0: loaded firmware version 25.17.12.0 op_mode iwlmvm [ 38.721267] iwlwifi 0000:04:00.0: Detected Intel(R) Dual Band Wireless AC 7265, REV=0x210 [ 38.721336] iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled [ 38.721528] iwlwifi 0000:04:00.0: L1 Enabled - LTR Enabled [ 39.727255] iwlwifi 0000:04:00.0: Failed to start INIT ucode: -110 [ 39.729699] iwlwifi 0000:04:00.0: Failed to run INIT ucode: -110 Same workaround as before still works: [root@localhost /lib/firmware]# cp iwlwifi-7265-12.ucode iwlwifi-7265D-12.ucode
I sent the fix to stable: http://www.spinics.net/lists/stable/msg118348.html But it was not applied to 3.18 yet. This patch is already upstream. re-closing the bug.