Setting up Pop!_OS
I have been using Macbook ever since I started work(> 4 years). I used to be a Ubuntu/Windows user back in college. After starting work, I have been given a Macbook to work on and have not owned a personal computer/laptop since. I really love Macbook's hardware - the touchpad and keyboard are excellent. But due to recent developments at work, wanting to game a bit and the current Macbooks being just horrible got me wanting to switch to a Linux/Windows dual boot. Hence I decided to buy a Laptop for myself that was performant and tweakable in terms of hardware. I did a bit of research and landed on the Thinkpad X1 Extreme Gen 2.
System configuration:
CPU: Intel i7-9750H (12) @ 4.500GHz
GPU: Intel UHD Graphics 630
GPU: NVIDIA NVIDIA Corporation Device 1f91
Memory: 16GiB
Disk: 1TB SSD
The system can be upgraded to 64GB of RAM & I can add a secondary hard disk.
Why Pop!_OS?
I have previously used Ubuntu and Ubuntu-based distros in college, and we used Ubuntu servers predominantly at work as well. I have had a fair share of mishaps with messing with Linux OS back in college. I have accidentally deleted/formatted partitions, messed around with Grub resulting in failures to boot up and having to use Grub rescue or Ubuntu recovery quite a few times. And it would take me quite a lot of time to fix firmware and driver related issues as they were not well supported. So, when hunting for a new distro for the Thinkpad, I wanted to make sure that I chose one that had -
- Good support in the community
- Most things worked out of the box
- Positive posts by people on Reddit and other forums using the OS on the laptop.
When I was deciding on the distro to go for I was looking for a stable Linux Distro. The ones that I narrowed down were -
- Manjaro
- Pop!_OS
I decided on Pop!_OS because it is based out of Ubuntu which I am more familiar with compared to Arch Linux. And since I would be using Linux now and not Mac I did not want to have too many obstacles to deal with daily, at least till I got comfortable with my new setup. I would definitely love to explore Manjaro in the future as it seems to be quite popular in the community. I went with Gnome for Desktop environment because of its popularity. I will be trying out Xfce sometime in the future. Check out this Youtube channel to get a good sneak peeks at various Distros.
Note
Things are not all perfect with Pop!_OS. There are a lot of things that do not work and some need to be fixed post installation. Note worthy ones are -
- Wifi does not work after installation on Pop!_OS. Updating the kernel and installing the latest firmware fixes the issue.
- Switching to Intel Graphics increases battery life, but external displays are not detected.
- Fingerprint reader does not work.
Setting Up Pop!_OS
I will not go into much detail about setting up Pop!_OS from scratch there are great Youtube videos, and Pop!_OS has excellent documentation on how to do that. I will cover things that took me a while to figure out post-installation.
After you choose to reboot there is a chance that it is booting into Windows instead of Pop!_OS. If that is the case, you most likely not disabled secure boot.
At this point, you should have booted into Pop!_OS. You will have to connect a phone for USB tethering to get access to the internet as Wifi is most likely not working. Let us update and upgrade the system before we begin to fix the WIFI issue.
sudo apt-get update; sudo apt-get upgrade
Fixing the Wifi
To fix the Wifi problem, we need to update the kernel from 5.0.X to a higher version(I installed 5.3.2) and install a newer version of the firmware.
To get current Kernel version
uname -r
To upgrade to a newer version of the kernel we need to download the kernel files. You will find the list of kernels here(I installed 5.3.2). We need four files from section amd64. Download the files that do not have low-latency in their name.
Then from the terminal run -
sudo dpkg -i linux-*.deb
sudo reboot
Once the reboot completes, ensure that you are running the kernel that you installed.
uname -r
We need to download and install the firmware. Get the firmware from here. I got linux-firmware_1.182_all.deb
sudo dpkg -i linux-firmware_1.182_all.deb
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi
This should have the Wifi running.
Fixing Dual boot
Depending on how you installed Pop!_OS you may have the boot menu working correctly. Post my installation the boot menu from which you could choose the OS to choose to did not appear. After investigating, I found that Pop!_OS uses systemd-boot as boot loader instead of Grub. For the menu to show up, we need to change the config file.
edit /boot/efi/loader/loader.conf file
and add a line
timeout 5
When we restart, we should see the Pop!_OS boot menu. Windows not showing up in the boot menu I was seeing the boot menu, but I was not seeing an option to boot into Windows. After a bit of tinkering, I found the cause to be that I had multiple EFI partitions.
fdisk -l
I had two EFI paritions one for windows and one for Linux.
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 534527 532480 260M EFI System
/dev/nvme0n1p2 534528 567295 32768 16M Microsoft reserved
/dev/nvme0n1p3 567296 783702015 783134720 373.4G Microsoft basic data
/dev/nvme0n1p4 1998360576 2000408575 2048000 1000M Windows recovery environment
/dev/nvme0n1p5 783702016 1979265020 1195563005 570.1G Linux filesystem
/dev/nvme0n1p6 1979265024 1996240892 16975869 8.1G Linux swap
/dev/nvme0n1p7 1996240896 1998360572 2119677 1G EFI System
The safe solution here is to copy the contents from Window's EFI partition into Linux EFI. Guides - Link1 Link2
The basic gist is -
#create a mount point
sudo mkdir /windows
sudo mount /dev/nvme0n1p1 /windows
#copy the content from windows boot menu
sudo cp -r /windows/EFI/Microsoft/ /boot/efi/EFI/
If you restart, you should be able to see Windows as an option in the boot menu.
References and Important Links
It took me a long time to get my setup working and I made a lot of mistakes. Checkout the below links for more information if you are stuck with your setup or to explore more Pop!_OS
Installing Linux
- Ask Ubuntu Thread - Installing Linux on Thinkpad
- Arch Linux Wiki - Lenovo_ThinkPad_X1_Extreme_(Gen_2)
- Reddit Post - Installing Pop OS
Links to help with Wifi installation
- Ask Ubuntu - Missing Firmware
- Ask Ubuntu - Missing Firmware
- List of bin files to download from in case of missing message
- Ask Ubuntu - Handling installation of Firmware
- Instructions to fix Wifi as mentioned on a Reddit Post
Upgrading Linux Kernel
Other
- Youtube channel with awesome videos of various distros.
- Warning Message
- Reddit /unixporn
- Reddit /pop_os
- Reddit /gnome
- Reddit /thinkpad