Skip to content

Instantly share code, notes, and snippets.

@tomwwright
Last active September 3, 2024 06:20
Show Gist options
  • Save tomwwright/f88e2ddb344cf99f299935e1312da880 to your computer and use it in GitHub Desktop.
Save tomwwright/f88e2ddb344cf99f299935e1312da880 to your computer and use it in GitHub Desktop.
Dell XPS 15 9560: Ubuntu 17.10 + Nvidia 384.90 + Nvidia Prime (No Bumblebee) https://medium.com/@tomwwright/better-battery-life-on-ubuntu-17-10-4588b7f72def
# perform a fresh install of Ubuntu 17.10
# upgrade the kernel to v4.13.10
mkdir ~/kernel-v4.13.10
cd ~/kernel-v4.13.10
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-headers-4.13.10-041310_4.13.10-041310.201710270531_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-headers-4.13.10-041310-generic_4.13.10-041310.201710270531_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-image-4.13.10-041310-generic_4.13.10-041310.201710270531_amd64.deb
sudo dpkg -i *.deb
# configure required kernel parameter (https://github.com/Bumblebee-Project/bbswitch/issues/148)
sudo nano /etc/default/grub
# change this parameter to: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_rev_override=1"
# rebuild the bootloader
sudo update-grub2
# install and configure TLP and PowerTOP
sudo apt-get install tlp tlp-rdw powertop
sudo tlp start
# PowerTOP should be reporting a battery discharge rate of ~8-12W
sudo powertop --auto-tune # auto-tune parameter will configure some recommended power-saving tweaks
# install Nvidia 384.90 drivers
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt-get install nvidia-384=384.90-0ubuntu3.17.10.1
sudo apt-mark hold nvidia-384 # stop this package being auto-updated during package resolution
# test that the nvidia drivers are working: nvidia-smi should output some GPU stats
nvidia-smi
# PowerTOP should now be reporting a battery discharge rate of ~15-20W
sudo powertop
# install Nvidia Prime: so we can disable the dedicated GPU when we don't want it
sudo apt-get install nvidia-prime
sudo prime-select intel
# REBOOT: when we boot back in, GPU should now be disabled
sudo powertop # PowerTOP should be reporting ~8-12W dischargehe
nvidia-smi # nvidia-smi should complain about missing drivers
sudo prime-select nvidia # switch back to dedicated graphics
sudo powertop # PowerTOP should start reporting ~15-20W discharge
nvidia-smi # nvidia-smi should report GPU info
sudo prime-select intel # the GOTCHA: prime-select intel doesn't re-disable the graphics card
sudo powertop # PowerTOP still reporting ~15-20W discharge
nvidia-smi # nvidia-smi correctly complaining about missing drivers
@sushisoosh
Copy link

i'll post my entire notes, which is also a reference to this here doc, but contains more after this guide:

These are my notes for disabling the nvidia gpu and enabling the integrating intel GPU on my processor, on Linux. This has brought down my dell xps 15 power consumption from 25-30 w to 11-12.
Improving battery life from 3 hours to 9-10 hours. 
I had success in disabling the gpu itself, but it would not properly boot into linux and even when i did get it working it wouldn't let me adjust the backlight. 
I have now solved all these problems and everything works fine.
System Dell XPS 15 9560 9 cell battery
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
Linux version 4.15.0-39-generic (buildd@lgw01-amd64-054) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018

I followed mostly this guide, but had to add some tweaks https://gist.github.com/tomwwright/f88e2ddb344cf99f299935e1312da880
Guide is as follows
    # perform a fresh install of Ubuntu 17.10

    # upgrade the kernel to v4.13.10
    mkdir ~/kernel-v4.13.10
    cd ~/kernel-v4.13.10
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-headers-4.13.10-041310_4.13.10-041310.201710270531_all.deb
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-headers-4.13.10-041310-generic_4.13.10-041310.201710270531_amd64.deb
    wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.10/linux-image-4.13.10-041310-generic_4.13.10-041310.201710270531_amd64.deb
    sudo dpkg -i *.deb

    # configure required kernel parameter (https://github.com/Bumblebee-Project/bbswitch/issues/148)
    sudo nano /etc/default/grub
    # change this parameter to: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_rev_override=1"
    # rebuild the bootloader
    sudo update-grub2

    # install and configure TLP and PowerTOP
    sudo apt-get install tlp tlp-rdw powertop
    sudo tlp start
    # PowerTOP should be reporting a battery discharge rate of ~8-12W
    sudo powertop --auto-tune     # auto-tune parameter will configure some recommended power-saving tweaks

    # install Nvidia 384.90 drivers
    sudo add-apt-repository ppa:graphics-drivers/ppa
    sudo apt update
    sudo apt-get install nvidia-384=384.90-0ubuntu3.17.10.1
    sudo apt-mark hold nvidia-384   # stop this package being auto-updated during package resolution

    # test that the nvidia drivers are working: nvidia-smi should output some GPU stats
    nvidia-smi

    # PowerTOP should now be reporting a battery discharge rate of ~15-20W
    sudo powertop

    # install Nvidia Prime: so we can disable the dedicated GPU when we don't want it
    sudo apt-get install nvidia-prime
    sudo prime-select intel

    # REBOOT: when we boot back in, GPU should now be disabled

    sudo powertop   # PowerTOP should be reporting ~8-12W dischargehe 
    nvidia-smi      # nvidia-smi should complain about missing drivers

    sudo prime-select nvidia  # switch back to dedicated graphics
    sudo powertop   # PowerTOP should start reporting ~15-20W discharge
    nvidia-smi      # nvidia-smi should report GPU info

    sudo prime-select intel   # the GOTCHA: prime-select intel doesn't re-disable the graphics card
    sudo powertop   # PowerTOP still reporting ~15-20W discharge
    nvidia-smi      # nvidia-smi correctly complaining about missing drivers
After following the guide
1)
    powertop
    turn nvidia on/off
    sudo nano /lib/systemd/system/gpuoff.service
    to turn off the gpu power in 
    /sys/bus/pci/devices/0000\:01\:00.0/power/control
    has the same effect as disabling the gpu in powertop
    sudo nano /lib/systemd/system/gpuoff.service
    sudo systemctl start gpuoff
    sudo systemctl enable gpuoff 
    #prime-select nvidia
    prime-select intel
    prime-select query

2)
sudo vim /etc/default/grub
#grub now that it works:
    GRUB_DEFAULT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=10
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor" # < boots
    GRUB_CMDLINE_LINUX=""

3) < this was a major fix for getting it to boot properly without nomodeset
    editting /etc/X11/xorg.conf or so and setting intel & inactive nvidia in the first section solved the problem
    Section "ServerLayout"
    Identifier "layout"
    Screen 0 "intel"
    Inactive "nvidia"
    EndSection


@philiporlando
Copy link

What would need to be altered for this to work with Xubuntu?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment