Install 19.04 on ThinkPad X1 Extreme Gen 2

I received my Extreme Gen 2 on the October 31st 2019, I did not install Ubuntu 18.04 because I would not be able to upgrade the kernel version without WiFi since I don't have Ethernet port.

Consequently I installed Ubuntu 19.10 (kernel 5.3), disabled Secure Boot, Windows fast startup and blacklisted the NVIDIA Nouveau driver to replace it by the proprietary NVIDIA Driver. Now everything works even Docker.


Here are the steps to install it along Windows:

  • Disable Windows 10 fast startup because when it is enabled, your computer doesn’t perform a regular shut down: instead it builds hibernation files that you want avoid when dual-booting.

  • Update UEFI/BIOS to 1.26 (initially my UEFI/BIOS was up to v1.17) since old UEFI/BIOS contain multiple bugs that can result in bricking the laptop. You can perform it using the Lenovo Vantage app under Windows 10.

  • Disable Secure Boot: it is a verification mechanism for ensuring that code launched by a computer’s UEFI firmware is trusted. The issue is that NVIDIA Drivers are not signed hence Secure Boot would interrupt the boot process.

  • Install Ubuntu by hitting Enter on startup and selecting your bootable USB stick. Now you have Ubuntu installed on your laptop but it crashes when loading the default Ubuntu’s Nouveau NVIDIA Driver. Consequently we will blacklist it and installing the NVIDIA proprietary driver which works fine.

  • Reboot the computer. In the GRUB menu press E to edit the command before booting then append ‘nomodeset’ at the end of the ‘linux…’ line : it will prevent the system from loading graphics drivers hence we will be able to install NVIDIA drivers and blacklisting the Nouveau driver. Don’t worry, ‘nomodeset’ will only be effective for that session.

  • Install last NVIDIA proprietary driver.

  • Blacklist Nouveau driver to avoid conflicts.

Now the NVIDIA proprietary drivers are installed on your system and the open-source Nouveau driver is blacklisted so no conflicts between graphics drivers should happen.

These instructions come from the Medium article I wrote (https://medium.com/@remy.hosseinkhan/installing-ubuntu-19-10-on-lenovo-thinkpad-x1-extreme-gen-2-and-p1-gen-2-ba4c9c7c7ed2) check it if you have trouble to solve one step. I've looked at several threads in order to understand what goes wrong with installing Linux on this laptop : the main issue comes from the NVIDIA Optimus technology that is still causing trouble nowadays (see Is a NVIDIA GeForce with Optimus Technology supported by Ubuntu?).


As I just got a Lenovo ThinkPad X1 Extreme Gen 2 today and immediately wiped the drive and tried to install Ubuntu and ran into some problems I thought I'd offer my solution (which wasn't possible at the time of OP's post, but from the comments they seem to have also come to) in the event that someone like me might need a much more detailed explanation.

I originally tried to install Ubuntu 18.04.3 LTS but soon found that there was no Wi-Fi adapter found at all. After checking the X1's tech specs again I searched on "Intel AX200 Wi-Fi 6 802.11AX" and found the Linux* Support for Intel Wireless Adapters page which listed the Intel Wi-Fi 6 AX200 160MHz as needing a Linux kernel release of 5.1+. As uname -r showed that 18.04.3 had 5.0, after checking the Ubuntu releases it was clear that (in October of 2019) the only viable option was Ubuntu 19.10 (as it had kernel 5.3). Doing a clean install of 19.10 immediately fixed the Wi-Fi problem, but then during the gnome-initial-setup (Welcome to Ubuntu) the entire OS would freeze up. I noticed that before continuing with the gnome-initial-setup that if I looked around in settings that I found that the default graphics driver being used was the Nouveau and not the Nvidia (proprietary, tested) driver. If the Nvidia driver was switched to and then the gnome-initial-setup was run it would complete without issue and the computer was finally ready for use.

While I now quite happy so far with Ubuntu 19.10 and the Lenovo ThinkPad X1 Extreme Gen 2, I am certainly looking forward to the 20.04 LTS release in 2020.


On 14th December 2019 I carried out a successful install Ubuntu 19.10 on a new Lenovo X1 Extreme (gen2) laptop, with 2 solid state hard drives configured for RAID-0 with LLVM encrypted partitions.

This was a very smooth installation and all the hardware works correctly. The nVidia open source drivers and WiFi adaptor did cause a little extra work, so I have included tips and troubleshooting guides to help you resolve these issues.

The only thing I have noticed is the fans come on quite a lot, specifically when using Open Broadcast Studio. This Open Broadcast Studio software is hitting the CPU to over 100%, so its not surprising the fans are on full).

Using Ubuntu server for raid

I used the Ubuntu server 19.10 iso image to have the option of setting up RAID across multiple SSD's. If RAID is not required then just use the Ubuntu desktop 19.10 distribution.

There is little point in configuring the Intel Rapid Raid in the BIOS as Linux software raid (mdadm) is much better.

Make the following changes to the BIOS

  • Disable Secure Boot: NVIDIA Drivers are not signed which makes Secure Boot interrupt the boot process it when it attempts to verify these drivers are trusted.
  • Disable Windows 10 fast startup if dual booting Windows and Linux. When enabled it builds hibernation files on Windows reboot instead of a normal compuer shutdown.

