Before I started working as a backend developer in SATS, I was informed that I would be working in a Windows environment with Azure services. While I personally prefer to use free and open-source software, I was prepared to embrace whatever SATS would give me. I had convinced myself to take the path of least resistance, and possibly sometime down the line I could try to explore the options of running a system that was more free and open-source software friendly.

I’ve been with SATS for 10 months now and in a one-to-one conversation with my supervisor, Morten, we agreed that I should try to have something in addition than my daily tasks to work on. I thought it would be interesting to try and replace as much of my existing software portfolio on my current laptop with FOSS alternatives and document my experiences with doing so in the form of a blog.

I anticipate a few posts where we will cover some of the following topics:

  • Hardware Support
  • Replacing windows - Installing Debian
  • Changing the IDE - Replacing Visual Studio 2019 with VSCode
  • Outlook, Teams, Slack and other applications
  • Compromises and efficiency

The laptop I use in SATS runs Windows 10 Enterprise 21H2 and has served me well so far. It is configured in a way where the system administrators deal with licenses and updates, while I can focus purely on my work. I’ve also learned that we have backend developers working on macOS and using Rider, so the idea of using something different that Windows is not something new. Considering how well the current setup works, I do not anticipate any increased efficiency nor stability from a move to FOSS, this experiment is more of an ideological one.

For me a natural starting point is to replace the Operating System. There are a range of options when it comes to FOSS operating systems, but I believe that a operating system built on the Linux Kernel should provide the easiest path forward. Hardware support in Linux is generally good. However, newer hardware often requires a new kernel. My preferred Linux distribution, Debian, is well known for focusing on stability, this in turn means that Debian will require their Linux kernels to have fixed their teething issues, which takes a bit of time. Hence Debian is usually a bit behind when it comes to kernel versions. As of right now, the newest Debian is on kernel 5.10, while the latest stable Linux kernel is on 5.16.

The laptop I use in SATS is a HP EliteBook 840 G7. From what I have gathered from Wikipedia, this laptop was released in May 2020. From The Linux Kernel Archives we can see that the 5.10 version was released in December 2020. This might be a problem, but it might also just work. By using a Debian Live USB stick one can test Debian to verify the hardware support without making any alterations to the existing Windows installation. The operating system will run off the USB stick, so there is no need to change the existing disks or the master boot record. In order to do this I downloaded a Debian Live image and I created a bootable USB stick using Rufus. This laptop has a intel WiFi chip (Intel Wi-Fi 6 AX201). One thing one should be aware of is that Intel does not provide FOSS firmwares for their WiFi-chips, Intel only provides closed source binaries for their WiFi-firmware. Without the non-free packages the WiFi would not function, hence I downloaded the unofficial Live Image containing non-free packages.

The next step was to enter the BIOS to change the boot sequence. Vendors usually leaves a second or two for the user to press a certain key to trigger the BIOS. Which key varies between vendors and models. To be sure I kept spamming ESC, F1, F8 and F12. I got lucky, it was the ESC key.

The BIOS on a HP EliteBook 840 G7
The BIOS on a HP EliteBook 840 G7, accessed by pressing ESC during boot

I’ve been using Debian as my main OS for about 10 years, I still fear that one might face some challenges when installing on a new laptop. I’ve spent quite some time trying to sort out Wi-Fi, Bluetooth or sound on other laptops. This time around everything just worked. Well, everything I wanted to work did. The laptop has a fingerprint reader, and I believe it may have a slot to read SIM cards as well, these are however features I don’t use nor care about. They may work, and they may not, I have simply not tested them. I have a HP Z38c monitor connected to a USB-C and this monitor was automatically added as a display that extends the monitor of the laptop.

Debian running live from a USB stick.
Debian running live from a USB stick.

For now, I am happy to have confirmed that the laptop will work with Debian. The next post will try to carry out a full installation onto the hard disk drive of the laptop and try to setup Visual Studio Code and clone one of our repos.