SIOCSIFFLAGS: Opération impossible du fait de RF-kill, késako ?

RF-kill est une partie du noyau Linux. Il sert à activer et désactiver logiciellement les périphériques pour le réseau sans fil (Wi-Fi, Bluetooth, etc). Il sert aussi à donner l'état de ce type de périphériques, y compris l'état des potentiels interrupteurs matériels.

Si vous essayez de faire une opération sur un périphérique pour le réseau sans fil qui est désactivé (comme sudo ifconfig wlan0 up), elle ne pourra pas être effectuée. Pour certaines opérations, une erreur sous forme de texte sera renvoyée (SIOCSIFFLAGS: Opération impossible du fait de RF-kill en français, et SIOCSIFFLAGS: Operation not possible due to RF-kill en anglais).

Pour ne plus avoir cette erreur, il faut donc que le périphérique soit activé. Si votre matériel a un ou des interrupteurs matériels, vérifiez qu'il(s) est/sont activé(s).

Commande rfkill

Si le blocage est logiciel, il y a la commande rfkill (en espace utilisateur) pour discuter avec le noyau Linux. Cette commande n'est pas forcément installé par défaut, mais votre distribution GNU/Linux la propose probablement (c'est par exemple le cas de Debian). Par exemple, sous au moins Debian et Trisquel, elle peut être installée avec apt-get install rfkill (avec les droits root/SuperUtilisateur).

rfkill list permet de lister les périphériques avec leurs états. Pour débloquer logiciellement un périphérique, il y a rfkill unblock IDENTIFIANT. Il faut donc l'identifiant du périphérique, du point de vue de rfkill qui peut être différent de celui de ifconfig, qui est indiqué par rfkill list.

Exemple d'utilisation de la commande rfkill

$ rfkill list 
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
3: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no
user@user-ThinkPad-X200:~/workspace/wifi/scapy/src$ sudo rfkill block 1
user@user-ThinkPad-X200:~/workspace/wifi/scapy/src$ rfkill list 
1: phy0: Wireless LAN
	Soft blocked: yes
	Hard blocked: no
3: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no
user@user-ThinkPad-X200:~/workspace/wifi/scapy/src$ sudo ifconfig wlan0 up
SIOCSIFFLAGS: Opération impossible du fait de RF-kill
user@user-ThinkPad-X200:~/workspace/wifi/scapy/src$ sudo rfkill unblock 1
user@user-ThinkPad-X200:~/workspace/wifi/scapy/src$ rfkill list 
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
3: hci0: Bluetooth
	Soft blocked: yes
	Hard blocked: no