## I’ve finally installed the proprietary nVidia graphics drivers.

In this earlier posting, I had written about the fact that the project was risky, to switch from the open-source ‘Nouveau’ graphics drivers, which are provided by a set of packages under Debian / Linux that contain the word ‘Mesa’, to the proprietary ‘nVidia’ drivers. So risky, that for a long time I faltered at doing this.

Well just this evening I made the switch. Under Debian / Stretch – aka Debian 9, this switch is relatively straightforward to accomplish. What we do is to switch to a text-session, using <Ctrl>+<Alt>+F1, and then kill the X-server. From there, we essentially just need to give the command (as root):

apt-get install nvidia-driver nvidia-settings nvidia-xconfig

Giving this command essentially allows the Debian package-managers to perform all the post-install steps, such as black-listing the Nouveau drivers. One should expect that this command has much work as its side-effects, as it pulls in quite a few dependencies.

(Edit 04/30/2018 :

In addition, the user must have up-to-date kernel / Linux -headers installed, because to install the graphics driver, also requires to build DKMS kernel modules. But, it’s always my assumption that I’d have kernel headers installed myself. )

When I gave this command the first time, apt-get suggested additional packages to me, which I wrote down on a sheet of paper. And then I answered ‘No’ to the question of whether or not to proceed (without those), so that I could add all the suggested packages onto a new command-line.

(Update 05/05/2018 :

The additional, suggested packages which I mentioned above, offer the ‘GLVND’ version of GLX. With nVidia, there are actually two ways to deliver GLX, one of which is an nVidia-centered way, and the other of which is a generic way. ‘GLVND’ provides the generic way. It’s also potentially more-useful, if later-on, we might  want to install the 32-bit versions as well.

However, if we fail to add any other packages to the command-line, then, the graphics-driver will load, but we won’t have any OpenGL capabilities at all. Some version of GLX must also be installed, and my package manager just happened to suggest the ‘GLVND’ packages.

Without OpenGL at all, the reader will be very disappointed, especially since even his desktop-compositing will not be running – at first.

The all-nVidia packages, which are not the ‘GLVND’ packages, offer certain primitive inputs from user-space applications, which ‘GLVND’ does not implement, because those instructions are not generically a part of OpenGL. Yet, certain applications do exist, which require the non-‘GLVND’ versions of GLX to be installed, and I leave it up to the reader to find out which packages do that – if the reader needs them – and to write their names on a sheet of paper, prior to switching drivers.

It should be noted, that once we’ve decided to switch to either ‘GLVND’- or the other- version of GLX, trying to change our minds, and to switch to the other version, is yet another nightmare, which I have not even contemplated so far. I’m content with the ‘GLVND’- GLX version. )

(Edited 04/30/2018 :

There is one aspect to installing up-to-date nVidia drivers which I should mention. The GeForce GTX460 graphics card does not support 3rd-party frame-buffers. These 3rd-party frame-buffer drivers would normally allow, <Ctrl>+<Alt>+F1, to show us not only a text-session, but one with decent resolution. Well, with the older, legacy graphics-chips, what I’d normally do is to use the ‘uvesafb’ frame-buffer drivers, just to obtain that. With modern nVidia hardware and drivers, this frame-buffer driver is incompatible. It even causes crashes, because with it, essentially, two drivers are trying to control the same hardware.

Just this evening, I tried to get ‘uvesafb’ working one more time, to no avail, just as it does work on the computer I name ‘Phoenix’. )

So the way it looks now for me, the text-sessions are available, but only in very low resolution. They only exist for emergencies now.

But this is the net result I obtained, after I had disabled the ‘uvesafb’ kernel module again:


dirk@Plato:~$infobash -v Host/Kernel/OS "Plato" running Linux 4.9.0-6-amd64 x86_64 [ Kanotix steelfire-nightly Steelfire64 171013a LXDE ] CPU Info 8x Intel Core i7 950 @ clocked at Min:1600.000Mhz Max:2667.000Mhz Videocard NVIDIA GF104 [GeForce GTX 460] X.Org 1.19.2 [ 1920x1080 ] Processes 262 | Uptime 1:16 | Memory 3003.9/12009.6MB | HDD Size 2000GB (6%used) | GLX Renderer GeForce GTX 460/PCIe/SSE2 | GLX Version 4.5.0 NVIDIA 375.82 | Client Shell | Infobash v2.67.2 dirk@Plato:~$

