Opening the laptop lid turns WiFi off

Hi fellow users,

I recently switched to Fedora - KDE spin and it’s been a great experience. However, I have 1 issue that I am not able to solve.

Situation: I have changed the settings in Power Management so that it does nothing when the laptop lid closes. And it is working fine, WiFi stays turned on even when I close the lid. However, when I open the lid, WiFi automatically turns off and I am not sure what is causing this.

Note: I am using a WiFi adapter with an LED, so I can always know when the WiFi is working just by looking at the adapter. So, whenever I open the lid, the LED turns off and I can see WiFi has automatically turned off.

Please let me know if you want any more information. I hope someone can resolve this issue for me!

Let me guess, is this an HP laptop? Mine is an HP laptop and has a similar issue, closing the lid does nothing, but opening it toggles airplane mode. Apparently the issue is that the lid registers as the airplane mode key (as I noticed using xev and evtest).
To fix, execute in a terminal:

echo '#!/bin/bash
# Fix Lid close acting like airplane mode key
setkeycodes e058 142' | sudo tee /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
sudo /etc/rc.d/rc.local
1 Like

Hi td211, thanks for your response.

YES! Your guess is correct. It is an HP laptop. I am not sure what has changed but it is suddenly working fine. I opened the lid twice today and WiFi has not turned off. I will definitely try your mentioned solution if the issue occurs again! Also, a note: only WiFi was turning off, Airplane mode was not turning on in my case, and Bluetooth was staying on as well.

If the issue occurs again, report back here. Depending on your laptop model the solution may be a bit different.

1 Like

Hi td211,

The issue is back after a reboot. And I can confirm only WiFi gets toggled. Airplane mode stays off and Bluetooth stays unchanged.

The laptop model is HP ay007tx if that helps.

Install evtest:
sudo dnf install evtest

Then run: sudo evtest. You will get something like this:

sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      Lid Switch
/dev/input/event1:      Power Button
/dev/input/event2:      Power Button
/dev/input/event3:      AT Translated Set 2 keyboard
/dev/input/event4:      PC Speaker
/dev/input/event5:      Video Bus
/dev/input/event6:      Video Bus
/dev/input/event7:      Wireless hotkeys
/dev/input/event8:      HP TrueVision HD Camera: HP Tru
/dev/input/event9:      HDA Intel PCH Mic
/dev/input/event10:     HDA Intel PCH Headphone
/dev/input/event11:     HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event12:     HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event13:     HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event14:     HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event15:     HDA Intel PCH HDMI/DP,pcm=10
/dev/input/event16:     HP WMI hotkeys
/dev/input/event17:     Synaptics TM3320-003
Select the device event number [0-17]:

Select the keyboard one on your device. Then close and open the lid. Post the output so we could see the keycode and scancode produced.

1 Like

Hi td211,

Please find the output below:

