- How can I bring back disappeared or hard-blocked wifi on linux?
- 2 Answers 2
- Unblocking hard blocks
- Unblocking soft blocks
- DESCRIPTION
- OPTIONS
- COMMANDS
- EXAMPLE
- AUTHORS
- SEE ALSO
- REPORTING BUGS
- AVAILABILITY
- fix Operation not possible due to RF-kill
- Comments
- How to disable «Wi-Fi is currently blocked by rfkill.» message?
- 7 Answers 7
How can I bring back disappeared or hard-blocked wifi on linux?
On my HP6370b laptop the wifi connection disappeared. There is no icon for wifi connection, the network setting still shows the previously used wifi connection but it does not connect to it. How can I get the wifi connection back?
2 Answers 2
You can block RF (radio-frequency) devices of your computer in two different levels:
The difference is that the soft-block is available on all computers and it can be turned on and off by some appropriate commands. The hard-block, on the other hand, requires some more direct change on the computer.
For example, the Wifi or the Bluetooth devices can be disabled
- in you BIOS/UEFI settings
- by a hotkey combination like Ctrl+F12 (see you computer’s manual for the exact combination)
- by a physical switch on you hardware
There is a really useful command line tool in linux called rfkill . It lists and lets you manipulate all the radio-based devices of your computer and works like this:
rfkill $ rfkill ID TYPE DEVICE SOFT HARD 0 bluetooth hci0 unblocked unblocked 1 wlan phy0 unblocked unblocked 2 wlan hp-wifi unblocked unblocked 3 bluetooth hp-bluetooth unblocked unblocked
This list shows that the computer has four wireless devices, 0 and 3 are bluetooth and 1 and 2 are wifi. At this stage they are all unblocked, that is, all of them can be used.
When I had the wifi-issue I mentioned in the title of this question, the values in the HARD column were all blocked .
Unblocking hard blocks
In order to unblock hard blocks, you need to change back your UEFI/BIOS settings, apply the appropriate hotkey or use the physical switch. On my HP HP6370b laptop the physical switch is a touch-button right above the F6 and F7 function keys of the built-in keyboard. It looks like a wifi-symbol but it is responsible for Bluetooth as well. Its color can be either blue or yellow. Blue means it is turned ON, yellow means OFF. You just have to touch that shiny symbol to toggle the state. When it goes blue, the rfkill command will display unblocked for each devices in their HARD column. Done.
Unblocking soft blocks
If the device is not hard-blocked, it still can be soft-blocked. In order to unblock it, you can use a command like this:
where 2 is the ID of the device in the output of rfkill .
As opposed to the listing, for toggling a setting you need root access. That’s why I used sudo . When you unblocked the soft-blocks of all the devices then rfkill displays unblocked in both the HARD and the SOFT columns in each line. Done.
It shouldn’t be necessary to reboot after unblocking the RF devices but you may need to restart some services. Maybe it is easier just to reboot if things don’t work yet.
In my case, the problem was that I did not know what that wifi symbol does above the function keys. We normally use this laptop as a desktop replacement and the lid is always closed. Recently we had to move the laptop and probably we hard-blocked the RF devices by accident.
DESCRIPTION
rfkill lists, enabling and disabling wireless devices.
The command «list» output format is deprecated and maintained for backward compatibility only. The new output format is the default when no command is specified or when the option —output is used.
The default output is subject to change. So whenever possible, you should avoid using default outputs in your scripts. Always explicitly define expected columns by using the —output option together with a columns list in environments where a stable output is required.
OPTIONS
COMMANDS
list [id|type . ]
List the current state of all available devices. The command output format is deprecated, see the DESCRIPTION section. It is a good idea to check with list command id or type scope is appropriate before setting block or unblock. Special all type string will match everything. Use of multiple ID or type arguments is supported. Possible types are all, , bluetooth, , wimax, wwan, gps, fm, nfc.
block id|type [. ]
unblock id|type [. ]
Enable the corresponding device. If the device is hard-blocked, for example via a hardware switch, it will remain unavailable though it is now soft-unblocked.
toggle id|type [. ]
EXAMPLE
rfkill --output ID,TYPE
rfkill block all
rfkill unblock wlan
rfkill block bluetooth uwb wimax wwan gps fm nfc
AUTHORS
rfkill was originally written by Johannes Berg and Marcel Holtmann . The code has been later modified by Sami Kerola and Karel Zak for the util-linux project.
This manual page was written by Darren Salt for the Debian project (and may be used by others).
SEE ALSO
REPORTING BUGS
AVAILABILITY
The rfkill command is part of the util-linux package which can be downloaded from Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.
Powered by archmanweb, using mandoc for the conversion of manual pages.
The website is available under the terms of the GPL-3.0 license, except for the contents of the manual pages, which have their own license specified in the corresponding Arch Linux package.
fix Operation not possible due to RF-kill
how to fix Operation not possible due to RF-kill in kali Linux
first of all I like to keep things simple and write like if I’m talking to my friends
things will be so simple cause it is really simple 🙂 let’s get to work now.
Operation not possible due to RF-kill
what case this error is your network card it’s “soft-blocked” in most case
This could happen when the wireless card has been signalled to switch-off via the kernel
to make sure if your card is soft-blocked
you will get something like you see in the photo and yes mine is blocked so if there is yes next to Soft blocked
stay with us and we will fix it together 🙂
follow this simple steps:
run in a terminal:
sudo rfkill unblock wifi sudo rfkill unblock all
rerun sudo rfkill list to confirm that the card has been unblocked.
airodump-ng wlan0
airodump-ng mon0
airodump-ng mon1
airodump-ng wlan0mon
ioctl(SIOCSIFFLAGS) failed: Operation not possible due to RF-kill
I hope this fixed the problem, have a great time playing the hack game ;)leave a comment, ask for help and I’m more than happy to help
Comments
this simple fix worked for me: $sudo rfkill block bluetooth
$sudo rfkill unblock wifi or you could update the wifi firmware i.e.
wget http://intellinuxwireless.org/iwlwifi/downloads/iwlwifi-3945-ucode-15.32.2.9.tgz tar xzf iwlwifi-3945-ucode-15.32.2.9.tgz cd iwlwifi-3945-ucode-15.32.2.9 sudo cp iwlwifi-3945-2.ucode /lib/firmware
Just to mention my solution to rfkill error. pressing keys Fn+F5 puts all cards off & i get a rfkill error. Then i just press Fn+F5 again an after 4 seconds everything’s back to normal.
Thanku so much 🙂 I’m new to kali linux and facing too much problems glad I found your website…. my problems getting fixed 🙂
It is not working for me. Every time after i run the above mentioned command it says, “Try ‘rfkill –help’ for more information.”
How to disable «Wi-Fi is currently blocked by rfkill.» message?
I do not want to see the following message when I login to my Pi ( 5.10.17-v8+ #1403 SMP PREEMPT Mon Feb 22 11:37:54 GMT 2021 aarch64 GNU/Linux ):
Wi-Fi is currently blocked by rfkill. Use raspi-config to set the country before use.
A way to do this non-interactively would be nice. I don’t mean CLI, I mean by writing to bootfs. Use case: I have a Pi 3A+, no screen, no keyboard. I had to run sudo rfkill unblock wifi (thanks @Kingsley) from the UART interface.
7 Answers 7
Run sudo raspi-config and set the wifi country code by going to
Then select your country code from the list
@GordonFogus — yes — you can use raspi-config non-interactively . sudo raspi-config nonint do_wifi_country XX — use appropriate value for XX
I’m stealing/promoting @Jaromanda X’s answer here, as it’s a one-liner and avoids having to fumble through the «GUI» to set the Wi-Fi region/country:
sudo raspi-config nonint do_wifi_country XX
XX is country code, you can find your country’s code here: https://en.wikipedia.org/wiki/ISO_3166-1
I updated a Pi 3b to Bullseye and had this issue. I tried the country code and the urfkill installation and the rfkill unblock command. In the end, I also needed to run
sudo connmanctl enable wifi
No matter what I tried the raspi-config always failed with:
Could not communicate with wpa_supplicant
I already had the country code in the /etc/wpa_applicant/wpa_applicant.conf too.
In the end I used the rfkill command to enable it manually.
This seems to preserve the unblocked status, at least through warm-reboots.
Then (with quite a bit more stuffing around) it all worked.
It’s a bit of a shame the «out-of-box» configuration scripts can’t get this working.
You can check this status with rfkill list and you’ll see Soft blocked: yes against the device. The unblocked status is saved in a file under /var/lib/systemd/rfkill/ and so survives a cold reboot. The point of this is to prevent unconfigured wifi transmitting on wrong frequencies for the country it’s operating in.
@Gauthier agree, one would expect so. Seems like a bug that the file under /var/lib/systemd/rfkill/ wins out, but perhaps there are other good reasons that they do it that way.
The easiest way (that I’ve found) to programmatically make this message go away was to add the following to /boot/config.txt :
Yes, this does disable WiFi, but that was not a constraint in the original question (in other words, the question didn’t say that disabling WiFi was unacceptable).
While I was at it, I also disabled Bluetooth, since I didn’t need that either:
Indeed, it’s notable that OP is logging in via ssh and therefore has some other kind of networking configured and working.
You might consider install urfkill , as in:
sudo apt install urfkill sudo rfkill unblock wifi
I encountered this problem setting up my Pi 4 with the 2021-10-30 version of Bullseye Lite. The howto I followed had a wpa_supplicant.conf file that started with:
country=US ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1
and when I hooked up via Ethernet, rfkill complained that the country code was invalid. I used raspi-config to «update» it with the same value, and the first three lines came out as:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=US
The WiFi started working correctly.
When I used the changed sequence on my Pi Zero W, it worked correctly the first time.
Looks like some code in the startup software is fussy about the order in which it finds parameters.