Skip to main content
Topic: Rfkill disables Wifi and BT at boot (Read 2048 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Rfkill disables Wifi and BT at boot

My setup: OpenRC + seatd + connman, Linux 6.1.8-artix1-1

Each time I boot, rfkill list shows me that everything is soft blocked:

Code: [Select]
$ sudo rfkill list
0: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no


I've tried removing connmand from the OpenRC services, Wifi and BT are still rfkill-blocked at boot.

I've tried putting options rfkill default_state=1 in /etc/modprobe.d/rfkill.conf, doesn't work.
I've tried putting it directly in the kernel cmdline at boot (rfkill.default_state=1), doesn't work.

The only thing that worked was to create a new OpenRC service and put the command rfkill unblock all in it.

Is that normal? What could be doing the blocking?

Re: Rfkill disables Wifi and BT at boot

Reply #1
How about using the rfkill unblock all for kernel line?
Code: [Select]
$ modinfo -p rfkill
master_switch_mode:SW_RFKILL_ALL ON should: 0=do nothing (only unlock); 1=restore; 2=unblock all (uint)
default_state:Default initial state for all radio types, 0 = radio off (uint)
Code: [Select]
rfkill.master_switch_mode=2

Or a modprobe configuration option in "/etc/modprobe.d/modprobe.conf":
Code: [Select]
options rfkill master_switch_mode=2

Do you have any other services that touch the wireless devices on start?
One example on a Dell laptop had a service called hostapd that caused conflicts.
The services were both trying to initialize the wireless module.
This resulted in the wireless device left in a strange so to say scrabbled state.

A new initialization sequence would be required to reset the device to a functional state like your init rule provides.
Try disabling the non-essential services and see if rfkill is more cooperative.

A long shot to try would be to blacklist the wmi on the system.
Many years ago a few users got stuff to work by blacklisting "hp_wmi".
So it could be that something in the wmi has the potential to conflict with the operation of rfkill.

Have you tried other wireless tools to connect with?
Others have had issues with connman as well.

Re: Rfkill disables Wifi and BT at boot

Reply #2
How about using the rfkill unblock all for kernel line?
Code: [Select]
$ modinfo -p rfkill
master_switch_mode:SW_RFKILL_ALL ON should: 0=do nothing (only unlock); 1=restore; 2=unblock all (uint)
default_state:Default initial state for all radio types, 0 = radio off (uint)
Code: [Select]
rfkill.master_switch_mode=2

Or a modprobe configuration option in "/etc/modprobe.d/modprobe.conf":
Code: [Select]
options rfkill master_switch_mode=2

This failed, too.

Quote
Do you have any other services that touch the wireless devices on start?
One example on a Dell laptop had a service called hostapd that caused conflicts.
The services were both trying to initialize the wireless module.
This resulted in the wireless device left in a strange so to say scrabbled state.

I don't have hostapd, and a grep with various keywords did not show me anything likely to touch the wifi in my init.d.

Quote
A new initialization sequence would be required to reset the device to a functional state like your init rule provides.
Try disabling the non-essential services and see if rfkill is more cooperative.

If I have some time, I'll try that, but I don't think it'll be very fun... most services are not "non-essential"...

Quote
A long shot to try would be to blacklist the wmi on the system.
Many years ago a few users got stuff to work by blacklisting "hp_wmi".
So it could be that something in the wmi has the potential to conflict with the operation of rfkill.

Is wmi used for other things on the system?

Quote
Have you tried other wireless tools to connect with?
Others have had issues with connman as well.

I have only connman (I removed completely networkmanager).
So yes I have tried disabling connmand, and thus that leaves none such service.
The problem was still the same.

 

Re: Rfkill disables Wifi and BT at boot

Reply #3
Quote
Is wmi used for other things on the system?
The wmi modules are usually to provide custom hardware functionality like a laptop's custom buttons or other feature(s) unique to the device.
It is most likely that it can be blacklisted without causing boot failure.
Just in case, I would use a kernel option on the command line during boot so that one will not have to chroot to remove the modprobe blacklisting if boot does fail.
Code: [Select]
modprobe.blacklist=<name of module>
Some features of your hardware will not be available but at least one could rule it out as a cause.
If it is then a detailed kernel bug report would be needed to address the regression.