New OS install on lenovo ideapad 3 slim - sleep breaks keyboard

I’ve a new install on a lenovo ideapad 3 slim (15ABR8) with a ryzen 7330U series CPU, its a great machine with one major issue out of the box, if I put the machine to sleep when I start it up again the keyboard no longer works, mouse and touchscreen are fine.
I installed the system with cinnamon and swap to file, everything is up to date and I’ve tried the standard and LTS kernels, I’ve not tweaked any parameters as I’ve no clue there, the system also doesn’t seem to have any hibernate options in the cinnamon power management settings.

Anyone got any pointers?

Please check if there are any firmware updates on the lenovo site (or with fwupdmgr tool).

My lenovo t14 AMD had issues with fingerprint reade net being detected right after buying and installing Linux. Some days later there was a fw update and all was good.

Unfortunately it seems lenovo don’t really support the ideapads via lvfs, it did update a couple of parts and I noticed there is a firmware update for the model I have (15ABR8) but they only provide a windows executable to do the update.

I used Hiren’s boot CD on ventoy a few weeks ago and saved the firmware update on ventoy as well booted in and ran the update and was able to run the update from there. Pretty simple actually.

1 Like

I think it is a good idea to create a separate partition for Windows just to ease up the firmware and BIOS updates.
I also had this until recently on my Ideapad 5 just for this purpose. You only have to put it back, you already have the Windows license, right?

I’d totally forgot about hirens, grabbing that now.

@Bryanpwo I don’t have a license since lenovo kindly knocked 90 quid off the laptop without an OS which makes them provided bios updates wrapped in a windows executable even more annoying.

1 Like

Updated BIOS, hasn’t helped with the issue. It must be something to do with ACPI kernel parameters.

Hey can you tell me what did you actually download? the lenovo driver updater program or something else?

I bought this laptop recently and still has this issue. It doesn’t even go to sleep, so I can’t use sleep at all, I’ve just been turning it off and on and hope to not leave it running accidentaly.

Have you tried the following kernel parameter i8042.nopnp

I can confirm i8042.nopnp fixes the issue somewhat. The fn keys don’t work after wake up, but at least you don’t have to power off your system if you are in a middle of something.

You could try some other kernel parameters to go along with that. One of them may work?

 atkbd.reset i8042.reset i8042.nopnp i8042.kbdreset

I have now tried almost every combination of these, they make no difference. I only get the keyboard back when i8042.nopnp is present. Seems like the fn keys are a different device.

Okay I think I was right, there seems to be a different device for the extra keys found it with libinput list-devices

Device:           Ideapad extra buttons
Kernel:           /dev/input/event5
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event3
Group:            6
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles:   n/a
Rotation:         0.0

Now I need to find how to reset it after wake up.

I have found this earlier https://bbs.archlinux.org/viewtopic.php?pid=2017609#p2017609

But it only worked for the keyboard, I don’t know how to reset the extra buttons.

found this with cat /proc/bus/input/devices not sure yet what to do with it

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Ideapad extra buttons"
P: Phys=ideapad/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.3/PNP0C09:00/VPC2004:00/input/input8
U: Uniq=
H: Handlers=kbd event5 rfkill 
B: PROP=0
B: EV=13
B: KEY=400000000000000 4000000000000 0 6000000000000000 100000000000 0 81000800100c03 4400000000300400 0 2
B: MSC=10

Here is the output from

sudo evemu-describe
Available devices:
/dev/input/event0:	Lid Switch
/dev/input/event1:	Power Button
/dev/input/event2:	Video Bus
/dev/input/event3:	AT Translated Set 2 keyboard
/dev/input/event4:	PC Speaker
/dev/input/event5:	Ideapad extra buttons
/dev/input/event6:	SYNA2BA6:00 06CB:CE2D Mouse
/dev/input/event7:	SYNA2BA6:00 06CB:CE2D Touchpad
/dev/input/event8:	HD-Audio Generic HDMI/DP,pcm=3
/dev/input/event9:	HD-Audio Generic HDMI/DP,pcm=7
/dev/input/event10:	HD-Audio Generic Mic
/dev/input/event11:	HD-Audio Generic Headphone

Here is my lsmod

