This post lists Dell modifications made to pre-installed Ubuntu 16.04 on Dell G3 and focuses on installing a fully-working Ubuntu 18.04.

WARNING: THIS METHOD OF HACKING IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND. If you lose your data, brick your device, any other damage or anything else happens (e.g. your cat eats your dog), it is YOUR PROBLEM and YOUR RESPONSIBILITY. You have to make sure to get a recovery disk before making these changes.

This guide assumes you have a clean Ubuntu 18.04 installed on your Dell G3. Following the following steps will recreate the configuration that Dell ships on Ubuntu-preinstalled G3 laptops.

Dell OEM customization

Dell does quite a few modifications to Ubuntu official 16.04 ISO. This is a non-exhaustive list of what Dell changed. Please note that there is no solution yet to make the fingerprint sensor works.

Useless customization

  • Bluez 5.37 : Bluez 5.48 is default in Ubuntu 18.04,
  • Dell e-star (dell-e-star_0.05_all.deb) : e-star logo in unity control panel,
  • Dell Super key (dell-super-key_0.04_all.deb) : disable super keyboard key (the one with Windows logo) by default by creating a gschema,
  • Google Chrome (google-chrome-stable_64.0.3282.140-1_amd64.deb) : can be installed easily,
  • Add Google Chrome to launcher (oem-add-google-chrome-to-launcher_1_all.deb) : a useless gschema,
  • A more recent Mesa (libdrm 2.4.83-1) : 2.4.91-2 is default in Ubuntu 18.04,
  • Dell EULA (dell-eula_1.03_all.deb) : useless information,
  • Dell repository : useless for this specific laptop.

ACPI OSI

In the package config-prime-select-intel-all_0.15_all.deb, Dell ships a config file to make Ubuntu announces itself as “Linux-Dell-Video” to the ACPI BIOS. To do the same change, create /etc/default/grub.d/Linux-Dell-Video.cfg and write :

GRUB_CMDLINE_LINUX=$(echo $GRUB_CMDLINE_LINUX acpi_osi="Linux-Dell-Video" )

Then update GRUB configuration by executing in a shell :

sudo update-grub

Better battery life

Dell uses TLP to manage power consumption and to preserve battery life.

To get the same config as the one Dell ships, install :

Just reboot and voilà!

Ethernet

Just install r8168-dkms and reboot to get a fully-working ethernet card.

Touchpad

That is optional, but Dell blacklists psmouse kernel module to remove some warning in kernel logs.

To blacklist this module, install modprobe-blacklist-psmouse_2_all.deb (GPL-2+ package developed by Canonical).

Nvidia driver

Dell ships Ubuntu 16.04 with a preconfigured Optimus-ready (PRIME) Nvidia driver and CUDA.

It uses Nvidia 390.25 driver that is older those available in Ubuntu 18.04.

The way Optimus works in Ubuntu 18.04 changed a lot since (and the official method will result in a black screen…).

We will cover how to get a similar configuration in the following section.

Install Nvidia driver with PRIME on 18.04

You can use ppa:graphics-drivers/ppa to have newer Nvidia drivers.

nvidia-driver-396 selected

Before november 2018, the only way to get a proper PRIME support was to follow the instructions on Tim Richardson’s Prime-Ubuntu-18.04 project.

Now this had been fixed in Ubuntu 18.10 and backported in 18.04.

Tear free screen with Nvidia PRIME

To use PRIME-sync and remove tearing, create /etc/default/grub.d/Nvidia-DRM.cfg and write :

GRUB_CMDLINE_LINUX=$(echo $GRUB_CMDLINE_LINUX nvidia-drm.modeset=1 )

This will load Nvidia at boot enabling some experimental features that might create instability. I have been using this configuration so far and I had no issues with Xorg.

Native Thunderbolt

Make sure you are running a kernel newer than 4.17 to make Linux will announce itself compatible with native Thunderbolt to the UEFI.

You can upgrade to a newer kernel using Ubuntu LTSEnablementStack :

# apt install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04