web-dev-qa-db-fra.com

Dell XPS 15 9570 (2018) désactiver le GPU nvidia

J'ai récemment acheté un Dell XPS 15 9570 et y ai installé avec succès Ubuntu 18.04.

La plupart du temps, les choses fonctionnent comme prévu, mais il y a quelques problèmes liés au pouvoir et au GPU nvidia.

Actuellement, j'ai 2 problèmes que je considère comme majeurs:

  1. Le GPU Nvidia reste activé par défaut au démarrage, même lorsque je lance Sudo prime-select intel. Je peux le désactiver en utilisant bbswitch avec Sudo tee /etc/acpi/bbswitch <<<OFF depuis le terminal. J'aimerais pouvoir désactiver la carte graphique au démarrage car je n'utilise l'ordinateur portable que pour la productivité sous Linux.
  2. L'ordinateur portable ne parvient pas à s'endormir lorsqu'il est alimenté en courant alternatif et que bbswitch signale que le processeur graphique est désactivé. Il se met normalement en veille lorsqu'il est sur batterie, mais sur son alimentation secteur, il se met en veille mais se bloque lors de la nouvelle ouverture du couvercle de l'ordinateur portable, ne laissant qu'une option de mise hors tension permanente.

Installer

Je lance Ubuntu 18.04 sur un Dell XPS 15 9570 avec 16 Go de RAM, une carte graphique NVidia 1050 TI et un processeur i7-8750H.

Actions de configuration du système chronologique

  • Installez Ubuntu 18.04 en utilisant nouveau.modeset=0 pour pouvoir exécuter l'image en direct et le système installé pour la première fois
  • Installez les pilotes nvidia appropriés à partir du panneau Additional Drivers. Ceci installe les pilotes avec nvidia-prime
  • Utilisez Sudo prime-select intel pour prendre une carte intel. Redémarrer. Cela garantit que la carte Intel est celle utilisée par le système. Cependant, la carte discrète est toujours sur même si elle n'est pas utilisée. Ceci est rapporté par cat /proc/acpi/bbswitch. Cette commande renvoie 0000:01:00 ON qui indique que le GPU est activé. De plus, powertop indique un taux de décharge de ~ 20W par rapport à ~ 10W lorsque j'éteins manuellement le GPU via bbswitch.
  • Installez bbswitch pour vous assurer que je peux réellement désactiver la carte discrète et que cela fonctionne manuellement avec Sudo tee /etc/acpi/bbswitch <<<OFF

Choses que j'ai essayées

  • J'ai essayé d'installer bumblebee car cela devrait prendre le contrôle de bbswitch et désactiver/activer le GPU discret en cas de besoin. L'installation de bumblebee mène à un système que je ne parviens pas à charger. J'ai dû restaurer le système en accédant à la console racine et en purgeant bumblebee *
  • J'ai essayé de modifier /etc/modules/ pour qu'il contienne bbswitch load_state=0 unload_state=1 comme suggéré sur la page bbswitch GitHub. Cela ne fonctionne pas, seulement si je laisse bbswitch là, il charge bbswitch, mais ensuite je dois désactiver le GPU manuellement.

Toutes les idées sont les bienvenues. Aussi n'hésitez pas à me demander plus de détails. Il est vraiment frustrant qu'un ordinateur portable aussi parfait par ailleurs souffre de ces problèmes sous Ubuntu.

4
niosus

Sur mon 9750 exécutant Ubuntu 18.04, chaque fois que j'éteins dgpu à l'aide de bbswitch avant de me connecter ou de démarrer, mon système se bloque.

Après avoir essayé de nombreuses méthodes différentes et de nombreux redémarrages, j’ai opté pour une solution de contournement: planifier un travail cron pour activer bbswitch après un certain délai (60 secondes) au redémarrage, afin que je puisse me connecter avant que bbswitch ne se déclenche.

ouvrez la crontab en tant que root dans le terminal:

Sudo crontab -e

ajouter à cron:

@reboot sleep 60 && /sbin/modprobe bbswitch

remplacez/sbin/modprobe par votre exécutable modprobe, cela suppose que bbswitch est installé.

Ajoutez également à /etc/modprobe.d/bbswitch.conf:

options bbswitch load_state=0 unload_state=1

Cela désactive le dgpu lors du chargement de bbswitch et s’active lors du déchargement de bbswitch. Reportez-vous à ici pour plus de détails.

Pour le problème de couvercle, j'ai dû éditer logind.conf:

Sudo nano /etc/systemd/logind.conf

changez la ligne suivante:

HandleLidSwitchDocked=ignore

à

HandleLidSwitchDocked=suspend 

Bizarrement, si vous laissez les paramètres par défaut (= ignorer), connectez un écran externe et fermez le capot. L'ordinateur ne gèle pas à la réouverture. Avec = ignorer et avec un écran externe, l’ordinateur est suspendu lorsque vous fermez le couvercle, mais vous pouvez réactiver le moniteur externe avec votre souris/clavier.

2
Shunji Lin

Voici mes notes sur la désactivation du GPU nvidia et sur l’intégration du GPU Intel sur mon processeur, sous Linux. Cela a ramené ma consommation d’énergie Dell xps 15 de 25-30 à 11-12. Amélioration de la durée de vie de la batterie de 3 heures à 9-10 heures. J'ai réussi à désactiver le GPU lui-même, mais il ne démarrerait pas correctement sous Linux et même lorsque je le faisais fonctionner, il ne me permettait pas de régler le rétro-éclairage. J'ai maintenant résolu tous ces problèmes et tout fonctionne bien.

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

J'ai surtout suivi ce guide, mais j'ai dû ajouter quelques modifications https://Gist.github.com/tomwwright/f88e2ddbb4cf99f299935e1312da88

Guide est comme suit

# 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

Après avoir suivi le guide 1) exécutez powertop et allumez/éteignez nvidia, ou

Sudo nano /lib/systemd/system/gpuoff.service

éteindre le pouvoir gpu

/sys/bus/pci/devices/0000\:01\:00.0/power/control

a le même effet que de désactiver le gpu dans 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) <c’était un correctif majeur pour le faire démarrer correctement sans nomodeset. éditez /etc/X11/xorg.conf ou autre et définissez intel & nactive nvidia dans la première section a résolu le problème. Définissez la première section sur:

Section "ServerLayout"
Identifier "layout"
Screen 0 "intel"
Inactive "nvidia"
EndSection

pour changer le rétroéclairage, j’utilise la commande "light". Je pense que c'est quelque chose que j'ai téléchargé quelque part dans github

0
Maurits