sudo evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      Lid Switch
/dev/input/event1:      Power Button
/dev/input/event2:      AT Translated Set 2 keyboard
/dev/input/event3:      HDA Intel PCH Mic
/dev/input/event4:      Video Bus
/dev/input/event5:      Wireless hotkeys
/dev/input/event6:      PC Speaker
/dev/input/event7:      HP WMI hotkeys
/dev/input/event8:      HDA Intel PCH Headphone
/dev/input/event9:      HDA Intel PCH HDMI/DP,pcm=3
/dev/input/event10:     HDA Intel PCH HDMI/DP,pcm=7
/dev/input/event11:     HDA Intel PCH HDMI/DP,pcm=8
/dev/input/event12:     HDA Intel PCH HDMI/DP,pcm=9
/dev/input/event13:     HDA Intel PCH HDMI/DP,pcm=10
/dev/input/event14:     Synaptics TM3127-001
/dev/input/event15:     HP TrueVision HD: HP TrueVision
/dev/input/event16:     Rockerz 335 (AVRCP)
Select the device event number [0-16]: 2
Input driver version is 1.0.1
Input device ID: bus 0x11 vendor 0x1 product 0x1 version 0xab41
Input device name: "AT Translated Set 2 keyboard"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 1 (KEY_ESC)
    Event code 2 (KEY_1)
    Event code 3 (KEY_2)
    Event code 4 (KEY_3)
    Event code 5 (KEY_4)
    Event code 6 (KEY_5)
    Event code 7 (KEY_6)
    Event code 8 (KEY_7)
    Event code 9 (KEY_8)
    Event code 10 (KEY_9)
    Event code 11 (KEY_0)
    Event code 12 (KEY_MINUS)
    Event code 13 (KEY_EQUAL)
    Event code 14 (KEY_BACKSPACE)
    Event code 15 (KEY_TAB)
    Event code 16 (KEY_Q)
    Event code 17 (KEY_W)
    Event code 18 (KEY_E)
    Event code 19 (KEY_R)
    Event code 20 (KEY_T)
    Event code 21 (KEY_Y)
    Event code 22 (KEY_U)
    Event code 23 (KEY_I)
    Event code 24 (KEY_O)
    Event code 25 (KEY_P)
    Event code 26 (KEY_LEFTBRACE)
    Event code 27 (KEY_RIGHTBRACE)
    Event code 28 (KEY_ENTER)
    Event code 29 (KEY_LEFTCTRL)
    Event code 30 (KEY_A)
    Event code 31 (KEY_S)
    Event code 32 (KEY_D)
    Event code 33 (KEY_F)
    Event code 34 (KEY_G)
    Event code 35 (KEY_H)
    Event code 36 (KEY_J)
    Event code 37 (KEY_K)
    Event code 38 (KEY_L)
    Event code 39 (KEY_SEMICOLON)
    Event code 40 (KEY_APOSTROPHE)
    Event code 41 (KEY_GRAVE)
    Event code 42 (KEY_LEFTSHIFT)
    Event code 43 (KEY_BACKSLASH)
    Event code 44 (KEY_Z)
    Event code 45 (KEY_X)
    Event code 46 (KEY_C)
    Event code 47 (KEY_V)
    Event code 48 (KEY_B)
    Event code 49 (KEY_N)
    Event code 50 (KEY_M)
    Event code 51 (KEY_COMMA)
    Event code 52 (KEY_DOT)
    Event code 53 (KEY_SLASH)
    Event code 54 (KEY_RIGHTSHIFT)
    Event code 55 (KEY_KPASTERISK)
    Event code 56 (KEY_LEFTALT)
    Event code 57 (KEY_SPACE)
    Event code 58 (KEY_CAPSLOCK)
    Event code 59 (KEY_F1)
    Event code 60 (KEY_F2)
    Event code 61 (KEY_F3)
    Event code 62 (KEY_F4)
    Event code 63 (KEY_F5)
    Event code 64 (KEY_F6)
    Event code 65 (KEY_F7)
    Event code 66 (KEY_F8)
    Event code 67 (KEY_F9)
    Event code 68 (KEY_F10)
    Event code 69 (KEY_NUMLOCK)
    Event code 70 (KEY_SCROLLLOCK)
    Event code 71 (KEY_KP7)
    Event code 72 (KEY_KP8)
    Event code 73 (KEY_KP9)
    Event code 74 (KEY_KPMINUS)
    Event code 75 (KEY_KP4)
    Event code 76 (KEY_KP5)
    Event code 77 (KEY_KP6)
    Event code 78 (KEY_KPPLUS)
    Event code 79 (KEY_KP1)
    Event code 80 (KEY_KP2)
    Event code 81 (KEY_KP3)
    Event code 82 (KEY_KP0)
    Event code 83 (KEY_KPDOT)
    Event code 85 (KEY_ZENKAKUHANKAKU)
    Event code 86 (KEY_102ND)
    Event code 87 (KEY_F11)
    Event code 88 (KEY_F12)
    Event code 89 (KEY_RO)
    Event code 90 (KEY_KATAKANA)
    Event code 91 (KEY_HIRAGANA)
    Event code 92 (KEY_HENKAN)
    Event code 93 (KEY_KATAKANAHIRAGANA)
    Event code 94 (KEY_MUHENKAN)
    Event code 95 (KEY_KPJPCOMMA)
    Event code 96 (KEY_KPENTER)
    Event code 97 (KEY_RIGHTCTRL)
    Event code 98 (KEY_KPSLASH)
    Event code 99 (KEY_SYSRQ)
    Event code 100 (KEY_RIGHTALT)
    Event code 102 (KEY_HOME)
    Event code 103 (KEY_UP)
    Event code 104 (KEY_PAGEUP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 107 (KEY_END)
    Event code 108 (KEY_DOWN)
    Event code 109 (KEY_PAGEDOWN)
    Event code 110 (KEY_INSERT)
    Event code 111 (KEY_DELETE)
    Event code 112 (KEY_MACRO)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 117 (KEY_KPEQUAL)
    Event code 118 (KEY_KPPLUSMINUS)
    Event code 119 (KEY_PAUSE)
    Event code 121 (KEY_KPCOMMA)
    Event code 122 (KEY_HANGUEL)
    Event code 123 (KEY_HANJA)
    Event code 124 (KEY_YEN)
    Event code 125 (KEY_LEFTMETA)
    Event code 126 (KEY_RIGHTMETA)
    Event code 127 (KEY_COMPOSE)
    Event code 128 (KEY_STOP)
    Event code 138 (KEY_HELP)
    Event code 140 (KEY_CALC)
    Event code 142 (KEY_SLEEP)
    Event code 143 (KEY_WAKEUP)
    Event code 152 (KEY_SCREENLOCK)
    Event code 155 (KEY_MAIL)
    Event code 156 (KEY_BOOKMARKS)
    Event code 157 (KEY_COMPUTER)
    Event code 158 (KEY_BACK)
    Event code 159 (KEY_FORWARD)
    Event code 163 (KEY_NEXTSONG)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 165 (KEY_PREVIOUSSONG)
    Event code 166 (KEY_STOPCD)
    Event code 172 (KEY_HOMEPAGE)
    Event code 173 (KEY_REFRESH)
    Event code 183 (KEY_F13)
    Event code 184 (KEY_F14)
    Event code 185 (KEY_F15)
    Event code 212 (KEY_CAMERA)
    Event code 217 (KEY_SEARCH)
    Event code 224 (KEY_BRIGHTNESSDOWN)
    Event code 225 (KEY_BRIGHTNESSUP)
    Event code 226 (KEY_MEDIA)
    Event code 227 (KEY_SWITCHVIDEOMODE)
    Event code 236 (KEY_BATTERY)
    Event code 238 (KEY_WLAN)
    Event code 240 (KEY_UNKNOWN)
    Event code 389 (KEY_DVD)
    Event code 465 (KEY_FN_ESC)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
  Event type 17 (EV_LED)
    Event code 0 (LED_NUML) state 0
    Event code 1 (LED_CAPSL) state 0
    Event code 2 (LED_SCROLLL) state 0
Key repeat handling:
  Repeat type 20 (EV_REP)
    Repeat code 0 (REP_DELAY)
      Value    250
    Repeat code 1 (REP_PERIOD)
      Value     33
Properties:
Testing ... (interrupt to exit)
Event: time 1671220481.549486, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1c
Event: time 1671220481.549486, type 1 (EV_KEY), code 28 (KEY_ENTER), value 0
Event: time 1671220481.549486, -------------- SYN_REPORT ------------
Event: time 1671220500.028479, type 4 (EV_MSC), code 4 (MSC_SCAN), value d8
Event: time 1671220500.028479, -------------- SYN_REPORT ------------
Event: time 1671220500.038906, type 4 (EV_MSC), code 4 (MSC_SCAN), value d8
Event: time 1671220500.038906, -------------- SYN_REPORT ------------
Event: time 1671220517.555643, type 4 (EV_MSC), code 4 (MSC_SCAN), value d7
Event: time 1671220517.555643, type 1 (EV_KEY), code 238 (KEY_WLAN), value 1
Event: time 1671220517.555643, -------------- SYN_REPORT ------------
Event: time 1671220517.567063, type 4 (EV_MSC), code 4 (MSC_SCAN), value d7
Event: time 1671220517.567063, type 1 (EV_KEY), code 238 (KEY_WLAN), value 0
Event: time 1671220517.567063, -------------- SYN_REPORT ------------
Event: time 1671220517.575049, type 4 (EV_MSC), code 4 (MSC_SCAN), value e3
Event: time 1671220517.575049, type 1 (EV_KEY), code 143 (KEY_WAKEUP), value 1
Event: time 1671220517.575049, -------------- SYN_REPORT ------------
Event: time 1671220517.585297, type 4 (EV_MSC), code 4 (MSC_SCAN), value e3
Event: time 1671220517.585297, type 1 (EV_KEY), code 143 (KEY_WAKEUP), value 0
Event: time 1671220517.585297, -------------- SYN_REPORT ------------
Event: time 1671220608.416432, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1671220608.416432, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1671220608.416432, -------------- SYN_REPORT ------------
Event: time 1671220608.569147, type 4 (EV_MSC), code 4 (MSC_SCAN), value 2e
Event: time 1671220608.569147, type 1 (EV_KEY), code 46 (KEY_C), value 1
Event: time 1671220608.569147, -------------- SYN_REPORT ------------

I can see code 238 got triggered which is for WLAN meaning the WiFi?

Try this:

echo '#!/bin/bash
# Fix Lid close toggling wifi
setkeycodes e0d7 142' | sudo tee /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
sudo /etc/rc.d/rc.local

This should fix your lid close to act like a lid closing, which will also allow you to get the laptop to sleep when lid is closed.
If this solves your problem, don’t forget to mark it as solution for future users.

1 Like

For what it’s worth, I haven’t tried using the rc.d method, but this method worked for me - so if the former doesn’t work or won’t persist after a reboot, maybe try the solution linked below? (The systemd method)

https://discussion.fedoraproject.org/t/hardware-lid-activates-airplane-mode/77925

https://askubuntu.com/questions/965595/why-does-airplane-mode-keep-toggling-on-my-hp-laptop-in-ubuntu-18-04/965596#965596

1 Like

The method proposed at askubuntu sets the scancodes to keycode 240 which is KEY_UNKNOWN. This completely ignores your lid and you will probably end up not being able to use the lid close action.

The method I proposed above sets the lid close to KEY_SLEEP, and persists using /etc/rc.d/rc.local and rc-local.service.

Edit: Nevermind I got confused between lid close and lid open (because my own device has lid close problem). The method mentioned there makes sense.

1 Like

Hi td211, I tried this and there is no difference. The WiFi still toggles after I open the lid…

Hi td211, I added sudo to setkeycodes and now when I open the lid, it goes to sleep… But yes, now WiFi does not get toggled. What can be the alternative for 142 as I do not want it to sleep…

Sorry I forgot your problem is lid open not close. Try:

echo '#!/bin/bash
# Fix Lid close acting like airplane mode key
setkeycodes d7 240' | sudo tee /etc/rc.d/rc.local
sudo chmod +x /etc/rc.d/rc.local
sudo /etc/rc.d/rc.local
1 Like

Hi td211, this works for me! However, I have to re-execute this after every reboot as it resets. Is there any way to make this work after a reboot?

You configure Wifi in Settings to connect automatically checking option box (Gnome or equivalent). Also your Wifi adapter has driver that isn’t included in Linux kernel meaning booting gets you nowhere needing manual intervention.

That is not expected. Show me the output of systemctl status rc-local.

Looks like you replied to the wrong thread?

1 Like

Hi td211, I just restarted to check again and it doesn’t work after reboot. I have to manually re-execute it. Please find the result below.

sudo systemctl status rc-local
× rc-local.service - /etc/rc.d/rc.local Compatibility
     Loaded: loaded (/usr/lib/systemd/system/rc-local.service; enabled-runtime; preset: disabled)
     Active: failed (Result: exit-code) since Wed 2022-12-21 13:55:31 IST; 2min 26s ago
       Docs: man:systemd-rc-local-generator(8)
    Process: 1167 ExecStart=/etc/rc.d/rc.local start (code=exited, status=126)
        CPU: 4ms

Dec 21 13:55:31 kk systemd[1]: Starting rc-local.service - /etc/rc.d/rc.local Compatibility...
Dec 21 13:55:31 kk rc.local[1170]: /etc/rc.d/rc.local: line 3: /usr/bin/sudo: Permission denied
Dec 21 13:55:31 kk systemd[1]: rc-local.service: Control process exited, code=exited, status=126/n/a
Dec 21 13:55:31 kk systemd[1]: rc-local.service: Failed with result 'exit-code'.
Dec 21 13:55:31 kk systemd[1]: Failed to start rc-local.service - /etc/rc.d/rc.local Compatibility.

Weird, why does line 3 have a “sudo” in it? Did you edit my answer?
Please show me cat /etc/rc.d/rc.local.

1 Like

Hi td211, removed the sudo command and now it works after reboot as well.
Also, not sure why but:
setkeycodes e0d7 240
does not work, so I used:
setkeycodes d7 240
instead…

cat result:

cat /etc/rc.d/rc.local
#!/bin/bash
# Fix Lid open acting like WiFi toggle key
setkeycodes d7 240

Now, status of rc-local:

sudo systemctl status rc-local
● rc-local.service - /etc/rc.d/rc.local Compatibility
     Loaded: loaded (/usr/lib/systemd/system/rc-local.service; enabled-runtime; preset: disabled)
     Active: active (exited) since Wed 2022-12-21 20:49:36 IST; 8min ago
       Docs: man:systemd-rc-local-generator(8)
    Process: 1161 ExecStart=/etc/rc.d/rc.local start (code=exited, status=0/SUCCESS)
        CPU: 4ms

Dec 21 20:49:36 kk systemd[1]: Starting rc-local.service - /etc/rc.d/rc.local Compatibility...
Dec 21 20:49:36 kk systemd[1]: Started rc-local.service - /etc/rc.d/rc.local Compatibility.

I edited the original answer. Since it fixes your problem, mark it as solution to make it easier for future users to find.

1 Like