tl:dr – Kernel headers for 5.3.0 have changed so modules for older Nvidia cards no longer build. Downgrade to the last known good kernel (e.g. 5.0.0-37-generic) and you should be good.

So, I woke up this morning (blues riff), extra early in order to bash out some client work before heading to the gym. I turned on my computer and was greeted by the sight of my login screen, low res, and only on one monitor.

Nothing with computers, it seems, is going to be easy.

I remembered that I had done an apt-get upgrade the previous night, and this has in the past knocked the Nvidia drivers out of whack, so I reinstalled the drivers for my card apt-get remove nvidia-driver-390; apt-get install nvidia-driver-390 and restarted.

No joy.

Fine, I’ll install the official drivers from the Nvidia binary. Never failed before.

Bang. Wouldn’t build.

Ok. Time to dig a little deeper.

I went back to the distro drivers, and this time removed them completely; apt-get remove nvidia-driver-390 --purge; apt-get auto remove; apt-get install nvidia-driver-390.

Still no joy.

However, picking apart the build logs, and we have our first clue. A bunch of build errors to do with the Nvidia modules. Seems that the drivers were not able to build against the current kernel.

Looking at my /boot/ I can see that a new kernel (5.3.0) was installed as part of the upgrade. It looks like the kernel headers have been changed about, and this has broken older drivers.

So, there are two possible solutions – use a newer version of the Nvidia drivers (which isn’t possible for me since I have a pretty old GForce card installed), or roll back to the previous kernel.

First, remove the 5.3.0 kernel: apt-get remove linux-image-5.3.0-26; apt-get remove linux-headers-5.3.0-26

You’ll get a warning if you’re currently running this kernel, don’t worry, we’ll sort that out now.

Make sure you’ve got the working kernel installed apt-get install linux-image-5.0.0-37 linux-headers-5.0.0-37

Now, make sure grub boots this module. Edit /etc/default/grub and change GRUB_DEFAULT to GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.0.0-37-generic" (or whatever the particulars of your last working kernel was – ls -larth /boot to show the history).

Update your boot, update-grub

Reboot, and then log in to the console, and reinstall your Nvidia drivers: apt-get remove nvidia-driver-390 --purge; apt-get auto remove; apt-get install nvidia-driver-390

All being well, the Nvidia drivers should build this time. Reboot one last time, and you’re good!

Hope this helps.

I am currently writing this on my laptop on a train to see some friends for a Czech Christmas tradition of mulled wine and fried carp. I’m surrounded by frantic Christmas shoppers , and I’m pondering the year that is almost gone as they stuff bags of last minute gifts into overhead luggage shelves.

In a way 2019 can be thought of as the culmination of the decisions made last year. The pivots I made, and the focus I gained. Well, culmination may be a bit of an overstatement, but I’m well on the way. Nothing in life is ever complete, at least not until you’re in the ground.

Career wise, I made the decision that what I was doing was, while keeping a roof over my head and food on the table, didn’t really have either the trajectory or the velocity to get me to where I wanted to be in the time available. So, at the beginning of the year I pivoted hard and got a “proper job”, but the benefit of that job not being my only gig meant I could go back to corporate land with a view of only doing interesting things and not having to put up with the BS that drove me out of that world so many years ago.

A brief overview of 2019
Third Man

So, I accepted an offer to develop services that help scientists around Europe gain access to the equipment they need to do cutting edge research. As well as the day to day, this also required me to get involved in some important European data sharing projects.

The job involves a fair amount of travel, so that certainly aligns with some of my main goals, and I’ve spoken at world leading scientific conferences. I even accidentally set EU data sharing policy.

Crazy amount of work with some very cool people, crazy amount of experiences, and crazy opportunities going forward. Exciting times!

Despite all this, for those interested, I’m also still offering consultancy services! I’m still am active in the open source community, most notably contributing to Known. 2019 was the year that I’m delighted to say saw Known leave development hell and in to a 1.0 release. Community engagement has been fantastic, and we’re already sketching out a roadmap for future exciting features and versions.

Outside of work, I have progressed in my Judo. Training hard and obtaining my blue belt, as well as competing in my first competition. I got my motorcycle licence, and achieved some pretty serious personal bests at the gym.

So, I begin 2020 having achieved many of the goals I’ve set myself, and thinking about what goals to set in the upcoming year. While I enter it with optimism, I’m aware that the event horizon of possibility is drawing nearer, and the window of opportunity for certain life directions is growing smaller, if indeed they’re still possible.

This sense of urgency has now permeated everything I do, and every aspect of my life. No choice but to keep pushing forward and becoming the best version of myself that’s possible.

On to the next decade… the roaring 20’s!

I had a spare 5 minutes before my next appointment, so I have converted the Known LTI plugin to be easily installable via Composer.

This has been requested by a number of people in order to make it easier to install on Known 1.0 and above, so… happy Christmas I guess!

So, now you should be able to grab it on your Known install by simply declaring it as a requirement:

composer require idno/lti

Have fun!

» Visit the project on Github...