Ubuntu server install

Follow the Ubuntu server install guide with the following additional steps.

Temporarily Blacklist Ubuntu’s Nouveau NVIDIA Driver

In the GRUB menu press E to edit the command to boot the operating system

Type nomodeset at the end of the linux line

The Prevents the system from loading the Nouveau graphics drivers which cause issues and may hang the computer. The Nouveau drivers will be permanently blacklisted once Ubuntu server is installed.

Section 8: Configure Storage - RAID

If you have two solid state drives (SSD's) in the laptop you can configure a redundant array of disks (RAID).

RAID requires two or more unformatted partitions (ext4 and xfs partitions cannot be used). Partitions used in a RAID should have the same size partition.

Its not possible to boot from a RAID partition, so we need a separate partition for /boot

From the Configure Storage menu, select manual to open the partition editor

The following steps were used to create a raid array with logical volume management and encrypted disks.

  • delete all existing partitions (wipes the Windows recovery partition too - only do this if you never want Windows)
  • create 250 Mb unformatted partition on each disk
  • create 476.939 Gb unformatted partition on each disk
  • create a RAID 0 partition using the two 476.939 Gb partitions (use RAID 1 if you want redundancy rather than speed/size)
  • create LVM on raid partition, set encryption on the disk (prompted for password when ever you boot the computer)
  • Format one of 250Mb partitons and set mount point to /boot
  • [optional] Format the remaining 250Mb partition how ever you want. I left it unused

Follow the rest of the Ubuntu server install guide and reboot when finished.

Installing a destkop environment

The Ubuntu server does not install a desktop environment by default, but has access to all the same packages so its easy to add one.

Once the server is rebooted, login with your new account name and password. This account has access rights to install software and configure the server using the sudo command.

Blacklist Nouveau driver to avoid conflicts.

Open up terminal and enter the following linux commands:

sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"

sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"

Confirm the content of the new modprobe config file:

cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf

blacklist nouveau
options nouveau modeset=0

Install the nVidia closed source drivers

The closed source nVidia drivers get the most out of the graphics card in the laptop.The ubuntu-drivers command show you which drivers are recommended for your given hardware

sudo ubuntu-drivers

The same command can be used to automatically install the recommended driver.

sudo ubuntu-drivers autoinstall

Install desktop environment

Gnome is the default desktop environment for Ubuntu. To install, use the following command

sudo apt install ubuntu-desktop

There are other desktop environments available. List them using the command

apt-cache search --names-only desktop

ubuntu-desktop - The Ubuntu desktop system
ubuntu-desktop-minimal - The Ubuntu desktop minimal system
cinnamon-desktop-environment - Cinnamon desktop environment - full desktop with extra components
desktop-base - common files for the Debian Desktop
neurodebian-desktop - neuroscience-oriented distribution - desktop integration
ros-desktop - Robot OS desktop metapackage
autopilot-desktop - Autopilot support for the ubuntu Desktop platform
autopilot-desktop-legacy - Autopilot support for the ubuntu Desktop platform
budgie-desktop - Desktop package for budgie-desktop
budgie-desktop-minimal - Minimal desktop environment for Ubuntu Budgie
kde-plasma-desktop - KDE Plasma Desktop and minimal set of applications
kubuntu-desktop - Kubuntu Plasma Desktop/Netbook system
lubuntu-desktop - Lubuntu Desktop environment
ubuntu-budgie-desktop - Ubuntu Budgie metapackage
ubuntu-mate-desktop - Ubuntu MATE - full desktop
ubuntu-unity-desktop - The Ubuntu Unity desktop system
ubuntukylin-desktop - The Ubuntu Kylin desktop system
ubuntustudio-desktop - Ubuntu Studio Desktop Package
ukui-desktop-environment - UKUI Desktop Environment (metapackage)
vanilla-gnome-desktop - Vanilla GNOME metapackage
xubuntu-desktop - Xubuntu desktop system

Use the command apt-cache show followed by the package name to see a description of that package.

Issues

The nVidia driver issue is well known and solutions shared. There was an unexpected issue with the WiFi. It was unexpected because it wasn't actually an issue at all. Update the firmware

If you have a custom build of the laptop it probably has the latest version of the firmware. Pre-built laptops may not have the latest firmware version.

It is prudent to check anyway and you can see if there is an upgrade for your hardware using the fwupdmgr command

sudo fwupdmgr update

(on the latest version, 0.1.27)

WiFi adaptor not recognised

If you have a Lenovo Ethernet adaptor plugged in (not the USB type) then WiFi is automatically disabled. Unplug the Ethernet adaptor and WiFi hardware is automatically enabled (no reboot required). Plugging the Ethernet adaptor back in will shut down the WiFi hardware, saving power.

If you are still having issues, ensure you are using kernel version 5.0.18 or greater (Ubuntu 19.10 has 5.0.23 at time of writing)

Start diagnosing the issue with the lspci command to see what hardware is detected.

lspci | grep -i network

52:00.0 Network controller: Intel Corporation Device 2723 (rev 1a)

Then check to see if the network hardware is actually working. The following was done with the Lenovo Ethernet adaptor plugged in, so disabling the WiFi hardware.

iwconfig

wlp82s0   IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=off
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

lo        no wireless extensions.

enp0s31f6  no wireless extensions.