Rich Dougherty

Installing Ubuntu Linux on the Lenovo ThinkPad E14 Gen 2 (AMD)

I bought myself a cheap ThinkPad. Although not officially supported for Linux it was pretty easy to get going. It installed fine with Ubuntu 20.04, only requiring a newer kernel version to be installed.

Details:

Lenovo ThinkPad E14 Gen 2 (AMD)
Model Type Number: 20T6-0008AU
CPU: AMD Ryzen 5 4500U (6C / 6T, 2.3 / 4.0GHz, 3MB L2 / 8MB L3)
Notebookcheck review

A page with a lot of info about Linux on Thinkpad E14 is here, although it seems like it's based on a Gen 1 (Intel) rather than a Gen 2 (AMD) model.

Step by step instructions

Part I: Windows prep

This laptop comes with Windows 10 Home. A few things are needed before installing Linux. A lot of info I used came from here.

  1. Run Lenovo Vantage and do a System Update.
  2. Update BIOS from support site (v1.08 was latest at the time) — this step may have already been handled by the System Update above, not sure
  3. Disable fast startup
  4. Turn off BitLocker encryption with Start menu > Device Encryption > Turn Off. See discussion here.

For the next part you'll need a bootable Ubuntu USB stick. I set up my USB stick from Linux but you can do it from Windows too. See Create a bootable USB stick on Windows. You'll want to download Ubuntu from the release site and use the 64-bit PC (AMD64) desktop image.

Part II: BIOS

  1. Reboot and press F1 to enter the BIOS menu.
  2. Disable Secure Boot.

    This should be unnecessary with versions of Ubuntu after 20.04 as we only need this to install a newer kernel. Future versions of Ubuntu should ship with a recent enough kernel out of the box.

Part III: Ubuntu install

  1. Reboot and press F12 to choose the boot device. Choose USB HDD to boot from the USB stick.
  2. Run the installation. Use normal installation options but choose the following options:
    • Install third party drivers. Probably needed for wifi?
    • Install alongside Windows.
  3. Reboot after installation when prompted.
  4. Install system updates when prompted.
  5. Reboot again when prompted.

Part IV: Kernel upgrade

  1. Download mainline kernel script: ubuntu-mainline-kernel.sh
  2. Install new kernel. Tested with kernel v5.8.10-050810.
    sudo ./ubuntu-mainline-kernel.sh -i
    
  3. Reboot and verify the kernel version with uname -a.

Part V: Ready for use (with one workaround)

The system is ready for use with one exception.

Each time the system starts you'll need to do a manual suspend to get sleep working. From then on sleep works normally until rebooted again. I haven't tested this, I'm just going on what I've read.

sudo systemctl suspend

See discussion on Reddit and on the Lenovo forums.

What works and what doesn't

  1. CPU - works fine for me. No need for throttling workarounds as described here and implemented here. I think the ThinkPad throttling issues is Intel only.

    To verify I ran Geekbench 5 and got the following results which seemed in the ballpark:

    For comparison NotebookCheck got single core: 1108, multi core: 4618. There may be a drop in multi core performance based on this so I should probably investigate by running the benchmarks again and on Windows.

    During the testing I monitored CPU usage and temp with s-tui.

    apt install s-tui
    s-tui
    

    Here's what it looks like while idle on battery.

  2. Wifi works fine for me

    $ lspci
    03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8822CE 802.11ac PCIe Wireless Network Adapter
    
  3. Function keys work fine. Brightness, volume, keyboard backlighting - all work. FnLock doesn't work but that's fine with me.

  4. Bluetooth - not checked yet, but apparently fine.

  5. Fingerprint scanner - not supported yet.

    $ lsusb
    Bus 003 Device 002: ID 27c6:55a4 Shenzhen Goodix Technology Co.,Ltd. Goodix FingerPrint Device
    

    There is a bug report to add support for this device if anyone wants to contribute.

  6. Battery - seems good. I was able to use the ThinkPad battery health settings.

    See:

    • https://unix.stackexchange.com/questions/48534/how-to-adjust-charging-thresholds-of-laptop-battery
    • https://vitux.com/improving-battery-life-in-ubuntu-with-tlp/
    # Command line
    sudo apt install tlp
    # Manual vars
    START_CHARGE_THRESH_BAT0=65
    STOP_CHARGE_THRESH_BAT0=80
    # Verifying
    sudo tlp-stat -s # see if running
    sudo tlp-stat --config # dump config
    # UI
    sudo add-apt-repository ppa:linuxuprising/apps
    sudo apt install tlpui
    
  7. External monitors - not checked yet.

All in all it was a fairly smooth experience with the main difference to a vanilla Ubuntu install being the kernel update. In future versions of Ubuntu this probably won't be needed, as they'll ship with newer kernels already.