# wi-fi key combo doesn't work on latitude e5550

## petan

This is probably one of most annoying bugs ever. I got e5550 with wi-fi driver working, adapter is found, everything is OK, but rfkill gets me:

```
$ sudo rfkill list

0: dell-wifi: Wireless LAN

        Soft blocked: no

        Hard blocked: no

1: dell-bluetooth: Bluetooth

        Soft blocked: no

        Hard blocked: no

2: hci0: Bluetooth

        Soft blocked: no

        Hard blocked: no

3: phy0: Wireless LAN

        Soft blocked: no

        Hard blocked: yes
```

And there is unfortunately no way to remove that hard block. The laptop has no physical switch for wi-fi, only keyboard combo, fn + wi-fi symbol. When I press it in BIOS, wi-fi gets turned ON. When I start booting linux, it's still on, until this moment:

[   24.564635] iwlwifi 0000:02:00.0: RF_KILL bit toggled to disable radio.

I suspect that wi-fi driver just disable wi-fi for power saving or something. The LED is turned off and wi-fi gets disabled. When I press the key-combo I get:

[  838.981525] dell_wmi: Unknown key with scancode 0x153 pressed

[  865.212009] atkbd serio0: Unknown key pressed (translated set 2, code 0x88 on isa0060/serio0).

[  865.212013] atkbd serio0: Use 'setkeycodes e008 <keycode>' to make it known.

So, the wi-fi works great, but I can't use it. Because kernel doesn't understand the keyboard.

Is there any way to get it working?

----------

## khayyam

 *petan wrote:*   

> [...] there is unfortunately no way to remove that hard block. The laptop has no physical switch for wi-fi, only keyboard combo, fn + wi-fi symbol. When I press it in BIOS, wi-fi gets turned ON. When I start booting linux, it's still on, until this moment:

 

petan ... take a look at the output of 'modinfo iwlwifi' for a 'parm: no_hw_rfkill_switch' (or similar), if there you should be able to add it as a parameter and so have it ignore the rfkill swtich state, eg:

```
options iwlwifi no_hw_rfkill_switch=1
```

... that's assuming it has such a parameter, and is 'bool'.

 *petan wrote:*   

> 
> 
> ```
> [  838.981525] dell_wmi: Unknown key with scancode 0x153 pressed
> 
> ...

 

hmmm ... does the bios have a setting for disabling the hotkey for wireless switch? Older Dell's did. If not then you could do as the log suggests and make the <keycode> known via setkeycodes.

HTH & best ... khay

----------

## petan

Unfortunatelly there is no such a thing:

parm:           swcrypto:using crypto in software (default 0 [hardware]) (int)

parm:           11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)

parm:           amsdu_size:amsdu size 0:4K 1:8K 2:12K (default 0) (int)

parm:           fw_restart:restart firmware in case of error (default true) (bool)

parm:           antenna_coupling:specify antenna coupling in dB (default: 0 dB) (int)

parm:           nvm_file:NVM file name (charp)

parm:           d0i3_disable:disable d0i3 functionality (default: Y) (bool)

parm:           lar_disable:disable LAR functionality (default: N) (bool)

parm:           uapsd_disable:disable U-APSD functionality (default: Y) (bool)

parm:           bt_coex_active:enable wifi/bt co-exist (default: enable) (bool)

parm:           led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)

parm:           power_save:enable WiFi power management (default: disable) (bool)

parm:           power_level:default power save level (range from 1 - 5, default: 1) (int)

parm:           fw_monitor:firmware monitor - to debug FW (default: false - needs lots of memory) (bool)

parm:           d0i3_timeout:Timeout to D0i3 entry when idle (ms) (uint)

Regarding key-code, I would do that, but I have no idea how, eg. which keycode should I provide so that it works?

----------

## khayyam

 *petan wrote:*   

> Unfortunatelly there is no such a thing:

 

petan ... ok, well that rules that out.

 *petan wrote:*   

> Regarding key-code, I would do that, but I have no idea how, eg. which keycode should I provide so that it works?

 

Can you provide the output of 'dumpkeys | grep 185'? (e008 = 57 + 128 = 185). Asuming this is correct, you should be able to 'setkeycodes e008 185'.

best ... khay

----------

## petan

localhost grumpy # dumpkeys | grep 185

keycode 185 = nul             

        altgr   control keycode 185 = VoidSymbol      

        shift   alt     keycode 185 = VoidSymbol

doing that setcode as you suggest doesn't seem to change or fix it

----------

## khayyam

 *petan wrote:*   

> doing that setcode as you suggest doesn't seem to change or fix it

 

petan ... sorry, 008 is 8, not 57 ... so, 8 + 128 = 136 ... so it should be 'setkeycodes e008 136'. It has been a long time since I've used setkeycodes, and my memory is sketchy.

HTH & best ... khay

----------

## petan

I tried that now pressing the keys still result in

[10405.729661] dell_wmi: Unknown key with scancode 0x153 pressed

however there is no information that I should set the keys somehow, the wi-fi status doesn't seem to change when I press it. It's really weird :/ I however found a nasty workaround: boot, hibernate, boot to BIOS, enable wifi using key, resume from hibernate = wi-fi is enabled. Now I just must never reboot  :Razz:  only suspend or hibernate...

----------

