HP ZBook Fury 17.8 G8 as a Linux workstation

HP ZBook Fury 17.8 G8 as a Linux workstation

Update 10/09/2022 – The Hybrid graphics issue is fixed

As of firmware 1.9.11.0 the hybrid graphics option Just Works ™. Use LVFS to update your firmware to make the discrete GPU work.

Update 19/08/2022 – The Zbook is supported by the LVFS

I recently purchased a HP Zbook Fury 17.8 G8 to replace my Dell Precision 7740. This post is a review of sorts for the machine as a Linux workstation. I go over my overall impressions, the Linux support, and the performance of the machine.

As mentioned in a previous post, I bought this machine with the FreeDOS option. The OS I actually use day to day is Fedora Workstation and that is what this review is based on. When I initially got the machine I installed Fedora Workstation 35, in the meantime 36 has come out and that is what is currently installed on the laptop.

My use case

In order for this review to make any sense at all I should start by explaining what I do with my laptops and why I buy the types of machines that I do. I run a company called Prehensile Tales which specializes in consultancy around the Godot game engine. A lot of my job involves running the engine in a debugger, building the large C++ codebase it is based on, and running projects from customers.

Because our customers are spread all over the world I do a fair amount of travel. While most customers have workstations available on site it is far more efficient for me to be able to use my own tools and settings so I can get going faster.

Furthermore I often find myself spending a lot of time in Blender to look at customer models or just to bang out a quick test case. For this having a full-sized keyboard with a number pad is pretty essential to me.

Because I travel and I leave my machine around having secure boot enabled with encryption is very important to me. To make my life easier I only buy GPUs with a fully open source driver stack. At this time this excludes Nvidia GPUs. While Nvidia has since open sourced their kernel driver, potentially solving the secure boot problem (assuming their driver makes it into distribution kernels), their user space stack is still proprietary and apparently tied to very specific versions of the kernel component. It is going to be quite a while still before Nvidia cards “just work” the way AMD and Intel cards do.

So, while things are better: Friends still don’t let friends buy Nvidia, if these friends are Linux users 😉

To summarize: I need a machine that has a full-sized keyboard for Blender, a fast CPU for compiling, and an at least desktop adjacent class AMD GPU.

Why I picked this machine

The only brands that sell machines of the general type that I want are Dell, HP, and Lenovo.

My original plan was to buy another Dell Precision machine. Primarily because I now have had some experience with Dell’s Prosupport and the service was exceptional. However Dell currently does not offer AMD GPUs in any of their mobile workstations. Lenovo similarly does not have any mobile workstations with AMD GPUs currently available.

Because of this I ended up “stuck” with choosing HP. In the end this was not a bad thing.

Hardware specs

The configurator for this machine has many options. I ended up selecting the following configuration:

  • HP IDS W-11955M no WWAN Fury 17.3 G8 Base NB PC
  • FreeDOS
  • AMD Radeon Pro W6600M 8 GB Graphics
  • 17.3 inch UHD (3840×2160) Anti-Glare LED UWVA 550 for HD Webcam ALSensor
  • 32GB (2x16GB) DDR4 3200 SODIMM ECC Memory
  • 2TB PCIe NVMe Three Layer Cell Solid State Drive
  • 2TB PCIe NVMe Three Layer Cell Solid State Drive

I run the NVME drives in RAID-1 for data redundancy purposes.

Pictures

zbook_closed
zbook_keyboard
zbook_open
zbook_kepler
zbook_closed zbook_keyboard zbook_open zbook_kepler

Overall impressions

I really enjoy using this machine. The screen, keyboard, and performance are adequate to great. The build quality of the chassis feels very solid. There is hardly any flex to the machine, even the screen has barely any flex to it.

Installing Fedora 35 was almost entirely problem-free (see below) and all hardware works out of the box. There was very little to fiddle with (again, see below).

Firmware updates on the HP ZBook can be performed pre-OS as well as via LVFS. Firmware updates pre-OS can only be done over wired networks or from USB sticks.

The firmware setup menu is not very in depth but all of the features I wanted to configure were configurable. The UEFI does not have a CSM so loading legacy operating systems such as FreeDOS or Pre-Windows 10 Windows is not easy to achieve. For my purposes this does not matter but it might for yours.

HP only allows their “entry level” 4K screen when selecting an AMD GPU. In my Dell I have a more premium panel and while this screen is good, color accuracy on the Dell screen is better.

Linux support

Overall the installation of Fedora 35 was very smooth, after using LVFS to update the laptop firmware at least. Without the updated firmware the dedicated GPU does not work. If you have updated the firmware and are using ‘hybrid graphics’ (the default) all hardware should Just Work.

If you want to run with just the dGPU you will hit the following minor annoyance: The output on the laptop occasionally flickers when the GPU is mostly idle (AMDGPU bug link)

Fixing this requires the GPU’s memory clock to be artificially increased so that the display does not flicker. Doing this was relatively straightforwards:

First we need to enable powerplay settings in the amdgpu driver by adding amdgpu.ppfeaturemask=0xffffffff to the kernel command-line. This can be achieved by adding this to the end of the GRUB_CMDLINE_LINUX line in /etc/default/grub.

After this is done generate a new grub configuration by running grub2-mkconfig -o /etc/grub2-efi.cfg and rebooting.

At this stage we have a bit more control over the memory clock of the GPU. I have written the following script which I run at boot:

#!/bin/bash

for card in $(ls -d /sys/class/drm/card?); do
	echo "Setting ${card}"
	echo "manual" > ${card}/device/power_dpm_force_performance_level
	echo "1 2 3" > ${card}/device/pp_dpm_mclk
done

The script tries to locate the GPU. The echo 123 line tells the driver to only put the card in memory clock modes 1 through 3, skipping 0. Thus solving the problem. The primary downside to this is that the power consumption of the GPU jumps up by about 7 watts. This being a laptop this is obviously not ideal.

The keyboard and touch pad

The keyboard is one of the best laptop keyboards I’ve used. It is definitely an improvement over the Dell. The keys feel very tactile and the pressure required to press them in is pleasant.

Similarly the touchpad is nice and big and feels very responsive. Compared to the Dell it feels much less cramped.

I personally also really enjoy that there are physical keys both above as well as below the touchpad. I often find this useful and I miss it when they are not available.

The power button being in the regular row of keys is less of a problem than I had originally anticipated. The firmware has a setting to not respond to that key at all unless it has been held down for a little while. This setting is enabled by default and with this enabled it is just… odd, but not a problem.

Ports

The laptop is fairly well endowed with ports. On the left hand side:

  • RJ45 Ethernet jack
  • Kensington lock hole
  • 3x USB A ports
  • Headphone jack
  • Cardreader

On the right hand side:

  • Power plug (barrel plug)
  • 2x USB C / Thunderbolt ports
  • Mini displayport
  • HDMI
  • Full-size SD card reader

There are no ports on the back of the laptop.

Miscellaneous other hardware

Sound performance is very good. Compared to the Dell the sound is much more crisp and watching a movie or playing a game is very enjoyable.

The webcam is… acceptable. As seems to be the norm now with tiny tiny webcams the picture quality is acceptable but it is not great. Low-light performance is quite bad.

Battery life is about what you would expect from a laptop with these specs. Doing low-intensity tasks such as writing this blogpost the battery reports about 5 hours of life. When doing more stringent tasks such as compiling software this quickly goes down to 2-3 hours.

Performance

The ZBook feels very snappy in Gnome-shell with the W6600M as the default GPU. Building Godot and running 3D workloads all feel very fast. This feels like an upgrade from the Precision 7740 I was using previously.

Below I’ve put together a table with systems I’ve compared against. The Godot 3.4.4 build time was measured by downloading the tarball from the Godot website, untarring it, and building a target=release_debug X11 binary. All systems are running Fedora Workstation 36.

