How to block Windows Update from updating drivers

Controlling what is updated in Windows Update has gotten harder in Windows 10. Drivers for your hardware are automatically installed when you update Windows now. In earlier Windows, you got a chance to cherry pick the updates and mark some updates to never be done. Those choices are gone now! (You can uninstall an update. That is not a great solution when your driver update has made it impossible for your Windows to boot!)

Automatic driver update is a good feature for almost everyone, except those who have NVIDIA graphics cards. Graphics drivers are notorious for being buggy. You almost never want to get the driver from Windows Update for your NVIDIA graphics card. You should always get it from the NVIDIA website itself.

There is a solution to this: block Windows 10 from installing drivers when it does Windows Update.

To do this, open Control Panel and go to System -> Advanced System Settings -> Hardware -> Device Installation Settings. Here choose to never update drivers through Windows Update.

How to remove driver in Windows

20150806_primesense_driver

If you work with lots of devices in Windows, you are sure to run into problems with device drivers. Sometimes, a particular version of a device driver might cause problems and removing it might be the only solution.

Using Device Manager

This is an easy removal method if you have the device and know that its driver is being used when the device is plugged in. For such a case, plug in the device and open Device Manager. Right-click on the device and choose Properties. In the Driver tab, choose Uninstall.

Using Driver Store Explorer

If you do not have the device or plugging it in causes problems, then the Driver Store Explorer (RAPR) can be used to remove the driver as described here.

Tried with: Windows 7 x64

How to use Huion 420 with Ubuntu

Writing using Huion 420 in the Xournal app on Ubuntu
Writing using Huion 420 in the Xournal app on Ubuntu

Huion 420 is an inexpensive graphics tablet and stylus. It can be used to write, mark, draw or sign in Linux apps.

  • The DIGImend drivers support Huion graphics tablets. The 420 is supported in v5 of these drivers.

  • If you are using Linux kernel v3.17 or later, these drivers are already merged into it. Huion 420 will work correctly when you plug the tablet in.

  • If you are using Linux kernel version less than 3.17, then the Huion 420 stylus will appear to move on the display, but it has problems. For example, it will be restricted to the top-left region of the display.

  • To get full support for Huion 420, download the DIGImend v5 drivers from here. The file to download is named digimend-kernel-drivers-5.tar.gz.

  • Unzip the downloaded file. Run make to build the drivers.

  • Remove the existing Huion driver that might have been loaded:

$ sudo rmmod hid-huion
  • Install the new drivers using sudo make install

  • Unplug and plug back the Huion 420. You should be able to use the stylus to operate the whole display area, write and draw now.

Tried with: Linux kernel 3.13.0-44 and Ubuntu 14.04

NVIDIA 343 driver and GTS 250

Problem

On a computer with a NVIDIA GeForce GTS 250 graphics card running Ubuntu 14.04, I decided to update the installed driver from nvidia-331 to nvidia-343. I did this:

$ sudo apt-get install nvidia-343

It installed the driver and then compiled and installed the kernel module. I rebooted the computer. I was able to login in the GUI, but got an empty desktop!

Solution

What kind of graphics driver problem allows graphics, but only hides the desktop elements in Unity? No idea. I dug through /var/syslog, searched for nvidia and found this:

NVRM: The NVIDIA GeForce GTS 250 GPU installed in this system is
NVRM:  supported through the NVIDIA 340.xx Legacy drivers. Please
NVRM:  visit http://www.nvidia.com/object/unix.html for more
NVRM:  information.  The 343.22 NVIDIA driver will ignore
NVRM:  this GPU.  Continuing probe...
NVRM: ignoring the legacy GPU 0000:03:00.0

So, it turns out that the GTS 250 is no longer supported in the 343 version drivers and later. I removed this driver and reinstalled back 331 driver and got back my desktop.

Driver Store Explorer

Windows (Vista and later) manage device drivers in a location called the driver store. This makes it easy to manage both the inbuilt and third-party drivers on the system. When you face some driver problems, you may want to view and manipulate with drivers.

The Driver Store Explorer (RAPR) is an useful tool to view, add or remove drivers from the driver store. I found it useful to fix a recent problem where a newer driver was not being installed over an older one.

