New Laptop or why I will never ever buy an NVidia GPU again

After my old Dell Precision M6500 died a slow death of overheating, I had to replace it and as I had quite a good experience with two Dell Precision notebooks, I wanted a more modern Dell Precision again.
Unfortunately these devices are quite expensive (Dell sells them as mobile workstations, so they are quite powerful), so I only could afford a used device.
My choice fell on a Dell Precison M7600 as these are powerful enough for running Gentoo on them and were in my financial range. While searching the internet for used M6700 devices it became clear quite soon that my only choice were used M6700 with NVidia Quadro GPUs. Although Dell provided M6700 with AMD Fire GPUs as well, it seems most of Dell's Precision notebook customers prefer NVidia GPUs over AMD GPUs and thus I couldn't find an M6700 with AMD GPU that was neither broken nor too expensive.

Since I had very good experience with all ATI/AMD GPUs and the open source radeon/amdgpu drivers in all of my computers, I had the hope that I could achieve similar results with NVidia + nouveau. Oh was I wrong about that...
Perhaps it's the combination of NVidia Quadro K3000M + nouveau + Xorg + KF5 that constantly freezes my system, I don't know it, but having a Desktop that freezes as soon as you have opened a couple of windows is everything but not useful for daily work.
Searching the freedesktop bug database for nouveau issues revealed lots of bugs that had similar reports to what I was suffering from and no indication that these issues might get fixed anytime soon.
The only "fix" for my issue was to disable render acceleration of the Xorg nouveau driver and change the rendering backend in KF5 from opengl to Xrender. Of course that means no opengl, so no nice shiny desktop effects in KF5 as well. Great!
I do not blame the nouveau developers for releasing crappy drivers. These guys did most of the development of this driver by reverse engineering and the very minimal hardware information NVidia provided. I'm honestly thankful for their work and that we have at least some driver that performs better than the former nv driver that perfomed horribly.
But I blame NVidia for still treating free software users as second class people. I don't care how good or advanced their binary blob drivers are. I don't want to use them! I want free software on my system! So I can only join Linus Torvalds and say "fuck you NVidia!", I will never ever buy one of their crappy cards again!
Unfortunately there are still some more drawbacks with my new notebook. Here's a summary of all issues I have:
  • The GPU doesn't work with open source drivers
  • No backlight on the keyboard (but fortunately can be purchased as spare part)
  • The screen's resolution is only 1920x1080 and not 1920x1200 as with my previous two Dell Precision notebooks
  • The battery cannot be removed/inserted while the notebook is operating with AC power because the notebook instantly shuts off

Issues with apache + nghttp2

For quite a while now, apache-2.4 can make use of the http2 (SPDY) protocol via nghttp2 package.
Unfortunately I had quite some trouble getting the protocol to work on my apache webserver and I couldn't figure out what the issue was until I enabled debugging for that module:
${EDITOR} /etc/apache2/modules.d/41_mod_http2.conf

Replace the line
# LogLevel http2:info
with
LogLevel http2:debug
and restart your apache server. Now try to access some site that should be served via HTTP2. After doing so, grep the apache log files for the following string:
grep -Fr "http2:debug" /var/log/apache2
and you should most likely find the problem with your HTTP2 setup.
Don't forget to disable debug logging again or else your log files will quickly become huge.

In my case it was a cipher combination that was not allowed to be used for HTTP2. After disabling the specific cipher, HTTP2 finally worked on my apache.

Replacing evdev with libinput

In Gentoo bug #601132 we want to switch from evdev as primary input driver for X to the shiny new libinput.
For me it turned out to be harder than expected as can be clearly seen in the bug.
Long story short, there's a couple of things users should keep in mind if they switch from evdev to libinput:
  • Remove any XKBRules entries from your xorg configuration files or else you can get very strange (and wrong) key mappings for your keyboard.
  • Packages that have the libinput USE flag shoud have it enabled and the package being re-emerged.
  • Additionally the evdev USE flag should be disabled for the very same packages.

New versioning scheme for my stage1 tarballs

I decided to shift the version numbers by moving the minor version number to major. So starting with the 15th release of my stage1 tarballs there will only be a major version number starting with 015.

New dev machine (yay!)

So I finally had the time to assemble my new dev machine after a long wait for the arrival of its components.

As with every new machine I have found some issues:
  • My Logitech G15 keyboard did not work until the OS got booted. So I wasn't able to use that keyboard for accessing the mainboard and the RAID-controller BIOS or navigate in grub until I upgraded the motherboard's BIOS to the latest available version.
  • Somehow the onboard SATA doesn't work reliably. All devices other than my optical devices won't get even detected by the OS. Most likely a driver and/or configuration problem in the kernel but still very disappointing.
  • I had to replace my good ol' Adaptec 4805SAS RAID controller with an Areca ARC-1680ix-12 as the new mainboard does not even recognize the old controller during POST. That also required me to re-create all the RAID-arrays (one RAID-10, two RAID-1) on the new controller which required to first backup all data on those arrays.

One positive effect is that my new graphics device which needs the amdgpu driver finally works. As I wrote in an earlier post, it didn't work in my old dev machine.
I am now a happy user of a dual eight-core AMD Opteron 6328 machine with 128GB of ECC-RAM. That should be enough for a couple of years doing Gentoo development.