❯ sudo lsmod
Module                  Size  Used by
atkbd                  40960  0
libps2                 24576  1 atkbd
vivaldi_fmap           12288  1 atkbd
xt_mark                12288  1
nft_compat             20480  1
nft_chain_nat          12288  2
nf_nat                 61440  1 nft_chain_nat
nf_conntrack          204800  1 nf_nat
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         12288  1 nf_conntrack
ccm                    20480  6
snd_seq_dummy          12288  0
snd_hrtimer            12288  1
rfcomm                102400  4
snd_seq               126976  7 snd_seq_dummy
snd_seq_device         16384  1 snd_seq
tun                    65536  2
nf_tables             397312  55 nft_compat,nft_chain_nat
cmac                   12288  2
algif_hash             12288  1
algif_skcipher         12288  1
af_alg                 32768  6 algif_hash,algif_skcipher
bnep                   32768  2
vfat                   20480  1
fat                   102400  1 vfat
snd_sof_amd_acp63      16384  0
snd_sof_amd_vangogh    16384  0
snd_sof_amd_rembrandt    16384  0
amd_atl                65536  1
intel_rapl_msr         20480  0
snd_sof_amd_renoir     16384  0
intel_rapl_common      53248  1 intel_rapl_msr
snd_sof_amd_acp        69632  4 snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_sof_amd_acp63,snd_sof_amd_renoir
snd_sof_pci            24576  4 snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_sof_amd_acp63,snd_sof_amd_renoir
snd_sof_xtensa_dsp     16384  1 snd_sof_amd_acp
rtw89_8852be           12288  0
snd_sof               462848  2 snd_sof_amd_acp,snd_sof_pci
rtw89_8852b           364544  1 rtw89_8852be
rtw89_8852b_common     65536  1 rtw89_8852b
snd_sof_utils          16384  1 snd_sof
snd_pci_ps             28672  0
rtw89_pci             118784  1 rtw89_8852be
soundwire_amd          49152  2 snd_sof_amd_acp,snd_pci_ps
soundwire_generic_allocation    12288  1 soundwire_amd
rtw89_core            991232  3 rtw89_8852b,rtw89_pci,rtw89_8852b_common
snd_amd_sdw_acpi       16384  2 snd_sof_amd_acp,snd_pci_ps
snd_hda_codec_realtek   225280  1
kvm_amd               245760  0
soundwire_bus         151552  2 soundwire_generic_allocation,soundwire_amd
snd_hda_scodec_component    20480  1 snd_hda_codec_realtek
snd_hda_codec_generic   122880  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     94208  1
kvm                  1425408  1 kvm_amd
snd_soc_core          438272  2 snd_sof,soundwire_amd
snd_hda_intel          65536  2
mac80211             1667072  2 rtw89_core,rtw89_pci
snd_intel_dspcfg       45056  2 snd_hda_intel,snd_sof
ac97_bus               12288  1 snd_soc_core
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
joydev                 24576  0
snd_pcm_dmaengine      16384  1 snd_soc_core
crct10dif_pclmul       12288  1
uvcvideo              180224  0
crc32_pclmul           12288  0
snd_compress           28672  1 snd_soc_core
mousedev               24576  0
polyval_clmulni        12288  0
snd_hda_codec         221184  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_rpl_pci_acp6x      16384  0
polyval_generic        12288  1 polyval_clmulni
uvc                    12288  1 uvcvideo
libarc4                12288  1 mac80211
ghash_clmulni_intel    16384  0
snd_acp_pci            12288  0
videobuf2_vmalloc      20480  1 uvcvideo
snd_hda_core          155648  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
sha512_ssse3           49152  0
snd_acp_legacy_common    16384  1 snd_acp_pci
videobuf2_memops       16384  1 videobuf2_vmalloc
snd_hwdep              20480  1 snd_hda_codec
snd_pci_acp6x          20480  0
videobuf2_v4l2         36864  1 uvcvideo
sha1_ssse3             32768  0
btusb                  77824  0
cfg80211             1396736  3 rtw89_core,mac80211,rtw89_8852b_common
snd_pcm               212992  13 snd_sof_amd_acp,snd_hda_codec_hdmi,snd_pci_acp6x,snd_hda_intel,snd_hda_codec,snd_sof,snd_compress,snd_soc_core,snd_sof_utils,soundwire_amd,snd_hda_core,snd_pci_ps,snd_pcm_dmaengine
snd_pci_acp5x          20480  0
aesni_intel           126976  7
btbcm                  24576  1 btusb
videodev              401408  2 videobuf2_v4l2,uvcvideo
snd_rn_pci_acp3x       24576  0
snd_timer              49152  3 snd_seq,snd_hrtimer,snd_pcm
btintel                73728  1 btusb
hid_multitouch         32768  0
gf128mul               24576  2 polyval_generic,aesni_intel
ucsi_acpi              12288  0
snd_acp_config         20480  9 snd_rn_pci_acp3x,snd_pci_acp6x,snd_pci_acp5x,snd_sof_amd_rembrandt,snd_sof_amd_vangogh,snd_sof_amd_acp63,snd_acp_pci,snd_pci_ps,snd_sof_amd_renoir
ideapad_laptop         53248  0
btrtl                  32768  1 btusb
crypto_simd            16384  1 aesni_intel
hid_generic            12288  0
ee1004                 16384  0
snd_soc_acpi           16384  3 snd_sof_amd_acp,snd_acp_config,snd_pci_ps
snd                   151552  19 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_sof,snd_timer,snd_compress,snd_soc_core,snd_pcm
typec_ucsi             69632  1 ucsi_acpi
platform_profile       12288  1 ideapad_laptop
videobuf2_common       90112  4 videobuf2_vmalloc,videobuf2_v4l2,uvcvideo,videobuf2_memops
cryptd                 28672  3 crypto_simd,ghash_clmulni_intel
btmtk                  36864  1 btusb
think_lmi              36864  0
bluetooth            1077248  34 btrtl,btmtk,btintel,btbcm,bnep,btusb,rfcomm
mc                     86016  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
rapl                   20480  0
firmware_attributes_class    12288  1 think_lmi
sparse_keymap          12288  1 ideapad_laptop
wmi_bmof               12288  0
pcspkr                 12288  0
rfkill                 40960  8 bluetooth,ideapad_laptop,cfg80211
typec                 106496  1 typec_ucsi
i2c_piix4              36864  0
i2c_hid_acpi           12288  0
soundcore              16384  1 snd
ccp                   192512  1 kvm_amd
snd_pci_acp3x          16384  0
k10temp                16384  0
i2c_smbus              20480  1 i2c_piix4
amd_pmc                53248  0
roles                  16384  1 typec_ucsi
i2c_hid                45056  1 i2c_hid_acpi
mac_hid                12288  0
lz4                    12288  16
lz4_compress           24576  1 lz4
winesync               20480  0
pkcs8_key_parser       12288  0
sg                     53248  0
crypto_user            12288  0
acpi_call              12288  0
dm_mod                221184  0
loop                   32768  0
nfnetlink              20480  3 nft_compat,nf_tables
zram                   45056  1
ip_tables              36864  0
x_tables               65536  3 nft_compat,ip_tables,xt_mark
amdgpu              15851520  9
btrfs                2174976  1
libcrc32c              12288  4 nf_conntrack,nf_nat,btrfs,nf_tables
crc16                  12288  2 bluetooth,amdgpu
crc32c_generic         12288  0
drm_buddy              24576  1 amdgpu
raid6_pq              135168  1 btrfs
drm_suballoc_helper    16384  1 amdgpu
xor                    20480  1 btrfs
drm_exec               12288  1 amdgpu
rtsx_pci_sdmmc         36864  0
i2c_algo_bit           20480  1 amdgpu
gpu_sched              65536  1 amdgpu
serio_raw              16384  0
mmc_core              270336  1 rtsx_pci_sdmmc
amdxcp                 12288  1 amdgpu
drm_ttm_helper         16384  1 amdgpu
ttm                   106496  2 amdgpu,drm_ttm_helper
nvme                   69632  3
crc32c_intel           16384  2
drm_display_helper    253952  1 amdgpu
sha256_ssse3           40960  0
nvme_core             253952  4 nvme
xhci_pci               24576  0
cec                    90112  1 drm_display_helper
rtsx_pci              139264  1 rtsx_pci_sdmmc
xhci_pci_renesas       24576  1 xhci_pci
i8042                  61440  1 ideapad_laptop
video                  81920  2 amdgpu,ideapad_laptop
nvme_auth              28672  1 nvme_core
serio                  28672  5 amd_pmc,serio_raw,atkbd,i8042
wmi                    32768  4 video,wmi_bmof,ideapad_laptop,think_lmi