I opened RAPR with Administrator privileges, clicked Enumerate to view the list of drivers, found the old offending driver and removed it. I later installed the new driver using its installer.

Tried with: RAPR 0.5 and Windows 7 x64

How to install CUDA from Ubuntu repositories

The Ubuntu repositories now host CUDA packages. These may not be latest and greatest, but I find them to work well with the NVIDIA drivers from the same place. Also, they are very easy to install compared to the packages from the NVIDIA website.

  • First, install the latest NVIDIA driver available from the repositories. NVIDIA driver package is named as nvidia-xyz, where xyz is the version. Pick the largest number version that is available from the repositories. For example:
$ sudo apt install nvidia-331

The installation process compiles the driver for your particular Linux kernel and deploys that module. Restart the computer once the install is done.

You must be able to see a NVIDIA module when you list the kernel modules. For example, on my computer:

$ dkms status
nvidia-331, 331.38, 3.13.0-24-generic, x86_64: installed
  • Now you are ready to install CUDA. This is really easy since installing the package nvidia-cuda-toolkit will pull in all the hundred other CUDA packages and tools that are needed:
$ sudo apt install nvidia-cuda-toolkit

That is it, enjoy your CUDA programming! 🙂

Tried with: Linux kernel 3.13.0-24-generic, CUDA 5.5, NVIDIA driver 331, NVIDIA GTX Titan and Ubuntu 14.04

How to install CUDA 5.0 on Ubuntu 12.04 LTS

These steps helped me to successfully install CUDA 5.0 on many Ubuntu 12.04 LTS computers, including headless servers that do not run X windows.

  1. Make sure the computer has a NVIDIA graphics card that is recognized by Linux. This can be done as shown here.

  2. Uninstall all NVIDIA drivers and kernel modules. Steps to do this are described here.

  3. Download CUDA 5.0 installer for Linux. There is no installer for Ubuntu 12.04 LTS, so download the installer for Ubuntu 11.10 instead.

  4. Make the installer executable and run it as sudo. When asked to install the NVIDIA driver, choose Yes. This is important, allow the installer to install its own drivers. Let it install CUDA to the default location: /usr/local/cuda-5.0/

  5. If the computer is a headless Ubuntu server which is not connected to a display or does not run X, then device files for your card are not created by default. So, create a shell script file (say /home/joe/NvidiaDevCreator.sh) with the following code:

https://gist.github.com/ashwin/5099946

Add the line /home/joe/NvidiaDevCreator.sh to /etc/rc.local and restart the system. This ensures that the necessary dev files are created on every startup for access by CUDA programs.

  1. Add the following to your bashrc:

This ensures that the CUDA libraries are available for dynamic loading by CUDA programs.

That is all! Any user on your Ubuntu 12.04 system should now be able to compile and run CUDA 5.0 programs without any special access permissions or privileges 🙂

Note: I had problems when I used the nvidia-current and nvidia-current-updates drivers from Ubuntu. Only by uninstalling them and using the drivers that ship with the CUDA installer was I able to get CUDA working.

Tried with: NVIDIA GeForce 9900 GT and NVIDIA GTX 690

How to fix NVIDIA driver failure on Ubuntu

The Problems

  1. You installed Ubuntu on a computer with NVIDIA graphics card, but Compiz is not turned on in Unity.
  2. You installed NVIDIA drivers and now you have no desktop or X windows.
  3. You installed the drivers from NVIDIA’s website and you have no desktop or X windows.

Solution

Almost everyone who has a NVIDIA graphics card is afraid when Ubuntu updates or the driver updates. Because, you never know if the install or update will screw up your setup leaving you with no Compiz or even worse, no X windows!

There are tons of solutions for these problems online. Below is the solution which works for me consistently.

Step 1: Remove NVIDIA drivers

After booting, if you are seeing a blank display then try pressing Ctrl+Alt+F1, this should give you a terminal login.

The first step is to remove any or all of the NVIDIA drivers installed on the computer. They should not just be uninstalled, but every shred of their prior existence must be eradicated.

Purge, not just remove, all installed NVIDIA packages:

$ sudo apt-get purge nvidia-*

If you had installed a NVIDIA driver from their website, uninstall it using the shell script that it ships with. Already deleted that file? Too bad. Try with a newer version of driver that you can download.

