# [SOLVED] Intel 3945ABG not working: RF-kill hard block

## s0ltys

Hi guys.

Recently I've got an HP Compaq 6720s on which I've installed gentoo. Everything works fine, except wifi, which I can't get working.

I've followed https://wiki.gentoo.org/wiki/Wifi, compiled my kernel with needed drivers and installed sys-kernel/linux-firmware

The wifi card seems to be rf-kill hard-blocked:

rfkill list all

```
0: phy0: Wireless LAN

   Soft blocked: no

   Hard blocked: yes
```

rfkill unblock all has no effect.

ifconfig wlan0 up gives me this:

```
SIOCSIFFLAGS: Operation not possible due to RF-kill
```

The wifi card is an Intel PRO/Wireless 3945GBA

The laptop have wifi on-off button (SPST momentary), which on linux seems to do nothing.

Info about my system:

lspci: http://bpaste.net/raw/183016/

lspci -vv: http://bpaste.net/raw/183022/

uname -a:

```
Linux Ghostwheel 3.10.25-gentoo #8 SMP Wed Feb 26 19:18:57 UTC 2014 x86_64 Intel(R) Core(TM)2 Duo CPU T5270 @ 1.40GHz GenuineIntel GNU/Linux
```

zcat /proc/config.gz | grep -i fw_loader: http://bpaste.net/raw/183025/

zcat /proc/config.gz | grep -i iwl: http://bpaste.net/raw/183026/

zcat /proc/config.gz | grep -i mac802: http://bpaste.net/raw/183024/

zcat /proc/config.gz | grep -i rfkill: http://bpaste.net/raw/183027/

dmesg | grep -i iwl: http://bpaste.net/raw/183028/

ifconfig -a: http://bpaste.net/raw/183029/

iwconfig: http://bpaste.net/raw/183031/

ls /lib*/firmware/iwlwifi-3945*: http://bpaste.net/raw/183033/

Naturally, since wlan0 is down, iwlist wlan0 scan gives:

```
wlan0    Interface doesn't support scanning : Network is down
```

Edit:

After some hours of googling and trying different things I've noticed this:

output of lswh -c network suggests that firmware is not loading (and dmesg doesn't report anything about fw being loaded).

Strange thing is that when I've disabled RFKILL in kernel, the firmware was loading, but I still couldn't use wifi due to hard block.

It starts to look like I've read whole internet about this and nothing seems to help.

----------

## chithanh

iwlist is part of wireless-tools, which uses the legacy wireless extensions and does not support some features of modern drivers. There is limited backwards compatibility available if you enable CONFIG_CFG80211_WEXT in your kernel (this is needed e.g. for wicd which parses iwconfig/iwlist output).

If possible, use iw instead:

```
# iw dev wlan0 scan
```

About rfkill, you can either emerge rfkill and use that to unblock the wifi, or directly bang on the sysfs controls in /sys/class/rfkill/ (requires CONFIG_RFKILL enabled).

----------

## cova

You coluld try something like this in kernel parameters:

acpi_osi="!Windows 2012"

(place it in grub configuration or type it by hand).

On my laptop (quite different, 9470m) worked.

----------

## s0ltys

 *chithanh wrote:*   

> iwlist is part of wireless-tools, which uses the legacy wireless extensions and does not support some features of modern drivers. There is limited backwards compatibility available if you enable CONFIG_CFG80211_WEXT in your kernel (this is needed e.g. for wicd which parses iwconfig/iwlist output).

 

I have WEXT enabled in my kernel.

 *chithanh wrote:*   

> 
> 
> If possible, use iw instead:
> 
> ```
> ...

 

Emerged. iw dev wlan0 scan throws

```
command failed: Network is down(-100)
```

When i try ifconfig wlan0 up i get:

```
SIOCSIFFLAGS: Operation not possible due to RF-kill
```

 *chithanh wrote:*   

> 
> 
> About rfkill, you can either emerge rfkill and use that to unblock the wifi, or directly bang on the sysfs controls in /sys/class/rfkill/ (requires CONFIG_RFKILL enabled).

 

No matter what i try to echo into /sys/class/rfkill/rfkill0/state, it's content stays at "2". 

Also, emerged rfkill. As I wrote before it's output is:

```
0: phy0: Wireless LAN 

   Soft blocked: no 

   Hard blocked: yes
```

And doing rfkill unblock all or rfkill unblock 0 doesn't change anything.

 *cova wrote:*   

> 
> 
> You coluld try something like this in kernel parameters: 
> 
> acpi_osi="!Windows 2012" 
> ...

 

Tried it. Haven't changed anything.

----------

## chithanh

```
    Hard blocked: yes
```

That means the wifi is disabled by some hardware or BIOS switch. See if there is a wifi button or switch somewhere on the device, and try to toggle it.

----------

## s0ltys

 *chithanh wrote:*   

> 
> 
> ```
>     Hard blocked: yes
> ```
> ...

 

I don't have anything in BIOS that would control this (only options that disables completely wifi adapter), and my wifi button isn't one that have on-off state. It's a momentary push button, which seem not to work on linux. (it does nothing when I press it. dmesg doesn't report anything).

----------

## chithanh

Does rfkill "hard blocked" state change when you press it?

You may need to enable the correct ACPI/WMI driver for your notebook first (CONFIG_HP_WMI?).

----------

## s0ltys

 *chithanh wrote:*   

> Does rfkill "hard blocked" state change when you press it?
> 
> You may need to enable the correct ACPI/WMI driver for your notebook first (CONFIG_HP_WMI?).

 

I've enabled CONFIG_ACPI_WMI and CONFIG_HP_WMI in my kernel and now everything works like it should!.

Thanks for your help guys.

----------

