Dell XPS 9310 Setup With Pop!_OS
Tags: linux, ubuntu, xps9310, dell
Published: 2020-12-19 10:32:49

## 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
``` 
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](https://cdn.hashnode.com/res/hashnode/image/upload/v1608367294625/SpGigIKg1.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](https://www.dell.com/community/XPS/XPS-13-9300-Does-fingerprint-reader-work-on-linux/td-p/7514958). 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. 
7. 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. 
9. 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)" 
```

Add SSH key to agent:
``` 
ssh-add ~/.ssh/id_rsa 
```

- Config Git:
```
git config --global user.name "DevOpsEnv"
git config --global user.email email@example.com
git config --list --show-origin
```

- Install openvpn and configure my VPN:
``` 
sudo apt install network-manager-openvpn-gnome

###Open network manager and create VPN connection from .ovpn script###  
``` 

- 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 
```
 Add Docker GPG key:
```
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
```
Setup stable repository:
```
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
```
Install Docker Engine:
```
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
sudo docker run hello-world
```
Run Docker as non-root user:
```
sudo usermod -aG docker <your-user>
```
Reboot your machine to make this take effect

- Install Docker Compose
```
pip install docker-compose
```

- Install cfn-flip - Allows you to convert cloudformation templates from JSON <> YAML and convert join to sub functions
```
pip install cfn-flip
```

- Install cfn-lint - Linter for cloudformation templates
```
pip install cfn-lint
```

- 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###
```


- 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
```


## 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