After considerable effort and not inconsiderable frustration, I believe I have a Linux laptop configuration that “works”. Not perfectly, but possibly well enough.

Disclaimer: the observations that follow are true and accurate as far as I can determine. They're made without any real, deep understanding of the root causes. YMMV.

When last we met our intrepid hero [fool? —ed], he'd swapped hard drives to put Windows on spinning rust and Linux on the SSD. That worked, and I lived with it for a few days, but having 100+G of disk permanently consumed by Windows just didn't leave any breathing room.

I didn't want to make it impossible to boot Windows because I can imagine some future BIOS upgrade or something that's going to require Windows. If I ever have to ship this laptop off for service somewhere, having it boot Windows will simplify things, I'm sure.

I had another, new laptop drive lying around, so I swapped things around again. I took out the Windows drive and stored it carefully away, swapped the SSD back into the “main” drive slot, and put my new, blank disk in the expansion tray.

Ok. Lots of disk space, Linux up and running, time to settle in.

But all was not well for our hero. There are two things that a laptop absolutely <rfc2119>must</rfc2119> do: it must boot, suspend, and resume reliably and it must be able to send output to the VGA port.

This our hereo's new laptop at this point could not do.

It's worth noting that I picked a not-quite-bleeding edge laptop that uses a proprietary video card. I scrawled “kick me” on a piece of paper and taped it to my back. I've no one to blame but myself.

I wanted something with a high resolution LCD, lots of memory, and a fast processor. I acknowledge that I took a risk on the video card. There are a bunch of web pages that claim successful results with this laptop. I gambled.

And man did I very nearly lose. It took a frustrating number of hours of experimentation and abject failure before I found something that worked. Had not the very last thing I tried succeeded, I had already decided that I was going to cut my losses and give up. I had come very close earlier in the process too.

Experience has taught me that there are [at least —ed] three interacting systems involved in driving an external monitor: the underlying hardware, the drivers for that hardware, and the window manager that orchestrates the whole thing.

On this laptop there are two graphics cards; the external display ports are only connected to the NVIDIA (Quadro K2000M) graphics card. There's one VGA port on the laptop. There are two DVI ports and one VGA port on the docking station. (Pro tip: if you're plugged into the docking station, the VGA port on the laptop is disconnected.)

On this laptop, it's possible for the system to switch between graphics cards. This is called “Optimus”.

There are two sets of drivers for the NVIDIA graphics card, proprietary ones from NVIDIA and an open source “Nouveau” set.

I cut my teeth on the “Debian” flavor of Linux (version 0.99.something). I like it better than the “Red Hat” flavor. I used Debian for a long time, then Ubuntu when I found the politics of Debian inconvenient. But I think Ubuntu Unity is an abomination. I discovered Linux Mint a while ago and have used it successfully in virtual machines for a while.

I installed Linux Mint with the “Cinnamon” desktop.

I tried, for a long time and utterly without success, to use the open source Bumblebee project and the NVIDIA drivers to get Optimus working. I was able, sometimes, to get an application displayed on an external monitor, but I could never get the desktop to span across displays.

I found web pages that said if you just specified “discrete graphics” in the BIOS (effectively disabling Optimus and always using the NVIDIA card), the NVIDIA drivers would work with multiple monitors.

That was not my experience. [This was the first point at which our hero almost gave up —ed]

Then I found comments on some blog post that suggested the Nouveau drivers would work with multiple monitors if you specified “discrete graphics”. So I tried that.

Lo! And behold! It worked.

Except… [You knew there was an “except”, right? —ed]

The machine would no longer boot reliably. With the Nouveau drivers, about 3 times out of 4 I'd get a black screen at boot time. No cursor, no keyboard, no nothin'. [This was the second point at which our hero almost gave up —ed]

Eventually I found reports that adding “nox2apic” to the Linux boot options would resolve this problem.

And it did.

Fsck me! I have it working!

Except… [No, our hero wasn't expecting another “except”, either —ed]

Now it wouldn't reliably resume from suspend.

I poked around for a bit and finally found some bread crumb in the system log that suggested some part of the Cinnamon infrastructure wasn't resuming properly.

I don't actually give a tinker's damn about fancy window animations or transparency or whatever-the-fsck the hot new desktop provides. So I decided to just switch to “MATE” which used to be called “Gnome” and I neither know nor do I care about why it got forked. Mint ships with MATE not Gnome. What-ever-the-fsck.

This is the point at which I resolved to give up. If this did not work, I was done.

But it did.

Imperfectly. It boots. It suspends and resumes. It drives multiple displays (the laptop plus two external monitors at the moment). It does not react gracefully to some kinds of configuration changes. Switching from different displays to “mirrored” displays, for example, sends the LCD panel into a fit from which it cannot be coaxed back.

I think I can live with that. Maybe. I'm going to CA next week where I'll have a chance to carry my laptop around, occasionally plugging it into projectors. That works reliably enough or it doesn't. I'll let you know.

There are probably other stories to tell from the trenches too. I'll try to keep a list.

Comments:

The nVidia card I have on the shelf at the moment showed the same issues Norm, no graphics on boot, especially after a kernel upgrade

What spec is the disk you put in please? Sata 3/6 2.5"? How easy to replace please. That approach may have been the simpler one from the off? Write a boot to SSD, data on replacement Sata disk, just leave the original Sata disk if needed for return to base?

Posted by Dave Pawson on 07 Jan 2014 @ 08:45am UTC #

It's utterly straightforward to replace either of the drives. Just unscrew the appropriate cover and pop it out. Took less than five minutes.

Any SATA 2.5" drive will work, I think. The one I had is a fraction thicker than the one I removed. If I'd been ordering one especially for this laptop, I'd have investigated a little further before ordering it. But it seems to be working fine.

Posted by Norman Walsh on 07 Jan 2014 @ 04:26pm UTC #

I never understood what people have with that "it just works" nonsense.

Posted by Vojtěch Toman on 07 Jan 2014 @ 09:14pm UTC #

For those following along at home, I decided to see if the problem with the NVIDIA drivers might, per chance, have been related to the nox2apic boot option.

Nope.

Posted by Norman Walsh on 08 Jan 2014 @ 04:39pm UTC #

I know you don't want to know why, but MATE was forked from Gnome 2, by the people who hated Gnome 3 (count me among the latter group, though not with the people who forked MATE).

I hated Gnome 3 because my debian testing desktop went weird (as in "I have no meaningful screen content and no way to give input to the computer") after an "apt-get dist-upgrade". I reported it as an issue against the xserver-xorg-video-intel package, but it turned out to be Gnome 3. I managed to install lxde (using an ssh login, I got in when I didn't try an actual login in gdm) and have stayed on that since.

I have seen statements suggesting that Gnome 3 is actually usable these days, but I have never felt the urge to try. What on earth were they thinking when letting it out on the debian testing crowd? What on earth had they been smoking? I don't much mind a change in screen metaphor, but it should work!

Posted by Steinar Bang on 12 Jan 2014 @ 04:18pm UTC #
Comments on this essay are closed. Thank you, spammers.