DRAFT status. Commands likely have typos as I’m doing it live. Help fix?
Rationale
Debian - 3 flavors:
Stable
Testing
Unstable
I would translate this as:
Almost-Obsolete UltraStable
Prettymuch Perfectly Stable
Stable-ish
The always-current but unstable iteration of Debian is codename sid. The other versions start life out as sid and then become some other codename like Buster, Stretch, etc at some point in time. Most development and changes are happening on sid. If you have newer hardware, this is pretty much what you need to use. The Debian team is not large enough to spend a lot of time backporting new features to older kernels and packages (more than they already do) – which are the “more stable” non-sid variants of Debian.
It’s perhaps a bit philosophical in that a lot of these developers see new hardware as having ‘teething issues’ and won’t go out of their way to support it until the bugs are worked out. I don’t necessarily disagree, but it is an extremely conservative viewpoint and doesn’t always lead to the best end-user experience with newer hardware.
I don’t recommend Debian for the desktop use case for some of these reasons, but it is is otherwise an incredibly stable and reliable distro. In a sort of paradox: I trust the individuals maintaining this distro to ‘fight for the user’ far more than any other distro.
Installation
It seems clear that the Debian team doesn’t have access to the latest and greatest hardware. Installation is a bit of a pain. (If anyone verifiably on an open source dev team needs access to new stuff to test stuff, my IPMI door is always open. Contact me.)
The debian netinst installer was unusable with corrupt video on RX570, RX5600 and Vega64. Ouch. It is probably a framebuffer driver. The “failsafe” seemed to fail into corrupt video and even specifying nofb would lead to corruption as soon as the graphical grub screen exited. If you can, grab the ‘sid’ installer.
It was necessary (and easiest) to temporarily install a crappy old dual DVI GPU to complete the installation in my case. YMMV.
During the install I picked ssh-server and gnome for the desktop environment.
The first thing post-install is to update /etc/apt/sources.list
with ‘sid’ sources, unless you installed with a sid iso (and not testing or stable).
Disable Sleep
Debian, out of the box, will happily put the system to sleep via ‘Automatic Suspend’. Even when someone is connected remotely, if you install the GUI/desktop experience.
Steam
I was delighted to find the Debian Steam Wiki page. It’s great! Use that as a reference.
For my amdgpu RX 5600 needs I did:
# from a root shell/prompt
echo "deb http://deb.debian.org/debian/ buster main contrib non-free" >> /etc/apt/sources.list
dpkg --add-architecture i386
apt update
apt install steam
# accept EULA nonsense
# vulkan
apt install mesa-vulkan-drivers libglx-mesa0:i386 mesa-vulkan-drivers:i386 libgl1-mesa-dri:i386
Troubleshooting? See the section on the Debian steam wiki.
Oh, and though the Wiki doesn’t even mention it, I would recommend installing the Microsoft fonts package. So steam doesn’t look weird.
# as root
apt install ttf-mscorefonts-installer
Firmware Issues
Debian stores firmware in the non-free repositories. However, the hardware is too new for the firmware to have been added:
W: Possible missing firmware /lib/firmware/amdgpu/tahiti_uvd.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega20_vce.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navy_flounder_vcn.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_vcn.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navi12_vcn.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navi14_vcn.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navi10_vcn.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/green_sardine_vcn.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/renoir_vcn.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/arcturus_vcn.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navy_flounder_smc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_smc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navi12_smc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navi14_smc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navi10_smc.bin for module amdgpu
Once again, it is necessary to
cd /usr/src/local
git clone https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/
and copy the amdgpu firmware to /var/lib/firmware/amdgpu
manually. I’m not sure why building the linux firmware packages from this git repo aren’t totally automated! It’s more than a year on since the 5000 series GPUs are updated, and still this is necessary. I must be doing something wrong, or is Debian this hostile toward blobs still?
TODO addtl details
Update the initial ramdisk (which should no longer have firmware warnings!)
/sbin/update-initramfs -u
… and finally reboot to ensure everything loads properly.
Other Quality of Life Improvements
apt install chrome-gnome-shell
I like to install gnome extensions. This lets me do it through gnome’s extension website. Install cpufreq
obviously.
I also like tiling, but i3. Fortunately the amazing folks at system76 have implemented reasonably decent tiling in GNome. And because you’re on sid
your gnome is new enough for this to matter.
Pop Shell on Debian Sid
So there is a bit of a landmine here with the keyboard shortcuts. It cwill change default gnome keyboard shortcuts We’ll come back to that. Fortunately, Gnome has an easy “Reset All” keyboard shortcuts button. Know that option is in the GUI should you need it.
First, we need the extension and it isn’t on the Gnome shell extensions website (probably because of the landmines).
#as Root do:
apt install git make gnome-shell-extensions node-typescript
cd /usr/local/src
git clone https://github.com/pop-os/shell
make local-install
Then to restart Gnome, do Alt+F2 and type restart.
Finally, run the Gnome Teak utility and enable Native Window Placement
You’ll get a new icon in the top panel, and from there you can enable Tiling Windows (and set exceptions to tiling, such as the cpufreq popup).
You’ll probably want to add Steam, and its windows, to the exceptions for the tiling window manager. It doesn’t work that well with Pop’s window snap thing. (But better than i3…)
TODO