I don’t run a GUI/Desktop on my Raspberry Pi devices. I don’t have monitors or keyboards connected to them — typically I log into them via SSH and manage them that way. I recently wanted to activate multiple network connections on my Raspberry Pi 3 Model B, so I decided to activate the wireless connection in addition to the wired connection that was already configured.
I tried following the steps at Setting WiFi up via the command line but got an error after the first step:
$ sudo iwlist wlan0 scan
wlan0 Interface doesn't support scanning : Network is down
I decided to check an see what devices were available via ifconfig
:
$ ifconfig
eth0 ...
lo ...
No wireless device is listed there. I checked for all devices using the -a
switch:
$ ifconfig -a
eth0 ...
lo ...
wlan0 ...
It’s there, wlan0
, but it wasn’t active. I tried to bring the device up:
$ sudo ifconfig wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill
That error message is completely indecipherable to me! Fortunately, someone else had this error message too:
“SIOCSIFFLAGS: Operation not possible due to RF-kill”?
From that post I was able to determine that the wireless device was soft blocked:
$ sudo rfkill list
0: phy0: Wireless LAN
Soft blocked: yes
Hard blocked: no
1: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
How to unblock it? The following, described at the aforementioned post, worked. Although I’m not sure why I’m unblocking wifi
instead of phy0
:
$ sudo rfkill unblock wifi
$ sudo rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
1: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
$ sudo ifconfig wlan0 up
$ ifconfig
eth0 ...
lo ...
wlan0 ...
The device is now active, but we still need to connect. First, I generated an encrypted passphrase:
$ wpa_passphrase "my_network_id" "my_network_password"
network={
ssid="my_network_id"
psk=8a9b456b28ef0707987622421592d3cc2fd22544ac281bced0f2028f4f4fcb85
}
Next, I appended that block of text to /etc/wpa_supplicant/wpa_supplicant.conf
Based on what I’ve read, that should be sufficient. The system should periodically detect changes to the wpa_supplicant.conf
file and load the new settings automatically. I was impatient and rebooted. Apparently the following command should work too:
$ sudo wpa_cli reconfigure
After the reboot, I checked ifconfig
for the wlan0
interface:
$ ifconfig wlan0 | grep 'inet addr'
inet addr:192.168.0.23 Bcast:192.168.0.255 Mask:255.255.255.0
It has an address — success!
Very helpful, probably because I had exactly the same problem. Still, thank you for posting it so clear.
Thank you. A very strange behavior: I installed the fresh raspian stretch image many times, sometimes wlan is up (with headless setup) and after another fresh install from the same image file, it does not work.
Your post was very helpful
Thanks for the solution, people like you posting these kind of seemingly innocuous solutions are doing god’s work
Thank you, saved me!
Thank you! You are awesome! Your post should be no 1 on Google when searching for wifi raspbian!
If Gregor Samsa would have woken up as computer programmer he would have had to kill himself, programmers kill bugs, don’t they ?
Programmers create at least as many bugs as they squash!