Linux Operating System

Forced graphics card change

Recently, with an update to the kernel of Kubuntu 20.04 OS (kernel v5.11.0-25), my PC wouldn't boot into KDE's windowing system. The only way to get around this was to boot into an older kernel (kernel v5.8.0-63). This in itself was a problem as the normal method of accessing the grub menu (holding down the shift key) did not work. To access grub on my PC, I had to press the ESC key at the BIOS screen.


If you have to use an older kernel, to make life easier for yourself, I recommend making the following changes to /etc/default/grub:

Change the line

GRUB_DEFAULT = 0

to

GRUB_DEFAULT = saved

and after that line add

GRUB_SAVEDEFAULT = true

Save the file and rebuild grub: sudo update-grub

Grub will now remember which kernel you last booted into and boot you into the same kernel on the next boot.


At the stage, it was unbelievably difficult to find information as Google was very unhelpful. AskUbuntu had a couple of references to this problem (using the two kernel versions as search terms), but no solution. AskUbuntu/Stack Exchange have an extremely hostile attitude towards queries and responses to queries, so more often than not it's better to look elsewhere for answers, even if Google decides that this site is the first to send you to.

I found out where to start looking after watching the install of the next update of the OS (kernel v5.11.0-34). During that process, the installer threw up an error that the Nvidia-340 driver could not be linked into the kernel, but continued with the install process. Of course, this kernel wouldn't run the KDE windowing system either, but at least I now knew the source of the problem and could search further. The irony of this was I could find no logged cause of the problem in boot logs nor system logs.

Very early on in my subsequent searches, I came across the following on the Debian website:

Use of the 340-series driver is strongly discouraged. It is not included in stable releases of Debian anymore, has serious unfixable security vulnerabilities, and may not be updated for new kernels in a timely manner. You are highly recommended to use the built-in Nouveau driver if security is a priority.

Whatever the "serious unfixable security vulnerabilities" are, the Nvidia 340 drivers can no longer be linked into a Debian-based kernel. My problem was, with my currently "old" hardware, my Nvidia Geforce 210 graphics card was restricted to the Nvidia 340 driver (unless of course I used the Nouveau drivers, which was not an option, as graphics intensive games cannot run with the Nouveau drivers - see below). This meant that I had to start looking for a "higher" spec, more modern, graphics card that was compatible with my old Intel DH67BL motherboard.

I discussed this with Francois over a beer, and he said he had recently put in an Nvidia 710 based graphics card in his son's PC, which had an even older motherboard than the DH67BL board. The 710 was compatible with my motherboard, and probably the cheapest I was going to find, so I decided to get one. The page I used to check which cards are compatible shows how expensive Nvidia graphics cards are. The R1000 (about US$70) that I paid for the card was more than I was actually wanting to, but I really wanted my PC running again, so I bought the card.

Installing the card was easy enough and, as expected, it booted into the KDE windowing system (kernel v5.11.0-25) with the Nvidia 340 drivers with no problem. The next problem was trying to install the required Nvidia drivers (Nvidia 470 drivers). I tried installing what I thought was necessary from the Ubuntu repositories, and while this worked for running the OS (kernel v5.8.0-63), I could get neither Civ 5 nor 6 to run under Steam. Something was missing with my method of updating the drivers.

To install the full Nvidia driver in the Ubuntu repositories, run the following the command line (replace 470 with the latest available driver for your card):

sudo apt install nvidia-driver-470

What made me pretty angry about this installation was that it uninstalled VirtualBox kernel drivers without a warning. Reinstalling VirtualBox sorted this out, and fortunately, my virtual machines were not impacted in any way.

Civilization V and VI

I picked up both Civ V and VI at very decent discounts on the Steam website. I bought Civ 6 as it came with an 85% markdown (off R899!), even though my hardware (the 210 graphics card) was unable to run the game. Civ 5 ran very well with the hardware I had, but then Civ 5 is a 2010 game, so the NV 210 would have probably been a pretty decent graphics card to run the game when it was released.

After installing the NV 710 card, and all the correct drivers (NV 470.57), Civ 6 ran like a dream, but Civ 5 was an absolute nightmare. Clicking on anything on the map took minutes to respond, trying to get a unit to move was a total waste of time as it took almost five minutes to move a unit across one hex. During this time, I could hear that the CPU was taking major strain as the fan speed increased drastically. Monitoring this on Ksysguard showed that all four cores were running at 90%+. The graphics card was doing nothing which meant the CPU was trying to do the all the calculations that the graphics card should have been doing. When a new update to the Nvidia driver (470.63) came out, I thought it would solve the problems. I was wrong, it got worse. Now Civ VI would not work either.

I went through lots of iterations of problem solving here. Google was totally useless. Uninstalling and reinstalling Civ V did nothing (I did not even lose my saved games). Civ VI was too big to waste time on uninstalling and reinstalling, and I could find no way to actually uninstall Steam (Flatpak install). I had to be more creative here...

I had found, somewhere while searching, that a recommendation to speed up response times was to delete the Steam cache (sorry, I didn't note the site as it didn't tell me where to look for this Steam cache).

After spending quite some time trying to find where Steam installed itself, I found the following cache directories:

~/.var/app/com.valvesoftware.Steam/.cache

then to delete everything under mesa_shader_cache, nvidia/GLCache and .nv/GLCache.

After that both Civ V and Civ VI worked with no problems.

(updated: 23 October 2021)

Update

A recent update to the Nvidia drivers (to NV 470.74) Civ V gave me a terrible lag on mouse movements in some scenarios. Clearing the caches, as mentioned above, sorted that problem out.

(updated: 23 October 2021)