DEV Community

DevOpsEnvSite
DevOpsEnvSite

Posted on

Dell XPS 9310 Setup With Pop!_OS

Overview

I decided to give Pop!_OS 20.10 a try on the new Dell XPS 9310 laptop.

Normally I go with the most recent Ubuntu LTS which is what gets the stamp of approval from Dell and Canonical.

I don't live in a country that has the Developer edition of the XPS pre-loaded with Ubuntu so I have to buy the Windows Home version and install Linux myself.

Here is how I have setup my machine.

Buying Decision

When you do a search online for Linux on the XPS 9310 you will find a mixed bag of people who have a fully working setup and people who haven't been so lucky.

My Specs:

Option My Choice
Processor 11th Generation Intel® Core™ i7-1185G7 Processor (12MB Cache, up to 4.8 GHz)
RAM 16GB 4267MHz LPDDR4x Memory Onboard
SSD 512GB M.2 PCIe NVMe Solid State Drive
Display 13.4" FHD+ (1920 x 1200) InfinityEdge Non-Touch Anti-Glare 500-Nit Display
Wireless Killer™ Wi-Fi 6 AX1650 (2x2) and Bluetooth 5.1

Reasons I made these choices:

  1. Some of the 32gb RAM configurations will give you the AX500-DBS wireless card. That is the card that most of the people online seem to have problems with. From what I read, this should be resolved in future kernel releases and might be fine by 21.04 releases of Ubuntu
  2. I always choose 1080p for longer battery life. I also don't think a screen that small needs the upgrade.

BIOS Options

sudo dmidecode -s bios-version
Enter fullscreen mode Exit fullscreen mode

Shows me that I am currently running BIOS version 1.1.1

There is a newer version of the BIOS 1.1.4 that was released on December 10 2020 but I haven't tried to download/install it yet. You still get firmware and system updates in Pop!_OS just like Ubuntu so there is still no need to dual boot.

image.png

These are only the options that I have changed.

Option My Choice Why?
Secure Boot Off When you download the .iso System76 says to turn this off
Storage Mode AHCI Have always run into problems in the past if this was set to RAID
Power Battery Configuration Primarily AC Use Make battery last a little longer(not sure if true)
Intel Speed Shift Off
Security Absolute Off

Pop!_OS Install 20.10

Get your base OS installed.

  1. Download the .iso from System76
  2. Create a bootable USB-c stick(or normal USB if you want to use the adapter)
  3. Boot from the USB stick
  4. Choose erase everything install + encrypt option
  5. Get the Dell repos added to your apt sources. This gets fingerprint and facial login working. Source link: Post By DanielNTX. This also allows you to pull updates from Dell. I haven't tested using howdy and facial login because i don't have a need for it.
  6. Settings > User > Add Fingerprint. The new fingerprint you setup wont work for login and sudo until you run the below command. 8. sudo pam-auth-update space-bar to add fingerprint option. Now you should be able to use fingerprint to login as well as sudo.
  7. Settings > Power > Turn off automatic brightness. I find this really annoying so I turn it off

OS Extras

These are some of the other things I installed and configured on my machine that are part of my workflow.

  • Settings > Power > Show Battery %

  • Keyboard Shortcut > Change Window Launcher to Super + space-bar

  • Add my SSH keys and config file from my old laptop and chmod 400 them

Start ssh-agent:

eval "$(ssh-agent -s)" 
Enter fullscreen mode Exit fullscreen mode

Add SSH key to agent:

ssh-add ~/.ssh/id_rsa 
Enter fullscreen mode Exit fullscreen mode
  • Config Git:
git config --global user.name "DevOpsEnv"
git config --global user.email email@example.com
git config --list --show-origin
Enter fullscreen mode Exit fullscreen mode
  • Install openvpn and configure my VPN:
sudo apt install network-manager-openvpn-gnome

###Open network manager and create VPN connection from .ovpn script###  
Enter fullscreen mode Exit fullscreen mode
  • Install VSCode - Login to github to sync settings and extensions

  • Install Google Chrome - Login to sync extensions

  • Install Zoom

  • Install Slack

  • Install DBeaver(Flatpak) - Add Db connections

  • Install FileZilla - Add SFTP connections

  • Install Spotify

  • Install Alacritty - Pull down my config file

  • Install Remmina - Setup RDP connections

  • Install Postman(Flatpak)

  • Install Password Manager Of Choice

  • Install Authy - No .deb or flatpak and I don't want any snaps or snapd running on my machine so I will have to find an alternative to authy :(

  • Install Stacer

  • Install Docker:

Add repo:

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common 
Enter fullscreen mode Exit fullscreen mode

Add Docker GPG key:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Enter fullscreen mode Exit fullscreen mode

Setup stable repository:

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
Enter fullscreen mode Exit fullscreen mode

Install Docker Engine:

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
Enter fullscreen mode Exit fullscreen mode

Run Docker as non-root user:

sudo usermod -aG docker <your-user>
Enter fullscreen mode Exit fullscreen mode

Reboot your machine to make this take effect

  • Install Docker Compose
pip install docker-compose
Enter fullscreen mode Exit fullscreen mode
  • Install cfn-flip - Allows you to convert cloudformation templates from JSON <> YAML and convert join to sub functions
pip install cfn-flip
Enter fullscreen mode Exit fullscreen mode
  • Install cfn-lint - Linter for cloudformation templates
pip install cfn-lint
Enter fullscreen mode Exit fullscreen mode
  • Install cfn-guard and cfn-nag (not yet complete)

  • Install aws-cli and add my config

  • Install awsume - Allows role switching between aws accounts under the same organisation

pip3 install awsume

###Add alias awsume=". awsume" to ~/.bashrc###
Enter fullscreen mode Exit fullscreen mode
  • Install htop

  • Install fd - find replacement written in rust

  • Install figlet

  • Install tldr - quick easy manpage examples

  • clone cheatsheets repo - community driven cheatsheets for linux commands

  • Install Node.js - From Nodesource

curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash -
sudo apt-get install -y nodejs
Enter fullscreen mode Exit fullscreen mode

Hardware Peripherals Compatibility

The XPS 9310 running Pop!_OS works with the following hardware

  1. Blue Yeti Nano
  2. Logitech MX Master3 Mouse
  3. Tethering to Samsung Galaxy S10+
  4. Cable Matters 10Gbps USB C Dock (USB Docking Station). I plug 2 external displays into the dock with the other peripherals mentioned and it has 1 cable that plugs into the XPS. Charging pass-through works so it is just the 1 cable required.

Problems

  1. No Authy deb or flatpak which is a disappointing
  2. If i want to close my laptop there is no way to authenticate with sudo as I need the fingerprint scanner. I haven't really tried to troubleshoot this one yet

That is everything that I can think of for now

Top comments (5)

Collapse
 
peelos profile image
peelos • Edited

Signed up here just to mention that this is an excellent guide and exactly what I was looking for.

I have a developer edition 32GB XPS 9310 OLED Dev Edition due to arrive this week and first thing I will do is follow your guide - many thanks for taking the time to share.

Did you ever solve or find a workaround for the 2 problems that you state? Any further improvements 1 year on?

Collapse
 
gianlubaio profile image
Gianluca Baio

Hi, did you ever managed to enable hibernation on the dell xps13 with Pop? I have the same machine and bought it with Ubuntu 22.04 pre-installed. Everything works rather fine, actually. But hibernation fails (I've succeeded on other Dell/Linux machines, both xps15, to use a combination of these guides: ubuntuhandbook.org/index.php/2021/08/enable-hibernate-ubuntu-21-10/ and gist.github.com/dawaltconley/8cb4c...)). When I tried on the dell xps 13 plus with Ubuntu 22.04, I can never wake the machine up after hibernation. I suspect it's because of the FN keys backlight, which seems to always stay on. NB: I have successfully disabled the keyboard backlight from BIOS, but for the top FN functions, it does still work and I guess it may break hibernation? Or am I missing something obvious?

Thanks!

Collapse
 
gianlubaio profile image
Gianluca Baio

I actually got more insight into this, I think. I believe the main issue was a problem with Dell's firmware - the newer version (I think 2.1) mentions a fix for a problem that prevented resume after hibernation (which was my problem). For good measure, I also installed Pop OS! and everything was working out even before the firmware update. Hibernation and resume work pretty well. Haven't tested whether the firmware fix makes it OK under the original Ubuntu too, though.

Collapse
 
giako profile image
Giacomo Russo

Thanks for sharing the guide!
I used it too on my Dell XPS 9310 setup.

Did you set up any energy saving packages such as tlp or powertop?

Collapse
 
devopsenvsite profile image
DevOpsEnvSite

No problem.

I have not installed powertop or tlp.

The battery life has been good enough for the short periods of time I am unplugged.