dirk@Plato:~$clinfo | grep units Max compute units 7 dirk@Plato:~$ clinfo | grep multiple
Preferred work group size multiple              32
dirk@Plato:~$clinfo | grep Warp Warp size (NV) 32 dirk@Plato:~$




So what this means in practice, is that I have OpenGL 4.5 on the computer named ‘Plato’ now, as well as having a fully-functional install of ‘OpenCL‘ and ‘CUDA‘, contrarily to what I had according to this earlier posting.

Therefore, GPU-computing will not just exist in theory for me now, but also in practice.

And this displays, that the graphics card on that machine ‘only’ possesses 224 cores after all, not the 7×48 which I had expected earlier, according to a Windows-based tool – no longer installed.

(Updated 04/29/2018 … )

## “Help! No Volume Mute under Plasma 5!”

One of the subjects I blog about, is a computer I named ‘Plato’, which is running Debian / Stretch (Debian 9), and the desktop manager of which is Plasma 5, which is the successor to KDE 4.x .

One of the features which KDE 4 definitely had, was an icon in the notification-tray, from which we could control our volume levels easily, as well as to mute the sound temporarily, eventually to be unmuted again, at which point the earlier, unmuted settings should be remembered. At first glance it would seem that Plasma 5 has done away with this capability. Trying to solve this can cause people to spend hours searching the Internet, changing their Plasma 5 preferences, and maybe even forgetting their Plasma 5 preferences, because they disabled all their System Sounds from there.

Under Plasma 5, we really only need to have 2 packages installed, in order to control our volume-levels, etc., assuming that we have gotten our hardware recognized first. Those packages would be:

1. ‘plasma-pa’
2. ‘pavucontrol’

The first of these packages integrates with Plasma, and is also responsible for the icon in the notification tray. The second package gives us more control, over our sound-levels specifically, since Plasma 5 uses the Pulse Audio sound-server by default.

If we can see the icon in the notification tray, then a detail which we may overlook after we left-click on that icon, is a tiny little loudspeaker-symbol, on the left end of one of the volume sliders:

Left-clicking on this little symbol will cause the volume-bar to the right of it to become slightly pale, which will mean, that the device in question has been muted. I’m saying that ‘we’ could overlook that we even have this feature, because earlier, ‘I’ did not know that I have this feature.

But, this is only what the ‘plasma-pa’ package can show us. The ‘pavucontrol’ package gives us the ability to fine-tune our sound-levels as shown below:

Now, there’s an aspect to how this setup now works, which is slightly more complicated than how KDE 4 used to handle it. The Pulse Audio server attempts to adjust playback as well as recording levels, on a per-application basis. Thus, the view above is almost empty, because there were no applications playing back any sounds, at the moment I recorded this screen-shot.

A frustrating fact which can exist with this, is that some applications will only play a sound for 2 seconds, during which an additional volume-bar appears in the GUI, and after which that volume-bar disappears again, even if we did not have enough time to adjust one volume level. This happens to result from the design-decision, that volume-control should exist at the per-application level. Hence, even if we use media-control keys on our keyboard, those keys will only affect the one main application which happens to be playing, at any given moment. They won’t affect System Sounds.

But this description might sound like I have to say, ‘There is no problem,’ when in fact, under Debian / Stretch, There Is a problem. That problem, as I see it, lies in the fact that by default, the one volume-bar which the GUI has shown above, for all System Sounds, may not even work.

(Updated 04/26/2018 … )

## A clarification about (Linux) Mesa / Nouveau Drivers

Two of the subjects which I like to blog about, are direct-rendering and Linux graphics drivers.

Well in This Earlier Posting, I had essentially written, that on the Debian 9 , Debian /Stretch computer I name ‘Plato’, I have the ‘Mesa’ Drivers installed, and that therefore, that computer cannot benefit from OpenCL, massively-parallel GPU-computing.

