Returning to Linux after 10 years

After close to a decade of using Windows and MBP for development, I recently switched back to Linux as my development platform. For this, I chose to run PopOS! on Oryx Pro laptop from System76.

In terms of capabilities, Oryx Pro is very impressive. It can house a NVidia GeForce 1060 or 1070, up to 64GB RAM, and a whooping 10TB of storage space!!

While it is not from a big company (e.g., Dell, Lenovo), it is well-built, sleek, and sturdy. In terms of what we have come to expect of form factors of laptops, it is a bit bulky; especially, if one is switching over from MBP. However, it compensates pretty generously in terms of capabilities.

In terms of experience, everything worked seamlessly out of the box. No hiccups or DOA. Customer service and tech support at System76 have been very helpful.

As with life, no experience is without warts :) After few days of using the laptop, I realized there were three major annoyances.

  1. The power port accepts a L-shaped power plug and it is right next to the HDMI port. Hence, when the HDMI port is occupied, the power plug cannot rotate 360 degrees. So, there may be undue pressure on HDMI port and power port due to the interaction between the plugs. I suspect an accidental tug could cause non-trivial damage. A straight power plug can easily solve this problem. [Update: Using a mini-display port located away from the power port solved this problem.]
  2. The integrated Intel GPU is not hooked up to any of the three external display port. This means NVidia GPU is not available as a dedicated compute GPU when hooked to an external monitor, which is when one would want to use a dedicated GPU for compute purpose.
  3. A single battery charge lasts for less than 90 minutes. This is way less compared to that of a Macbook Pro under similar workload when hooked on to an external monitor (driven by NVidia GPU). I wonder if this would have been the case if Intel GPU could drive external monitors. So far, I have been trying various tweaks and they seem to be making some difference. I need to run more test to confirm the observed difference is both sustained and substantial.

Even with the above annoyances, if you are looking for a configurable dev-ready laptop (CPU and GPU) at a reasonable price, then I’d happily recommend Oryx Pro. Just talk to the sales/tech team at System76 and validate your assumptions before ordering your laptop.

My past experience with Linux is, if you can find and configure appropriate device drivers and applications and get them to play nice with each other, then Linux is developer’s heaven. The finding and configuring was always the pickle. Pleasantly, this does not seem to be the case today.

Oryx Pro came pre-installed with Pop OS!, a Ubuntu 17.10 based distribution. Upon switching on the Oryx Pro, all devices in the laptop were operational and available to be used via software. Fn+F10 toggled the webcam. VLC was able to show the feed from the webcam. USB ports operated at their top speeds without any changes to kernel flags. GPU was recognized with no issue. External HDDs, monitors, keyboards, and trackballs (yes!) were recognized with zero tweaks . I could configure the trackball keys in under 2 minutes. I was able to configure Gnome/X display to span across multiple monitors. Within 3 hours, I had the laptop configured with all of the required software (including downloading them from the web). Yes, I had arrived at my developer heaven :)

Then, I faced two issues.

  1. I started setting up my personal app-specific preferences. Unlike on a PC or or a MBP, I had to manually identify and copy relevant configuration files from a different machine. This took some time for two reasons: a) this was a once-in-a-while kinda task that I was rusty with and it required quite a few web look ups, and b) there were no applications to do migrate my app-specific preferences between Linux and PC/MBP. Since this is an infrequent task, I consider it as a minor convenience.
  2. I started playing with NVidia Settings app to switch between Intel GPU profile and NVidia GPU profile. While the app required me to logout for the switch to take effect, I had to reboot the laptop for the switch to take effect. IMO, this is a major annoyance.
    Now, it is possible that I may be doing something wrong here and all that is required is indeed logout and login. Even so, it is still a major inconvenience if one has many apps running at the time of such a switch.

Despite these issues, it was very refreshing to be back on a platform where I can easily install apps from binaries or build apps from sources and get on with my work. [To appreciate this feeling, one should try to install libraries for Python from source on Mac and Windows.]

While I will need to use a PC or a MBP from time to time for specific tasks (cos’ they are easier and better-supported on a PC or a MBP), I am currently a happy to be back on Linux for development.

Programming, experimenting, writing | Past: SWE, Researcher, Professor | Present: SWE