Tried to reset these

~
❯ sudo modprobe -r atkbd && sudo modprobe atkbd

~
❯ sudo modprobe -r i8042 && sudo modprobe i8042
modprobe: FATAL: Module i8042 is in use.

~
❯ sudo modprobe -r ideapad_laptop && sudo modprobe ideapad_laptop

~

But they make no difference, the fn keys don’t work anymore just the regular Fx keys.

I think Fn and esc key hit together enables and disables the fn keys. Are you sure they aren’t just disabled?

Yes I tried to hit that, but it doesn’t change. There’s a led on the esc key and it doesn’t change after sleep, the led doesn’t turn off.

I have found this https://unix.stackexchange.com/a/724919/334249
Apparently you can put the device in an inhibited state, tried setting it on and off but it doesn’t help.

There are other things here too, but I don’t see anything that could properly reset the device

drwxr-xr-x 2 root root    0 Oct 20 16:21 capabilities
lrwxrwxrwx 1 root root    0 Oct 20 16:26 device -> ../../../VPC2004:00
drwxr-xr-x 3 root root    0 Oct 20 16:21 event7
drwxr-xr-x 2 root root    0 Oct 20 16:21 id
-rw-r--r-- 1 root root 4096 Oct 20 16:38 inhibited
-r--r--r-- 1 root root 4096 Oct 20 16:26 modalias
-r--r--r-- 1 root root 4096 Oct 20 16:21 name
-r--r--r-- 1 root root 4096 Oct 20 16:21 phys
drwxr-xr-x 2 root root    0 Oct 20 16:26 power
-r--r--r-- 1 root root 4096 Oct 20 16:21 properties
lrwxrwxrwx 1 root root    0 Oct 20 16:21 subsystem -> ../../../../../../../class/input
-rw-r--r-- 1 root root 4096 Oct 20 16:21 uevent
-r--r--r-- 1 root root 4096 Oct 20 16:26 uniq