Fixing Suspend / Resume on Lenovo ThinkBook 15 G2 ARE Laptop with AMD in Linux

If you bought the Lenovo Thinkbook 15 G2 ARE with the AMD processor you probably noticed that the suspend option is not working in Linux. After some debugging I finally found a work around. The problem was present even with the latest kernel on a Arch Linux system with Kernel 5.12.14. The issue was also present under Ubuntu, with a slightly older kernel.

This fix has been tested on the 14 and 15 inch with the AMD processor, under Arch and Ubuntu.

Thinkbook 15 G2 ARE

On a GRUB system

If your system uses GRUB, edit the /etc/default/grub file. On the following line :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

add the following :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash iommu=soft"

This part can vary a lot between distributions, apply the changes with the following:

sudo grub-update

or

grub2-mkconfig -o /boot/grub/grub.cfg

or

grub-mkconfig -o /boot/grub/grub.cfg

reboot

On a SYSTEMD-BOOT system

edit your config file /boot/esp/loader/entries/<your_config>.conf

Note: on PopOS! the file is called : /boot/efi/loader/entries/Pop_OS-current.conf

In your file you should see something similar as :

options root="LABEL=arch_os" rw

add the new option before the last double quote, like this:

options root="LABEL=arch_os" rw iommu=soft

Note: on PopOS! it will look like this, add the iommu=soft after ro.

options root=UUID=... ro    iommu=soft   quiet loglevel=0 systemd.show_status=false splash 
reboot

Thanks to Man Son Ha for the details about PopOS!

28 thoughts on “Fixing Suspend / Resume on Lenovo ThinkBook 15 G2 ARE Laptop with AMD in Linux”

  1. Thanks for your help with this Luc.
    On my Thinkbook 14 AMD G2, Suspend via OS now works great, thanks to your fix!

    However, Suspend triggered by closing the lid was still a problem. (did not wake)
    In my case I set HandleLidSwitch=ignore, then I could either manually suspend & close the lid or close the lid (screen blanks) & allow the system to self-suspend after 20 mins (or whatever the sys pref is)

    In case this affects anyone else:
    /etc/systemd/logind.conf

    HandleLidSwitch=ignore
    HandleLidSwitchExternalPower=ignore

    Reply
  2. Your solution works with Fedora and Pop Os installed on my Lenovo ThinkBook 15 G2 ARE Laptop. But it didn’t work with Manjaro installed.
    in /etc/default/grub
    Line GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash udev.log_priority=3″
    GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash udev.log_priority=3 iommu=soft”
    I changed it to.
    So what did I do wrong?
    I want to use Manjaro and I don’t want to give up for it.

    Reply
  3. Hi,
    I finally did.
    sudo grub2-mkconfig -o /boot/grub/grub.cfg
    command was giving an error.
    sudo grub-mkconfig -o /boot/grub/grub.cfg
    It worked when I gave the command.
    Thanks for the feedback.

    Reply
  4. Thank you a lot!
    On my laptop it’s working (ThinkBook 15 Gen2 ARE).
    I’ve tried everything, but nothing didn’t work. You saved my time and my mood!

    Reply
    • I need to test it but my current install is not configured with any swap which is a requirement for the hibernation fonctionnality. I will post something when I try it. thanks

      Reply
      • Hi Luc, just go back here, and thank you for your response 🙂
        I’ve try your solution and now it’s working on my ThinkBook15! 😀
        I think hibernate also work, since i just press hibernate on my ubuntu, and then when turn it on again, it’s just work fine, it goes to desktop normally.
        Now my current issue is the fingerprint, i think the fingerprint is unsupported by Linux.
        Once again, thank you so much! 🙂

        Reply
  5. Thank you thank you thank you so much!
    I installed a new nvme, re installed windows, bios got upgraded, etc, and through all this something changed and broke my suspend/resume. Now I am back working again.

    Reply
  6. On Pop OS,
    There a bit difference.

    1. Edit the config file which located in /boot/efi..
    sudo gedit /boot/efi/loader/entries/Pop_OS-current.conf

    2. Than, paste ‘iommu=soft’ after ‘root=.. ro’
    options root=UUID=41bf0e95-c968-4410-8374-25451a664ff4 ro iommu=soft quiet loglevel=0 systemd.show_status=false splash

    Reply
    • After 2 weeks, the problem with suspend returned.

      I open `/boot/efi/loader/entries/Pop_OS-current.conf` then learn that `iommu=soft` has already disappeared.
      It’s so weird.

      Adding it again, then problem gone.

      Reply
      • to protect the file you can make it immutable. Even root can’t delete or replace an immutable file, I wrote the revert code just below too
        chattr +i /boot/efi/loader/entries/Pop_OS-current.conf

        to revert:
        chattr -i /boot/efi/loader/entries/Pop_OS-current.conf

        if you do an ls -a on the directory or file you will see a ‘+’ at the end of the permissions to see that there is an extended Filesystem attribute set for the file that you did it.

        Uou can see a list of all extended attributes by doing an
        lsattr /boot/efi/loader/entries/Pop_OS-current.conf

        Reply
  7. I had to go into the bios and under power options set the suspend mode to “Linux” instead of “Windows 10”. ( I don’t have the Bios screen to look at right now so I’m not 100% on the names )
    I don’t need to change anything on the boot options. They actually didn’t help. I got an L15 AMD Gen2

    Reply

Leave a Comment