Linux drivers

From Ever changing code

A list of different hardware we need to install manually.

PCI ID Repository

The PCI IDs on your system is stored in the following file:

# Syntax:
# vendor  vendor_name
#       device  device_name                             <-- single tab
#               subvendor subdevice  subsystem_name     <-- two tabs
Update the pci.ids file

The latest PCI ids are maintained by the PCI Ids site

The following update-pciids command will download the compressed version of the file and install it accordingly. It will only work when you have either curl, or wget, or lynx on your system. The command is a part of pciutils package. In Ubuntu pci.ids file is downloaded daily.

# update-pciids
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  196k  100  196k    0     0   395k      0 --:--:-- --:--:-- --:--:--  539k

Network cards

Wireless card on Dell D620/D630 - Broadcom BCM43xx drivers

Identify the Broadcom BCM43xx chipset

lspci -vvnn | grep -A 9 Network

Important details in Dell 630 output: ChipID: BCM4311, PCI-ID: 14e4:4312, Kernel driver in use: b43-pci-bridge. You may see two variations:

  • 14e4:4311 - 802.11b/g WLAN - on wireless card Dell Wireless 1390 WLAN Mini-Card
  • 14e4:4312 - 802.11a/b/g WLAN - on wireless card Dell Wireless 1490 WLAN Mini-Card


We are going to install Broadcom wireless card drivers that come in firmware-b43-installer package, it supports BCM4301 BCM4306/2, BCM4306/3, BCM4311, BCM4312, BCM4318, BCM4320 chips.

sudo apt-get update
sudo apt-get install firmware-b43-installer
sudo apt-get remove bcmwl-kernel-source
sudo reboot

off line driver installation

Please follow the original Ubuntu guide for BCM chip systems The below are specifics for Dell D620/D630.

cd /media/cdrom/pool/main/b/b43-fwcutter/     #you may need to mount USB before accessing it
sudo dpkg -i b43-fwcutter*
cd /media/cdrom/pool/main/p/patch/            #it may not be required on your system
sudo dpkg -i patch*

wget  #download for b43 (14.04 Trusty Tahr) on a laptop with Internet access
tar xfvj broadcom-wl-5.100.138.tar.bz2     #execute from now on the target machine
sudo b43-fwcutter -w /lib/firmware broadcom-wl-5.100.138/linux/wl_apsta.o

At this point you should reboot or reload b43/b43legacy drivers outlined below:

#Remove                                  #Insert driver into kernel                                    
sudo modprobe -r b43 bcma                 sudo modprobe b43
sudo modprobe -r brcmsmac bcma            sudo modprobe brcmsmac
sudo modprobe -r wl                       sudo modprobe wl

If you wish to permanently use the open source drivers then remove the bcmwl-kernel-source package:

sudo apt-get purge bcmwl-kernel-source

Connect to the wireless network

Follow this guide Ubuntu_networking#Wireless_from_command_line


Install BCM Wireless network card

Follwing has been tested on:

  • 14e4:4311 - BCM4311 - Dell D420, 620, D630
$ lspci -nn | grep Network
0c:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 01)

Make sure you are connected to Internet, then install drivers:

sudo apt-get update
sudo apt-get install firmware-b43-installer
sudo apt-get remove bcmwl-kernel-source
sudo reboot

Graphics cards

Install Nvidia GP108GLM Quadro P500 Mobile

This has been tested on Ubuntu 18.04 LTS running on Lenovo P52S laptop - i7-8550U. Visiting the following page and see what is the correct driver version for our graphic card. Afterwards, we will visit the graphic driver PPA homepage here and see if our graphic card is compatible with the drivers present in the repository.

sudo apt-get purge nvidia*
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
sudo apt-get install nvidia-driver-430
sudo reboot


piotr@tp52s:~$ lsmod | grep nvidia
nvidia_uvm            815104  0
nvidia_drm             40960  8
nvidia_modeset       1110016  6 nvidia_drm
nvidia              18792448  552 nvidia_uvm,nvidia_modeset
ipmi_msghandler       102400  2 ipmi_devintf,nvidia
drm_kms_helper        172032  2 nvidia_drm,i915
drm                   458752  21 drm_kms_helper,nvidia_drm,i915
piotr@tp52s:~$ nvidia-smi 
Tue Jun 18 00:08:10 2019       
| NVIDIA-SMI 430.26       Driver Version: 430.26       CUDA Version: 10.2     |
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|   0  Quadro P500         Off  | 00000000:02:00.0 Off |                  N/A |
| N/A   49C    P0    N/A /  N/A |    734MiB /  2002MiB |      0%      Default |
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|    0      1369      G   /usr/lib/xorg/Xorg                           531MiB |
|    0      1544      G   /usr/bin/gnome-shell                         163MiB |
|    0      1937      G   gnome-control-center                           1MiB |
|    0      2104      G   /usr/bin/nvidia-settings                       1MiB |
|    0      3363      G   ...uest-channel-token=1036*********5314488    36MiB |


Display help files

dpkg -L nvidia-driver-390

Multi-monitor devices