You may still have some NVIDIA modules stuck in the kernel. First list the kernel modules:

$ dkms status

The output is of this form:

nvidia-current-updates, 304.64, 3.2.0-37-generic, x86_64: installed

Here nvidia-current-updates is the module name, 304.64 is the module version and 3.2.0-37-generic is the kernel version.

Remove all the nvidia modules. For example, to remove the above:

$ sudo dkms remove nvidia-current-updates/304.64 -k 3.2.0-37-generic

Step 2: Install NVIDIA drivers

Now install back the drivers. I highly recommend staying away from the drivers on NVIDIA’s website. For drivers that have been tested and packaged by Ubuntu volunteers, you have two options: current and current-updates.

current is what was well tested and shipped with the Ubuntu version you are using. It may be pretty old. current-updates is a package that is drawn from NVIDIA’s releases, but is tested and packaged by Ubuntu. This is pretty safe.

Depending on what you pick, the install is familiar:

$ sudo apt-get install nvidia-current-updates nvidia-settings-updates

I hope your NVIDIA drivers are working with your Ubuntu now. If not, I hope the wide web holds a solution to your problem.

Tried with: NVIDIA GeForce 9600 GT and Ubuntu 12.04 LTS

SD card support in Windows 8 for Dell Vostro 3300

Problem

You installed, not upgraded, a fresh copy of Windows 8 on the Dell Vostro 3300 notebook. Everything seems to be working fine except the SD card reader. If you put in a SD card into the reader, it does not appear as a drive in Windows Explorer.

Solution

The Dell Vostro 3300 uses the Realtek RTS5138 USB controller for the SD card reader. Windows 8 does not seem to ship with the driver for this controller. Go to the Support section of the Dell webpage for Vostro 3300. Find the Realtek-Driver under the Chipset section, download it and install it. Restart Windows and your SD card should work now.

Tried with: Windows 8 Pro

Wireless card not working on Dell Vostro 3300

Problem

I installed Ubuntu on a Dell Vostro 3300 notebook. (Note that I faced the exact same problem with a Dell Inspiron 1320 and solution is same as below.) After installation, I find that wireless is not working. Even the wireless notification light above the keyboard is not turned on.

I used lspci to check if the wireless card is detected:

$ sudo lspci -v

12:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
    Subsystem: Dell Wireless 1397 WLAN Mini-Card
    Flags: bus master, fast devsel, latency 0, IRQ 17
    Memory at fbb00000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [40] Power Management version 3
    Capabilities: [58] Vendor Specific Information: Len=78 <?>
    Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [d0] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [13c] Virtual Channel
    Capabilities: [160] Device Serial Number xx-xx-xx-xx-xx-xx-xx-xx
    Capabilities: [16c] Power Budgeting <?>
    Kernel driver in use: b43-pci-bridge

I find that Broadcom BCM4312 chip in the Dell Wireless 1397 wireless card is detected and a b43-pci-bridge driver has been installed. This is not a WLAN driver.

Solution

Broadcom chips need the driver provided by Broadcom. This needs to be installed for the card to work.

Ubuntu 14.04

  • Connect to the internet using a LAN cable.

  • Install the Broadcom driver:

$ sudo apt-get update
$ sudo apt-get --reinstall install bcmwl-kernel-source
  • Restart Ubuntu.

My wireless card worked after this. The wireless notification light above the keyboard too was lit up.

I checked lspci again and found the correct driver now installed:

$ sudo lspci -v

12:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)
    Subsystem: Dell Wireless 1397 WLAN Mini-Card
    Flags: bus master, fast devsel, latency 0, IRQ 17
    Memory at fbb00000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: [40] Power Management version 3
    Capabilities: [58] Vendor Specific Information: Len=78 <?>
    Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [d0] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [13c] Virtual Channel
    Capabilities: [160] Device Serial Number xx-xx-xx-xx-xx-xx-xx-xx
    Capabilities: [16c] Power Budgeting <?>
    Kernel driver in use: wl

Ubuntu 10.04

To enable wireless, choose System → Administration → Hardware Drivers. The system will now search for required proprietary drivers. In the list it presents, choose the Broadcom STA Wireless Driver. After it is installed, reboot and your wireless card should now work.