‘Mesa’, which I referred to, is a Debian set of meta-packages, that is all open-source. It installs several drivers, and selects the drivers based on which graphics hardware we may have. But, because ‘Plato’ does in fact have an nVidia graphics card, the Mesa package automatically selects the Nouveau drivers, which is one of the drivers it contains. Hence, when I wrote about using the Mesa Drivers, I was in fact writing about the Nouveau Drivers.

One of the reasons I have to keep using these Nouveau Drivers, is the fact that presently, ‘Plato’ is extremely stable. There would be some performance-improvements if I was to switch to the proprietary drivers, but making the transition can be a nightmare. It involves black-lists, etc..

Another reason for me to keep using the Nouveau Drivers, is the fact that unlike how it was years ago, today, those drivers support real OpenGL 3, hardware-rendering. Therefore, I’m already getting partial benefit from the hardware-rendering which the graphics card has, while using the open-source driver.

The only two things which I do not get, is OpenCL or CUDA computing capabilities, as Nouveau does not support that. Therefore, anything which I write about that subject, will have to remain theoretical for now.

I suppose that on my laptop ‘Klystron’, because I have the AMD chip-set more-correctly installed, I could be using OpenCL…

Also, ‘Plato’ is not fully a ‘Kanotix’ system. When I installed ‘Plato’, I borrowed a core system from Kanotix, before Kanotix was ready for Debian / Stretch. This means that certain features which Kanotix would normally have, which make it easier to switch between graphics drivers, are not installed on ‘Plato’. And that really makes the idea daunting, to try to switch…

Dirk

## Installing a “Wacom” graphics / digitizer tablet under Linux.

I’ve just received my “Wacom Intuos PT S 2″ digitizer tablet – aka graphics tablet – which I had specifically bought, because there is some support for the Wacom series of tablets under Linux. I was able to get it working 100%, and also did get the ‘wireless kit’ to work, that I had ordered with it.

Under Linux, we need to have at least these two packages installed, in order to get this hardware to work:

• ‘xserver-xorg-input-wacom’
• ‘libwacom2′

If available, the following should also be installed:

• ‘libwacom-bin’

Additionally I should mention that I did this on the Debian / Stretch computer I name ‘Plato’, on which I have Plasma 5 as my desktop manager. Although Debian and Linux do support Wacom, apparently, Plasma 5 as such does not. This effectively means that individual applications may have tablet-support, but that We’re not given a graphical module for the System Settings panel, from which to customize our tablet. For that reason, I needed to write a shell-script which does this for me:

#!/bin/bash

xsetwacom --set "Wacom Intuos PT S 2 Finger touch" Touch off
xsetwacom --set "Wacom Intuos PT S 2 Pen stylus" Button 2 key "shift"
xsetwacom --set "Wacom Intuos PT S 2 Pen stylus" Button 3 key "ctrl"

xsetwacom --set "Wacom Intuos PT S 2 Pad pad" Button 1 key "button +3"
xsetwacom --set "Wacom Intuos PT S 2 Pad pad" Button 3 key "del"

xsetwacom --set "Wacom Intuos PT S 2 Pad pad" Button 8 key "ctrl" "c"
xsetwacom --set "Wacom Intuos PT S 2 Pad pad" Button 9 key "ctrl" "v"

xsetwacom --set "Wacom Intuos PT S 2 (WL) Finger touch" Touch off
xsetwacom --set "Wacom Intuos PT S 2 (WL) Pen stylus" Button 2 key "shift"
xsetwacom --set "Wacom Intuos PT S 2 (WL) Pen stylus" Button 3 key "ctrl"

xsetwacom --set "Wacom Intuos PT S 2 (WL) Pad pad" Button 1 key "button +3"
xsetwacom --set "Wacom Intuos PT S 2 (WL) Pad pad" Button 3 key "del"

xsetwacom --set "Wacom Intuos PT S 2 (WL) Pad pad" Button 8 key "ctrl" "c"
xsetwacom --set "Wacom Intuos PT S 2 (WL) Pad pad" Button 9 key "ctrl" "v"



Presumably, any other users with Plasma 5 desktop-managers will need to write similar scripts. Simply typing in the command ‘xsetwacom’ without any arguments, will display its basic usage.

It should also be noted, that after an X-server module has been installed, that will act as the input driver, at the very least, the X-server also needs to be restarted, before that driver will be loaded.

(Updated 2/18/2019 : )