Linux – How to stop rfkill module from hardblocking the wifi, without rfkill command

arch linuxlinuxlinux-kernelwifi-configurationwireless-networking

I went into my BIOS the other day, didn't change anything, and rebooted. After this, my wifi was hardblocked. I looked online for solutions, and learned of the rfkill command. But I get

rfkill: command not found

However, in the startup messages, I see rfkill being called for something. I thought that perhaps it wasn't in the path for some reason. I'm sure it was. (I'll double check that tonight.)

I tried running Linux Mint off a flash drive, and the rfkill command told me that my wifi was hardblocked. I could unblock everything but the wifi hardblock.

There is no wifi switch on my computer. There is a wifi button the keyboard (F12) but it does nothing.

I'd like to know how to fix this obviously, but also I'd like to know why the hell this happened.

UPDATE! 2014.10.5
I've done some investigating and I want to share it, in case someone spots something that can solve this.

I rabbit-holed my way through the beginner's guide, and these are the results:

identify name of wireless interface

$ iw dev
wlp3s0

use wifi-menu to connect to a network

# wifi-menu wlp3s0
Scanning for networks... failed
No networks found

bring interface up

# ip link set wlp3s0 up                             
RTNETLINK answers: Operation not possible due to RF-kill

# rfkill list
bash: rfkill: command not found

I see mention of rfkill in the startup messages, but not in dmesg.
rfkill works in Linux Mint flash drive. When I run that, it will change block on all except hard block. There is no hardware switch.

show loaded modules:

# lsmod

produces big list, which includes:

rfkill                 18867  4 cfg80211,toshiba_acpi,bluetooth
iwlwifi               156837  1 iwlmvm
cfg80211              454161  3 iwlwifi,mac80211,iwlmvm

# modinfo rfkill
filename:       /lib/modules/3.16.3-1-ARCH/kernel/net/rfkill/rfkill.ko.gz
license:        GPL
description:    RF switch support
author:         Johannes Berg <johannes@sipsolutions.net>
author:         Ivo van Doorn <IvDoorn@gmail.com>
depends:        
intree:         Y
vermagic:       3.16.3-1-ARCH SMP preempt mod_unload modversions 
parm:           master_switch_mode:SW_RFKILL_ALL ON should: 0=do nothing (only unlock); 1=restore; 2=unblock all (uint)
parm:           default_state:Default initial state for all radio types, 0 = radio off (uint)

Does that mean everything is blocked by default?

What happens if I blacklist rfkill?
I created /etc/modprobe.d/blacklist.conf
Inside it says:

 #do not load this.
 blacklist rfkill

Rebooting to see if this did anything…
rfkill still loaded. Rebooted again…
Got a stream of iwlwifi errors:

iwlwifi 0000:03:00.0:
Failed to load firmware chunk!
Could not load the [0] uCode section
Failed to start INIT ucode: -110
Failed to run INIT ucode: -110

I don't think that this is related to the new conf file because I had this error a few days ago. It doesn't happen every time. As far as the conf file goes: I guess it still loaded because something depends on it. If I still want to try to stop it, I can use the install command I read about.

But at this point, I think I should try to reinstall the firmware?
Does anyone have any input or ideas other than that?

Best Answer

I had the same problem on my Raspberry.  A simple

sudo apt-get install rfkill

did the job.  I was then able to unblock my devices with

rfkill unblock all
Related Question