'( now )

installing Linux on an HP ProDesk 405 G4

15 Dec 2019
CPU/GPUAMD Ryzen 5 Quad-core with Radeon Vega 11 graphics
Storage256GB SSD
WirelessIntel wireless
  • I updated the BIOS (over the network) from 2.02 to 2.09. Initially the BIOS interface refused to connect to the network over ethernet – reverting the BIOS config to the factory settings fixed this.

  • The initial Linux install was bumpy. I installed the amdgpu drivers, installed the firmware, and disabled modesetting. But on boot, the amdgpu drivers would hang the kernel. Checking the /var/log/dmesg.0 file revealed an error: “Unable to locate BIOS ROM.” The cause of the error was using Legacy boot in the BIOS. Disabling that and booting through UEFI enabled the amdgpu drivers to run.

  • There were still graphical artifacts on the system, though. There were two fixes I had to apply:

    • The first one fixed the more general artifacts I saw (ones that spanned the whole monitor at seemingly random intervals). The fix included putting amd_iommu=on iommu=pt in the GRUB config.

    • The second one fixed XFCE. There were artifacts around window borders/text input when the compositor was enabled. The fix involved changing the vblank_mode to xpresent for XFCE (apparently it’s related to some bug in glx that only affects amdgpu devices?)

      xfconf-query -c xfwm4 -p /general/vblank_mode -t string -s "xpresent" --create
  • Also had to install iwlwifi-firmware to enable the wireless card.

I’ve got it running Devaun ceres (unstable), using BTRFS for the root/home filesystems. I’m expecting the performance to be similar (or slightly worse for certain workloads) than my previous custom PC build (which had an AMD FX-8320 and an NVidia GTX960), but I’m hoping that it’ll be less noisy and a little more convenient to use.

Update Fri Jan 10 2020

More issues with the AMDGPU drivers. If I run a (probably malformed) OpenGL program I wrote, it’ll segfault and crash the amdgpu drivers

[  513.713955] [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* Waiting for fences timed out!
[  513.714083] [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* Waiting for fences timed out!
[  518.587944] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx timeout, signaled seq=7835, emitted seq=7837
[  518.588046] [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process test_collisions pid 4263 thread test_colli:cs0 pid 4264

Aparently this is an issue that’s currently being worked (as of today). There have been reports of better stability in the latest build of the kernel, so I’m going to have to give 5.4.0-rc7 from drm-next a shot and see if that works.