10 Oct 2019
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.
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.
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 -
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 -
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.
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 -
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
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
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.
sudo dpkg -i linux-firmware_1.182_all.deb sudo modprobe -r iwlwifi sudo modprobe iwlwifi
This should have the Wifi running.
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.
/boot/efi/loader/loader.conf file and add a line
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.
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 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.
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