Kernel bug? Intel WiFi not working because of iwl-debug-yoyo.bin

Hello dear community :slightly_smiling_face: I come from Debian, I’ve been wanting to try PureOS for a long time and I finally made the move. Unfortunately things are more complicated :sweat_smile:

Considerations

Before starting… I did read the Forum RULES - please read before posting which state:

Please do not ask for help with proprietary drivers/software.

But I still decided to create this post because I think I may be holding a good point. Feel free to tell me if this post is still not allowed :slightly_smiling_face:

Symptoms

PureOS starts well, everything looks beautiful and neat but I cannot turn on WiFi, only Bluetooth works.

No WiFi Adapter Found. make sure you have a Wi-Fi adapter plugged and turned on.

Proprietary drivers are installed

To work on GNU/Linux my WiFi card needs the driver iwlwifi-3160-17. I found it on the web, copied the .ucode file to /lib/firmware/ and I think PureOS is correctly booting with it (please confirm, I’m note sure how to read dmesg?):

user@PC:~$ sudo dmesg
[...]
[   12.422713] Intel(R) Wireless WiFi driver for Linux
[   12.493329] iwlwifi 0000:07:00.0: firmware: direct-loading firmware iwlwifi-3160-17.ucode
[   12.495829] iwlwifi 0000:07:00.0: loaded firmware version 17.3216344376.0 3160-17.ucode op_mode iwlmvm
[...]

Everything was working well on Debian 10 and 11

Also, as I said earlier I was using Debian just before switching to PureOS. WiFi worked well on exactly the same hardware when using Debian 10 “buster” and Debian 11 “bullseye”.

It was using the same .ucode file inside /lib/firmware/ and I could turn on WiFi and connect properly to my network with a good throughput.

A kernel bug?

I am not the only one

And now the most important question… Why did I name this topic with a name so frightening? :laughing:

Because of this person! https://forums.kali.org/showthread.php?59693-iwl-debug-yoyo-bin-missing

My dmesg outputs

I stumbled upon this mysterious “yoyo” thing while reading my dmesg outputs:

[...]
[   12.422713] Intel(R) Wireless WiFi driver for Linux
[   12.493329] iwlwifi 0000:07:00.0: firmware: direct-loading firmware iwlwifi-3160-17.ucode
[   12.495829] iwlwifi 0000:07:00.0: loaded firmware version 17.3216344376.0 3160-17.ucode op_mode iwlmvm
[   12.497080] iwlwifi 0000:07:00.0: firmware: failed to load iwl-debug-yoyo.bin (-2)
[   12.498060] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
[   12.778468] snd_hda_intel 0000:00:03.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   12.829572] input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card0/input16
[   12.829638] input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card0/input17
[   12.829699] input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card0/input18
[   12.829756] input: HDA Intel HDMI HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:03.0/sound/card0/input19
[   12.829815] input: HDA Intel HDMI HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:03.0/sound/card0/input20
[   12.842256] iwlwifi 0000:07:00.0: Detected Intel(R) Dual Band Wireless AC 3160, REV=0x164
[   12.853525] iwlwifi 0000:07:00.0: reporting RF_KILL (radio disabled)
[   12.868176] Bluetooth: Core ver 2.22
[   12.869242] NET: Registered protocol family 31
[   12.870269] Bluetooth: HCI device and connection manager initialized
[   12.871161] Bluetooth: HCI socket layer initialized
[   12.872187] Bluetooth: L2CAP socket layer initialized
[   12.873329] Bluetooth: SCO socket layer initialized
[   12.875042] iwlwifi 0000:07:00.0: base HW address: d0:7e:35:e6:61:26
[   12.888759] ieee80211 phy0: Selected rate control algorithm 'iwl-mvm-rs'
[   12.949101] usbcore: registered new interface driver btusb
[...]

Resources found on the internet

Please read my reply after this post as “New users can only post 2 links:sweat_smile:

  1. Someone has the same output but no problem using his WiFi : <<<link below>>>>

  2. In August 2020 no one knew about that “yoyo” thing so they suspected a bug in the kernel: <<<link below>>>>


Solutions?

Congratulations and thank you if you made it this far!!! :sweat_smile:

I am kindly requesting your help on this issue :slightly_smiling_face:

  • The person in the first link suggests using an installer ISO instead of a live ISO, however I couldn’t find any for PureOS.
  • I have never done software updates, I am running PureOS 10.0 “Byzantium” that the website gave me (on 30/06/2022). Will updates update my kernel?

Thank you for reading me :slightly_smiling_face: Many greetings! :desert_island:

1 Like

Here are the links :

Resources found on the internet

  1. Someone has the same output but no problem using his WiFi : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=969264

  2. In August 2020 no one knew about that “yoyo” thing so they suspected a bug in the kernel: https://bkhome.org/news/202007/the-mysterious-missing-iwl-debug-yoyobin-firmware.html

I would say the wifi is detected alright. Missing *yoyo.bin seems to be irrelevant. I can’t even find a debian package that would ship this file.
What is relevant is this: reporting RF_KILL (radio disabled)

