I originally built my first desktop computer in the summer of 2017, just before the crypto-boom and GPU price spikes that occurred towards the end of the year. I was pretty happy with the way it turned out, paying about $1100 USD for the following specs:
1. Zotac GeForce GTX1070 AMP graphics card 2. 2x8GB of Corsair Vengeance LPX DDR4-3200 RAM 3. Ryzen 7 1700 4. WD Black 512GB M.2 NVMe SSD 5. Gigabyte GA-AB350M motherboard 6. EVGA SuperNOVA G3 550W Gold fully modular power supply 7. Corsair 350D Window MicroATX Case
The original purpose was to create a gaming desktop, so obviously I threw Windows 10 on it first. However, seeing it has a ton of computing power, I figured it would be great if I could use it for my development environment as well. Personally, I was never really a fan of Powershell since I was already too used to unix by the time I tried it out. I looked into using the Ubuntu subsystem for Windows for a bit, but never really got in the hang of it either due to weird permissions issues and interfacing between Windows files and subsystem files was confusing. Then, I tried simple installations of Ubuntu and Kali Linux as dual boots on a cheap hard drive that I had, but ended up bricking the installations due to misconfiguring the MBR or something, so I rarely used my PC for anything except Windows after that.
About a year later, I wanted to see if I could get MacOS running. I bought a cheap Crucial MX500 250GB SSD and went to town. Turns out, getting a Hackintosh on a Ryzen kernel is significantly more difficult, but there is a huge community in trying to get MacOS running on Ryzen, and I found a clear post that got it working in the end. This worked out reasonably well for me, but realized that running MacOS on non-Apple metal creates a whole load of issues. I ran into issues including: Nvidia web drivers failing to keep up to date, no support for Facetime/iMessage, poor audio/bluetooth experience, and random failures when booting up. There was also a resolution issue that I eventually fixed with SwitchResX, but could never get the refresh rate to 144hz for my monitor that supports it. It was pretty cool at first, but I lost interest and didn't boot into my Mac environment for a long time.
This weekend, I remembered that I still had High Sierra on my Hackintosh and wanted to upgrade to Mojave for the fun of it. After looking through the number of issues that people were having, I instead decided to ditch my Hackintosh dreams (until it gets better) for a Debian Stretch installation up and running. Debian is a open-source operating system based on Linux and uses an apt-based package manager. By default, Debian consists entirely only of free software. Google internally uses an in-house version of DebianTesting, so I wanted to try getting a similar experience on my home desktop.
I'm writing this post because within 24 hours of installing Debian, I've bricked my installation. Initially, it was because I was trying to get the latest Nvidia drivers (430.86), while only 390.116 was available through traditional
apt non-free lists. This was required by Lutris as I tried to get games on Linux. Only issue was I failed to completely remove my existing 390.116 version of
nvidia-driver, which led to a host of issues like
nvidia-installer --uninstall wanting to remove the conflicting versions everytime I ran
apt install. After that, I tried removing the default "LibreOffice" apps to free up space, but I think I also removed
lightdm and maybe even
eth0 because I lost my nice GUI and also the ability to connect to the internet. Needless to say, my installation was done. The following instructions will hopefully servce as a guide to others (and future me) in case this happens again.
Steps to setup Debian from fresh install
Boot with your flashed USB stick and select "Graphical Install" with preferred settings:
- Couple of options here. I personally enjoy Cinnamon for my desktop environment
- I used an entire 250GB SSD without a partition, but you could partition a larger disk beforehand if you don't have an entire disk to spare.
From Debian GRUB menu, do the following to boot with CPU-based graphics. Otherwise you will get a black screen.
eto edit the boot command under the first option.
- Find the line beginning with
Ctrl+xto boot with these settings
(Optional) Add your local user to sudoers with:
usermod -aG sudo username
su - username
Install some standard packages
sudo apt install vim curl git
contrib non-freeto each line in
/etc/apt/sources.list. This will allow
aptto find additional packages (like our nvidia-drivers)
sudo apt update && apt upgrade
Install powerline fonts
sudo apt install fonts-powerline
Install fish and omf
sudo apt install fish
curl -L https://get.oh-my.fish | fish
omf install agnoster
Change default shell
chsh -s /usr/bin/fish
Install Albert (spotlight helper for Linux)
- Navigate to Albert installer
- Add albert to "Startup Applications"
- Start albert and assign a hotkey. I personally use
Ctrl+Spaceand "Numix Rounded" theme
- Under "Extensions", add all the tools you want to show up
Set up USB 2FA as described in this article
sudo apt install ~/Downloads/google-chrome-stable_current_amd64.deb ./Downloads/code_1....deb
Sync settings with VSCode using Settings Sync extension
Create ssh key and register with Github
Add crypto and weather desklets for Cinnamon
I will likely continue to update this post as I find other stuff I should be adding to the setup guide, but this works for me so far. Here are some references I looked at on how to set up Steam, Lutris, and Go.