web-dev-qa-db-ja.com

Dell XPS 15 9570(2018)nvidia GPUを無効にする

最近、Dell XPS 15 9570を購入し、Ubuntu 18.04を正常にインストールしました。

ほとんどの場合、期待どおりに機能しますが、電力とnvidia GPUに関連する問題がいくつかあります。

現在、私はメジャーだと思う2つの問題があります:

  1. Nvidia GPUは、Sudo prime-select intelを実行しても、ブート時にデフォルトでonのままです。端末からSudo tee /etc/acpi/bbswitch <<<OFFを指定してbbswitchを使用して無効にできます。 Linuxでの生産性のためだけにラップトップを使用するため、ブート時にグラフィックカードを無効にできるようにしたいと思います。
  2. AC電源およびbbswitchがGPUがオフであることを報告している場合、ラップトップはスリープ状態になりません。バッテリーを入れるとスリープ状態になりますが、AC電源ではスリープ状態になりますが、ラップトップのふたを再び開くとハングアップし、オプションとしてハード電源オフのみが残ります。

セットアップ

16GのRAM、NVidia 1050 TIグラフィックスカード、およびi7-8750Hプロセッサを搭載したDell XPS 15 9570でUbuntu 18.04を実行します。

時系列システム設定アクション

  • nouveau.modeset=0を使用してUbuntu 18.04をインストールし、ライブイメージとインストールされたシステムを初めて実行できるようにします
  • Additional Driversパネルから適切なnvidiaドライバーをインストールします。これにより、nvidia-primeとともにドライバーがインストールされます
  • Sudo prime-select intelを使用して、Intelカードを選択します。リブート。これにより、Intelカードがシステムで使用されるようになります。ただし、ディスクリートカードは使用されていなくても、まだonです。これはcat /proc/acpi/bbswitchによって報告されます。このコマンドは、GPUがオンであることを示す0000:01:00 ONを返します。また、powertopは、bbswitchを使用してGPUを手動でオフにしたときの〜10Wと比較して、〜20Wの放電率を示しています。
  • bbswitchをインストールして、実際に個別のカードを無効にできることを確認し、Sudo tee /etc/acpi/bbswitch <<<OFFを使用して手動で機能するようにします

試したこと

  • 必要に応じてbbswitchを制御し、ディスクリートGPUを無効/有効にする必要があるため、bumblebeeのインストールを試みました。 bumblebeeをインストールすると、システムをロードできなくなります。ルートコンソールに移動してバンブルビーをパージして、システムを回復する必要がありました*
  • bbswitch GitHubページで提案されているように、/etc/modules/を含むようにbbswitch load_state=0 unload_state=1を変更しようとしました。これは動作しません。bbswitchをそこに置いただけでbbswitchがロードされますが、GPUを手動で無効にする必要があります。

どんなアイデアでも大歓迎です。詳細についてはお気軽にお問い合わせください。そうでなければ完璧なラップトップがUbuntuでこれらの問題に悩まされるのは本当にイライラします。

5
niosus

Ubuntu 18.04を実行している9750では、ログインまたはブートの前にbbswitchを使用してdgpuをオフにすると、システムがフリーズします。

多くの異なる方法と多くの再起動を試みた後、回避策に落ち着きました:cronスイッチを起動して、再起動の遅延(60秒)後にbbswitchをアクティブにし、bbswitchが起動する前にログインできるようにしました。

ターミナルでcrontabをルートとして開きます:

Sudo crontab -e

cronに追加:

@reboot sleep 60 && /sbin/modprobe bbswitch

/ sbin/modprobeをmodprobe実行可能ファイルの場所に置き換えます。これは、bbswitchがインストールされていることを前提としています。

また、/ etc/modprobe.d/bbswitch.confに追加します。

options bbswitch load_state=0 unload_state=1

これにより、bbswitchのロード時にdgpuがオフになり、bbswitchのアンロード時にオンになります。詳細については here を参照してください。

ふたの問題については、logindd.confを編集する必要がありました。

Sudo nano /etc/systemd/logind.conf

次の行を変更します。

HandleLidSwitchDocked=ignore

HandleLidSwitchDocked=suspend 

不思議なことに、デフォルトの設定(= ignore)のままにして、外部ディスプレイを接続し、ふたを閉じると、コンピューターは再起動時にフリーズしません。 = ignoreおよび外部ディスプレイを使用すると、ふたを閉じるとコンピューターがサスペンドしますが、マウス/キーボードで外部モニターを起動できます。

3
Shunji Lin

これらは、nvidia GPUを無効にして、Intel GPUをLinux上のプロセッサーで有効にするためのメモです。これにより、Dell XPS 15の電力消費が25〜30ワットから11〜12ワットに削減されました。バッテリー寿命を3時間から9-10時間に改善します。 GPU自体を無効にすることに成功しましたが、Linuxを適切に起動できず、動作させてもバックライトを調整できませんでした。私は今これらすべての問題を解決しました、そして、すべてはうまく働きます。

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

私は主にこのガイドに従いましたが、いくつかの調整を追加する必要がありました https://Gist.github.com/tomwwright/f88e2ddb344cf99f299935e1312da88

ガイドは次のとおりです

# 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

ガイドに従った後1)powertopを実行し、nvidiaのオン/オフを切り替える、または

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

gPUの電源を切るには

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

powertopでGPUを無効にするのと同じ効果があります

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)<これは、nomodesetなしで適切に起動するための主要な修正でした。 /etc/X11/xorg.confを編集して、最初のセクションでintelとinactive nvidiaを設定すると、問題が解決しました。最初のセクションを次のように設定します。

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

バックライトを変更するには、「ライト」コマンドを使用します。これはどこかgithubからダウンロードしたものだと思う

1
Maurits