try rfkill list. If it does not report any “Wireless LAN” devices - your wifi is not detected despite a successfull detection reported in your dmesg.

If it reports “hard blocked” - push the button on the keyboard to enable wifi. Afterwards you might need to remove and load again the iwlfifi module with modprobe -r iwlwifi; modprobe iwlwifi. Then run rfkil list again to verify the status of the wifi.

If it reports “soft blocked” - do rfkill unblock <number>

2 Likes

Wow thank you man! :smiley: But I have one problem following your instructions.

When I push the button on my keyboard it toggles Airplane Mode:

Airplane mode enabled

user@PC:~$ sudo rfkill list
0: Toshiba Bluetooth: Bluetooth
	Soft blocked: yes
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: yes
	Hard blocked: yes

Airplane mode disabled

user@PC:~$ sudo rfkill list
0: Toshiba Bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: yes
4: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

“Fatal” error

In both modes Hard blocked is yes. :frowning_face:

So I am getting this output regardless if Airplane Mode is on or off:

user@PC:~$ sudo modprobe -r iwlwifi
modprobe: FATAL: Module iwlwifi is in use.

Are you still able to help me?

  • There are no physical sliders on my laptop to turn the WiFi card on/off.
  • Windows 10 and Debian behaved as expected when pushing the button on my keyboard / toggling the sliders inside Settings

Thank you for your help :slightly_smiling_face:

I’ve had similar problem on my old laptop years ago. It sometimes booted with wifi hard blocked - as reported by rfkill. What helped then was to push the wifi button and then reload the - in my case - ath-something module.
Rinse, repeat untill it finally reported “hard blocked - no”
That than persisted through reboots, and wifi was working, untill such a time that battery run out, or I would switch the wifi off for some reason and powered off in that state.

I insist that you try harder on reloading the iwlfifi module after each wifi button press.

Do lsmod | grep iwlfifi to see what other modules are using it. Unload them all with modprobe -r some_module1 some_module2 ... iwlwifi
Hopefully there will be a handful of those only.

1 Like

Hello, sorry for the delay. Thank you for your advice and your time :slightly_smiling_face: That’s precious info.

I tried to “play” with my keyboard button and the commands yesterday but I didn’t do it for long.

Since I plan to install a Dual boot PureOS // Windows 10 (please don’t throw tomatoes at me), I am going to try two things:

  • Disable/re-enable the WiFi adapter inside the BIOS settings
  • Boot on Windows and use the WiFi adapter then boot to PureOS

And I will tell you how it goes :slightly_smiling_face:
Thank you for your help :blush:

have you set regulatory domain for your system?
by default linux will block radio of wifi, until you set which country you are in (google debian wireless regulatory domain)
why?
in different countreis there are different restrictions for wireless channes;, so driver need to know which country you are in.

1 Like

Yes, thanks! But that the specific WiFi driver needs to be loaded by using its particular device driver (as this laptop requires non-free firmware) is not mentioned in this thread until now, not at all, and it is called: firmware-iwlwifi. It needs to be added/installed first as just trying to be optimistic will not help someone, not even slightly. But still, “Loading Missing Firmware” chapter should help indeed (even before considering to proceed with the installation of the official Debian image or with the here related PureOS image). Anyway proceeding even though built-in hardware might indeed require non-free firmware and therefore particular built-in WiFi device will not be useful on that laptop out-of-the-box whatever tricks used (Kernel related ones), IMO. And if I’m wrong here than I might need to rethink this “yoyo” thing twice, if so.

1 Like

well i don’t understand complain PureOS is marked as OS designed for Librem devices, that don’t require ANY Proprietary closed source blobs. as it’s closed source free…
Technically it’s just stripped debian - with removed all things that even debian considder ass acceptable.
you wish to play with hardware that require properitary blob, better stay with debian.
appart of that there is no single difference between debian and pureos - well there is one , pure os is sligltly delayed with security updates from time to time.

i personnally was so frustrated that, as librem 14 user , i installed debian, then added pureos repositories as external, so i can install easyly librem-ec driver. so i have “hyrbid” OS

1 Like

:grin: :grin: :grin:

Screenshot from 2022-07-10 20-50-55

Workaround

This is a workaround, not a solution.

So! The fix that worked for me was to install Windows as a dual-boot (like I planned to do) and let it manage/update its WiFi drivers.

Back into PureOS I deleted the .ucode file from /lib/firmware, rebooted, re-added the .ucode file, rebooted, and done! :blush:

user@PC:~$ rfkill list
0: Toshiba Bluetooth: Bluetooth
	Soft blocked: yes
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

Thank you for your advice @Dwaff ! You oriented me in the right direction, otherwise I would have lost hope when seeing the Hard blocked: yes :slightly_smiling_face:

@NineX Hello :wave:, alright thanks for the tip. During the PureOS installer I have set the country which I live in, I don’t know if that was what you were referring to.

@Quarnero Thanks for your participation too, I appreciate it :slightly_smiling_face:
In the end Dwaff had the right thoughts. I was able to “unblock” my WiFi card by playing with Windows (and I suspect I would have been able to play with it in my BIOS too).

1 Like