How to fix non-functional function keys (Fn) after suspend on a Lenovo Ideapad Slim 3 15ABR8 with Manjaro Linux Gnome?
System details:
- Laptop: Lenovo Ideapad Slim 3 15ABR8
- Operating system: Manjaro Linux Gnome
- Kernel version: 6.12
- BIOS updated
- Added i8042.nopnp parameter to GRUB
- Sleep mode: s2idle (advanced mode in BIOS is locked)
Problem: After suspend, the function keys (Fn) stop working. Before the BIOS update, the system would constantly wake up after suspend. Before adding the i8042.nopnp parameter to GRUB, the keyboard would not work at all after wake-up, although the touchpad worked normally.
Fixing Fn Key Issues on Lenovo IdeaPad Slim 3 15ABR8 with Manjaro Linux Gnome
The issue of non-functional Fn keys after suspend on a Lenovo IdeaPad Slim 3 15ABR8 with Manjaro Linux Gnome can be resolved through a combination of kernel parameters and system settings. Although you’ve already added the i8042.nopnp parameter, there are additional methods to fix this problem.
Table of Contents
- Main Solutions
- Alternative Kernel Parameters
- Sleep Mode Configuration
- System Services for Keyboard Recovery
- Additional Methods
- Recommended Action Plan
- Conclusion
Main Solutions
The most common and effective solution for your laptop model is to add additional kernel parameters to GRUB. Research indicates that the issue is related to the i8042 controller and its interaction with the power management system.
Important: If you’ve already added
i8042.nopnpbut the problem persists, try a combination of parameters.
Try adding the following parameters to GRUB_CMDLINE_LINUX_DEFAULT in the /etc/default/grub file:
quiet splash i8042.nopnp i8042.reset i8042.dumbkbd=1
After modifying the file, run:
sudo update-grub
sudo reboot
This approach has successfully fixed similar issues on other Lenovo IdeaPad models, as reported in the Arch Linux Wiki.
Alternative Kernel Parameters
If the main combination doesn’t work, try these alternative options:
Option 1: Focus on AUX port
quiet splash i8042.nopnp i8042.unmask_kbd_data
Option 2: Extended debugging
quiet splash i8042.nopnp i8042.debug=1
Option 3: Alternative parameters for Lenovo
quiet splash i8042.nopnp acpi_osi=Linux acpi_osi="!Windows 2020"
As experienced users from the Manjaro Forum report, the combination with acpi_osi parameters often resolves issues with Fn keys after suspend.
Sleep Mode Configuration
Since your BIOS has locked the advanced mode, limiting access to more traditional sleep modes, you can configure the system to use other power management methods.
Checking current sleep mode:
systemctl status systemd-suspend.service
cat /sys/power/mem_sleep
Configuring s2idle modes:
echo s2idle | sudo tee /sys/power/mem_sleep
Alternative approach - using systemd-sleep:
Create a service to restore keyboard functionality after waking up:
sudo nano /etc/systemd/system/fix-keyboard.service
Add the content:
[Unit]
Description=Fix keyboard after suspend
After=suspend.target
[Service]
Type=oneshot
ExecStart=/usr/bin/sleep 2 && /usr/bin/modprobe -r i8042 && /usr/bin/modprobe i8042
[Install]
WantedBy=suspend.target
Then activate it:
sudo systemctl daemon-reload
sudo systemctl enable fix-keyboard.service
This method is based on a solution proposed by the KDE community.
System Services for Keyboard Recovery
Option 1: Recovery via udev
Create a udev rule to automatically restore the keyboard:
sudo nano /etc/udev/rules.d/99-keyboard-fix.rules
Add:
ACTION=="resume", SUBSYSTEM=="platform", DRIVER=="i8042", RUN+="/usr/bin/sleep 2 && /usr/bin/modprobe -r i8042 && /usr/bin/modprobe i8042"
Reload udev:
sudo udevadm control --reload-rules
sudo udevadm trigger
Option 2: Using systemd-sleep hook
Create a script to execute after waking up:
sudo mkdir -p /etc/systemd/system-sleep
sudo nano /etc/systemd/system-sleep/fix-keyboard
Add:
#!/bin/bash
case $1/$2 in
post/suspend*)
sleep 2
modprobe -r i8042
modprobe i8042
;;
esac
Make the script executable:
sudo chmod +x /etc/systemd/system-sleep/fix-keyboard
Additional Methods
ACPI Settings
Sometimes the issue is related to ACPI. Try adding to GRUB:
quiet splash i8042.nopnp acpi=force
Checking kernel modules
Ensure that required modules are loaded:
lsmod | grep i8042 lsmod | grep psmouse
Temporary solution via systemd-timer
Create a timer to periodically reload the i8042 module:
sudo nano /etc/systemd/system/i8042-reload.timer
Add:
[Unit]
Description=Reload i8042 module periodically
Wants=i8042-reload.service
[Timer]
OnBootSec=30min
OnUnitActiveSec=30min
[Install]
WantedBy=timers.target
sudo nano /etc/systemd/system/i8042-reload.service
Add:
[Unit]
Description=Reload i8042 module
[Service]
Type=oneshot
ExecStart=/usr/bin/modprobe -r i8042 && /usr/bin/modprobe i8042
Activate:
sudo systemctl enable i8042-reload.timer
sudo systemctl start i8042-reload.timer
Recommended Action Plan
-
Start with the main kernel parameter combination:
- Add
quiet splash i8042.nopnp i8042.reset i8042.dumbkbd=1to GRUB - Run
sudo update-grub && sudo reboot - Check if Fn keys work after suspend
- Add
-
If the issue persists, try alternative parameters:
- Use the combination with
acpi_osi=Linux acpi_osi="!Windows 2020"
- Use the combination with
-
Configure a system service for recovery:
- Create the
fix-keyboard.serviceas described above - Or use a udev rule for automatic recovery
- Create the
-
As a last resort:
- Set up a timer to periodically reload the i8042 module
It’s important to test each step individually to determine which solution works best for your system.
Conclusion
The issue of non-working Fn keys after suspend on a Lenovo IdeaPad Slim 3 15ABR8 with Manjaro Linux Gnome is common but solvable. The main approaches include:
- Adjusting GRUB kernel parameters with focus on i8042
- Creating system services to automatically restore keyboard functionality
- Configuring udev rules to handle wake-up events
- Using additional ACPI parameters
The key to success is a systematic approach to testing each proposed solution. Start with simple kernel parameters and gradually move to more complex system configurations. Most users report successful resolution of the problem by combining the i8042.nopnp parameter with additional ACPI settings or by creating services to restore keyboard functionality after waking up.
Sources
- Lenovo IdeaPad Slim 3 16ABR8 - ArchWiki
- Keyboard stops working after suspension - Fedora Discussion
- Solved FN Keys in Lenovo Laptop - Manjaro Forum
- Lenovo AMD - no keyboard - Manjaro Forum
- Keyboard and Touchpad not working on Lenovo Ideapad Slim in Linux Mint
- Laptop keyboard and touchpad not working - Unix & Linux Stack Exchange
- Debugging an unresponsive touchpad on Lenovo Ideapad 320-15ABR
- Keyboard Issue on Lenovo Ideapad Slim 3 15ABR8 - EndeavourOS Reddit
- Fn keys stop working after sleep on lenovo ideapad slim 3 - Fedora Discussion
- Lenovo Ideapad Slim3 – internal keyboard stops working after prolonged suspend - Ask Ubuntu