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.