Wednesday, 1 April 2015

The Dell Precision M3800 Developer Edition Workstation

A few days ago I received my Dell Prevision M3800 Developer Edition Workstation. As a huge Linux fan, my feelings about this laptop are somewhat mixed. I'll go over the bad stuff first...

The Bad Stuff

The pre-loaded Ubuntu 14.04 LTS desktop is clunky. Enable one of the Compiz features, like Wobbly Windows, and you'll see how poorly the desktop performs. It's extremely choppy and slow, and contributes to a small amount of “keyboard lag” (enough for me to notice – I type very fast). While this kind of problem annoys some users more than others, it's the kind of problem that really annoys me. I want my desktop fast, smooth and responsive – not clunky and jerky (as is the case with the pre-installed Ubuntu 14.04 LTS on the M3800).

As someone who has had extensive experience installing Ubuntu on a wide range of hardware, I immediately recognized the problem as the “AccelMethod” issue (the default AccelMethod is SNA, which is quite buggy). In an attempt to rectify this, I tried changing the AccelMethod to UXA or Glamor using the following in my /etc/X11/xorg.conf:

Section "Device"
   Identifier "intel"
   Driver "intel"
   Option "AccelMethod" "uxa"
   # Option "AccelMethod" "sna"
   # Option "AccelMethod" "glamor"

Unfortunately, this did not work. When I logged out and logged in again (an action that would normally make the settings in xorg.conf file kick in), my newly created xorg.conf file was deleted (renamed to xorg.conf.[date]). The settings I created were not loaded, and the slow jerky/choppy desktop persisted. I disabled everything in startup applications, and checked my /etc/rc.local, but couldn't see what was deleting/renaming my xorg.conf.

Related to the poor choppy desktop performance is the mediocre support for the nVidia K1100M in Linux. Yes, there's a driver for it, and it “kind of” works, but there's horrible tearing (which completely destroys the end-user experience). Unlike the Windows driver, there's no sync/v-sync options in the nVidia Linux driver. For this reason, I'm stuck using the Intel HD 4600 - which isn't actually that bad for my use case.

The keyboard on the M3800 is so-so. Personally, I don't like it at all. I type around 120 words per minute, and this keyboard isn't able to keep up. Personally, I find it extremely annoying because of the high error rate resulting from missed key presses. I do not experience this problem when using my Logitech K810 keyboard with the M3800. I should point out that the dimensions of the K810 (i.e. key sizes and positions) are virtually identical to the M3800 keyboard, so I very much doubt that the “missed keys” problem I experience when typing quickly is due to me not being used to the keyboard. I also do not have this problem when typing on my Lenovo T440, or my MacBook Pro (both of which are running Ubuntu 14.04 and 14.10 beta, respectively).

This is a very minor issue, but the M3800 heats up a bit on the left-hand side (the left-hand side when facing it). It's not hot to the touch, but it's noticeably warmer on the left-hand side.

Finally – THERE'S A WINDOWS KEY!! Noooooooooooooooooooooo!!!

The Good Stuff

There's lots to like about the Dell M3800 Developer Edition. Firstly, because I use 2K and 4K external monitors, I will only buy laptops that have either a DisplayPort/mini-DisplayPort, or a Thunderbolt port. While a HDMI port can, in some instances, drive higher resolution monitors, most of the time you'll be restricted to a paltry 30Hz refresh rate (again, resulting in a jerky/choppy desktop experience). So thumbs up to Dell for including a Thunderbolt 2 port! Unfortunately, Linux does not yet fully support Thunderbolt. I couldn't, for example, use my Thunderbolt-to-Ethernet adapter. I could, however, using the Thunderbolt port to drive my 4K monitor at 60Hz.

The 3840x2160 screen is gorgeous. While I personally don't like glossy screens, the M3800 screen does not annoy me too much. If I have a terminal open in full-screen mode I can see my reflection (and multiple chins). I could try changing the colour scheme to something like black text on a white background to minimize the reflection, but I've been using grey text on a black background for as long as I can remember. I would prefer a non-touch matte screen, but that's just my personal preference. Perhaps if I lost some weight and got rid of my extra chins, my opinion about glossy screens would be different.

