I've been using a somewhat dated but nice enough system for a few years now - HP EliteDesk 800 G1 with an I7 processor. When purchased, it had 16GB RAM and I upgraded that to the max 32GB sometime back. It works really well for general programming combined with some other home uses but struggled a bit when also combined with development that included Kubernetes, Docker and also screen recordings and videos using OBS Studio.
I did some research and finally decided on a new system - an HP Z1 G5 tower. At the time, some direct from HP offers were going on. After spending probably too much time figuring out what options were "must haves" I finally came up with a system configuration and a plan. I really didn't want to break the bank but I did have some things that I'd like to work on that were limited with the existing system. I went with an I7-9700 CPU, the default 4GB of RAM and a 1 TB HDD for my baseline.
I wanted some ability to work with technology items such as:
To support this, I decided an additional video card was worth it. I included a Radeon 520 graphics card (in addition to the Intel i915 onboard video) as a starting point. Nothing super high end but good enough. I made the choice to go with the optional 500w power supply instead of the 250w to allow more customization/changes later. This affects available video card choices significantly and for minimal cost was a good future proofing option.
To save a few dollars, I chose an option to only have FreeDOS installed. This dropped the cost by over $200 vs the Windows 10 Pro option.
I've been doing a lot of professional software development lately that involves Docker / kubernetes and I've also been working with those and general virtualization items at home. One thing that was in short supply at times with the old system was memory so the base 4GB memory wasn't going to be enough. The memory options from HP would be pretty pricey since I wanted to start with 64GB RAM and have slots left. To save a pretty significant amount of money, I went with some 3rd party RAM and ordered a 64GB (2 x 32GB) kit. This actually gives me 68GB total with the original memory included. The only downside is that the speed of the new memory isn't quite as fast as the memory from HP. That is the cost/performance trade-off which seems worth it for now.
I already had a SATA SSD and an NVMe / m.2 drive. I'm not leveraging those fully in the new system yet. I'm still debating some overall setups so I'm just running off the HDD for now.
So the current overall config is:
- i7-9700 3-4.7 GHz (upgrades up to an i9-9900k 3.6-5 GHz)
- 68 GB RAM (upgrades up to 128 GB)
- i915 and Radeon 520 video (upgrade options include NVIDIA GeForce 2070)
- 500w Power supply
- 1 TB HDD
- 1 TB NVMe / m.2
- 480 GB SATA SSD
When I received the system, it was boxed well and delivery was pretty prompt. First boot was uneventful other than a bit slow and only had FreeDOS installed.
I had made the choice to NOT spend the $1 each to LEAVE OUT the embedded security module and absolute persistence module. That might have been worth while.
My goal was to continue running UNIX like operating systems. I've been running Ubuntu 20.04 for a while and decided to try 20.10 with the new system. Note that 20.04 is the LTS (long term support) version where as 20.10 won't be supported very long. The good news is that the system was marked as Linux compatible and based on some of the existing HP direct options I figured it would be easy to setup.
At this point, I did run into an unexpected problem. I could not find a way to get into the BIOS / UEFI settings. Every HP documented method and many other ideas off the internet failed for over 2 days. I ended up learning a bit more about FreeDOS and the factory delivered configuration and even got to a Grub menu but was stuck due to the keyboard and mouse not communicating during that point in time. After many Google searches, I ran across one person who reported the same issue and they provided a solution they said worked mostly.
So what was the secret they used? Sigh. They switched FROM plugging the wired USB mouse/keyboard into the BACK USB ports TO the FRONT USB ports. Yes, that is all it took. Apparently the back USB ports are not active at that point in booting but the front USB ports are.
After this, I was able to get into the systems settings. I also installed the additional memory and SSD storage. I got Ubuntu 20.10 installed and without a huge amount of tweaking had my dual monitor setup working. In fact, so far the video has been more stable than the other system with 20.04. I'm still on the default Radeon drivers vs optional amdgpu item - somewhat because amdgpu doesn't seem to support 20.10. Looks like they only support LTS versions of the OS. Maybe some work-arounds available but good enough for now.
In my struggles to get to the system settings and get an alternative OS installed, I ended up with what is a bit of an odd setup. I ended up leaving the FreeDOS install and the Syslinux / SeaBIOS parts and pieces in place and can actually boot into them still if desired but now I have UEFI working and Ubuntu 20.10 boots by default. I'd like to totally reformat the drive but am still a little worried due to the depth of hardware security tied in to everything. I'm actually somewhat surprised that I didn't end up in an unusable state already from my early efforts.
I've have some of the security turned off at the moment but do worry about things such as unsigned OS modules, etc and things that affect the booting which could be reverted. For some details on that; lookup HP Secure Start, SecureBoot, TPM, etc. One link to info is this HP doc.
Overall performance is pretty good. I suspect even great once I get the primary OS items moved over to SSD storage.
I've got most of my development stuff reinstalled and working - although I'll document some challenges.
Major SW items
- Microk8s 1.19.3
- docker / docker-compose
- kompose
- GCC, etc tool chain items
- Java 11 / GraalVM 20.2.0
- DBeaver
- Eclipse
- lxd
- pack
- Skopeo
- podman
- OBS Studio
- cwctl-linux / codewind
So I mentioned challenges a minute ago. This has less to do with the new hardware and more to do with Ubuntu 20.10 and some software packages. I ran into a number of issues with Microk8s during this switch but some of it was due to changes in Ubuntu combined with how things work in Microk8s - mostly involving firewall setup. The Microk8s setup (for HA at least) now includes Calico but as mentioned - some firewall aspects have been challenging since then. This has been an somewhat ongoing challenge but I think I have a setup that works but I need to persist the firewall changes once I'm convinced. I've stopped using UFW for managing firewall changes and now just use iptables (1.8.5 / nf_tables) commands directly. I'm still sorting out items related to iptables-legacy yet. I wish this aspect wasn't so convoluted.
I've got 2 network interfaces in the Z1 and a spare wireless router so I am also experimenting with various interesting items and different kinds of setups.
So overall, I'm happy with the new system. Already learned a large number of new things or improved some skills a bit (iptables, UEFI, Calico, CoreDNS). I've got some more DNS / discovery work I'm doing. I'd really like to find a good but secure method of sharing some DNS data between Microk8s and my home network. I've still got some research to do regarding CoreDNS, dnsmasq, ddns, bind, dd-wrt and probably a few other items for that. I also have been looking at a number of other network related items as I work with microk8s, calico, etc. There are many interesting aspects to IP4 and IP6 that are now a bit easier to experiment with - llmnr, multicast dns, etc.
On top of that, I'm working out final plans for some network storage.