SystemCPUCores / ThreadsGPUMemoryStorage
HP ZBook Fury 17.8 G8Intel(R) Xeon(R) W-11955M8 / 16Radeon PRO W6600M32GB ECC2x2TB Kioxia NVME
Dell Precision 7740Intel(R) Xeon(R) E-2286M8 / 16Radeon PRO WX7100M32GB ECC2x2TB Kioxia NVME
Threadripper workstationAMD Threadripper 2990WX32 / 64Radeon RX5700XT128GB2x2TB Samsung NVME
Comparative hardware specifications
SystemGodot 3.4.4 build timeRise of the Tombraider FPS
HP ZBook Fury 17.8 G85m49.868s69
Dell Precision 77407m28.311s32
Threadripper workstation3m31.456s93
Benchmarking results
HP ZBook Fury 17.8 G8 - Radeon PRO W6600M

HP ZBook Fury 17.8 G8 - Radeon PRO W6600M

Dell Precision 7740 - Radeon PRO WX7100M

Dell Precision 7740 - Radeon PRO WX7100M

Threadripper - Radeon RX 5700XT

Threadripper - Radeon RX 5700XT

HP ZBook Fury 17.8 G8 - Radeon PRO W6600M Dell Precision 7740 - Radeon PRO WX7100M Threadripper - Radeon RX 5700XT

Conclusion

I’m generally speaking very happy with this machine and I believe that as of today (May 23rd 2022) this is the best Linux workstation (assuming it is bought in the configuration I did) currently available.

I am glad the HP supports the LVFS and firmware updates are a breeze!

Nerdy stuff

Here is the lspci output of the ZBook.

00:00.0 Host bridge: Intel Corporation 11th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
00:01.0 PCI bridge: Intel Corporation 11th Gen Core Processor PCIe Controller #1 (rev 05)
00:04.0 Signal processing controller: Intel Corporation TigerLake-LP Dynamic Tuning Processor Participant (rev 05)
00:07.0 PCI bridge: Intel Corporation Tiger Lake-H Thunderbolt 4 PCI Express Root Port #0 (rev 05)
00:07.1 PCI bridge: Intel Corporation Tiger Lake-H Thunderbolt 4 PCI Express Root Port #1 (rev 05)
00:08.0 System peripheral: Intel Corporation GNA Scoring Accelerator module (rev 05)
00:0a.0 Signal processing controller: Intel Corporation Tigerlake Telemetry Aggregator Driver (rev 01)
00:0d.0 USB controller: Intel Corporation Tiger Lake-H Thunderbolt 4 USB Controller (rev 05)
00:0d.2 USB controller: Intel Corporation Tiger Lake-H Thunderbolt 4 NHI #0 (rev 05)
00:12.0 Serial controller: Intel Corporation Device 43fc (rev 11)
00:14.0 USB controller: Intel Corporation Tiger Lake-H USB 3.2 Gen 2x1 xHCI Host Controller (rev 11)
00:14.2 RAM memory: Intel Corporation Tiger Lake-H Shared SRAM (rev 11)
00:14.3 Network controller: Intel Corporation Tiger Lake PCH CNVi WiFi (rev 11)
00:15.0 Serial bus controller: Intel Corporation Tiger Lake-H Serial IO I2C Controller #0 (rev 11)
00:16.0 Communication controller: Intel Corporation Tiger Lake-H Management Engine Interface (rev 11)
00:1b.0 PCI bridge: Intel Corporation Device 43c0 (rev 11)
00:1b.4 PCI bridge: Intel Corporation Device 43c4 (rev 11)
00:1c.0 PCI bridge: Intel Corporation Device 43ba (rev 11)
00:1f.0 ISA bridge: Intel Corporation Device 4389 (rev 11)
00:1f.3 Multimedia audio controller: Intel Corporation Tiger Lake-H HD Audio Controller (rev 11)
00:1f.4 SMBus: Intel Corporation Tiger Lake-H SMBus Controller (rev 11)
00:1f.5 Serial bus controller: Intel Corporation Tiger Lake-H SPI Controller (rev 11)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (14) I219-LM (rev 11)
01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch
02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 WKS-XM [Radeon PRO W6600M]
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller
58:00.0 Non-Volatile memory controller: Toshiba Corporation XG6 NVMe SSD Controller
59:00.0 Non-Volatile memory controller: Toshiba Corporation XG6 NVMe SSD Controller
5a:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5261 PCI Express Card Reader (rev 01)

Dmesg output

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.