While I'm also not a big fan of laptop touchpads (I only ever use them if I'm travelling and it's impractical to use a mouse), the M3800 touchpad doesn't get in the way. I've found it one of the better touchpads. When I type quickly on most laptops, I usually unintentionally tap on the touchpad with my palm, which sends the cursor/mouse pointer off to some other location (so I end up typing in a part of a document I don't want to be typing in). I'm sure most fast typists out there know what I'm talking about.

The M3800 is fast. Even though it's still a 4th generation Intel i7, it's plenty fast. During the course of my day job I'm often tarring up and encrypting large files. While I don't have benchmarks, the M3800 performs these tasks much faster than my T440 or MacBook Pro. Typically, these operations are:

$ tar -czvf somefile.tar.gz somedir
$ openssl rand 32 > key.bin
$ openssl enc -aes-256-cbc -pass file:./key.bin -in somefile.tar.gz -out somefile.tar.enc

It's not uncommon for these files/directories to be 10GB+.

Final Thoughts

As mentioned in the beginning, my feelings about the M3800 Developer Edition are mixed. I found the the pre-installed Ubuntu 14.04 LTS simply wasn't configured correctly, resulting in a lacklustre desktop performance that I'm assuming Dell expect M3800 owners to overlook because they're…. “developers”? I don't think there's any excuse for providing users (regardless of their line of work) with a product that performs sub-optimally. Having said that, I'm sure that most “developers” would be able to work around this problem one way or another (if they really wanted to). My solution was to install a fresh copy of Ubuntu 15.04 beta – everything works, I'm very happy with the performance, and I can change my xorg.conf file!

For me, the biggest let-down is the keyboard, which isn't that big a deal as I'm usually using my Logitech K810.

I think it's also early days for these ultra high resolution screens on Linux. The proprietary nVidia drivers don't fully support the K110M, and the Intel HD 4600 has trouble driving the 3840x2160 screen (which is why I'm running in 1920x1080). There are also some problems with Ubuntu's DPI scaling (it hasn't yet been perfected in Linux – many glitches still exist).

For all the bad points I have mentioned above, I still really like the Dell M3800 Developer Edition. It's certainly not for the faint at heart (non-Linux person), which is a shame. I would love to see one of the major OEMs release a Linux laptop that was ready for mass consumption and doesn't have to be tagged as a “developer edition” laptop. In my humble opinion, this could very easily be achieved, but unfortunately the M3800 Developer Edition doesn't quite fit in to that category – yet. Who knows, perhaps with Ubuntu 15.04 final, my opinion about the M3800 Developer Edition being ready for “mainstream” users may change, but at this point in time, it would take a very brave and resourceful user to harness the power of the M3800 Developer Edition.

If I were in charge, this is what I would have done:
  1. Not included the nVidia K1100M – just use the integrated Intel GPU.
  2. Gone with a non-glare Full HD (1920x1080) matte display.
  3. Included a better keyboard that accommodates those who can type fast.
  4. If rolling with Ubunut 14.04 and the 3.13 kernel, set the default AccelMethod to UXA.
  5. Placed a Ubuntu logo on the “Windows key”.
  6. Waited for the new 5th generation Intel CPUs before refreshing the Precision Workstation line.
I'm happy with the Dell M3800 Developer Edition. For my personal use case, it's an awesome laptop (and I'm glad I have finally voted with my wallet and supported Linux by purchasing a laptop that comes with Linux pre-installed). I just wish Dell had gone the extra mile and released the unit with Ubuntu configured correctly. The default configuration of Ubuntu on the M3800 is sorely let down by using the default SNA AccelMethod method instead of UXA (or Glamor, for that matter). This single misconfiguration alone forced me in to installing Ubuntu 15.04 beta.

I look forward to the M3800 refresh.


As mentioned by Martin Hansen in the comments section below, it's possible to use SNA without tearing by setting the "TearFree" option to true in  /etc/X11/xorg.conf:

Section "Device"
   Identifier   "intel"
   Driver       "intel"
   Option       "AccelMethod"    "sna"

   Option       "TearFree"       "true"

Unfortunately, one of the side-effects of the above is the hotkeys for adjusting the screen brightness will no longer work. You can still set the brightness level from the terminal using:

sudo sh -c "echo 2000 > /sys/class/backlight/intel_backlight/brightness"

This Phoronix article by Michael Larabel goes in to detail about the advantages of SNA over UXA: