Linux で切り替え可能なグラフィック Nvidia/Intel
多くのラップトップには 2 つのグラフィックスがあります.電力を節約する Intel と、より優れたパフォーマンスを提供する Nvidia.
切り替え可能なグラフィック、PRIME、Bumblebee、nvidia-xrun を使用するには several options があります.
これらのプログラムはどれも完全に機能するものではなく、常に問題があります.たとえば、Nvidia はまだバックグラウンドでアクティブであるため、省電力は行われないか、Nvidia は動作しますが、何らかの問題があります (Steam のゲームが動作しないか、うまく動作しません).
最後に、任意のビデオ ゲームをプレイすることを選択し、必要に応じて Nvidia を無効にする方法を見つけます.
Archlinux Nvidia guide に従って、Nvidia を有効および無効にする Ansible プレイブックを作成しました
変更にはラップトップの再起動が必要ですが、私は毎日プレイするわけではないので、この問題は許容範囲内です.
バッテリーを使用しているときに実行するコマンドがさらに 2 つあります.
これらのコマンドは、バッテリーを使用して 3 ~ 4 時間増加します.
切り替え可能なグラフィック、PRIME、Bumblebee、nvidia-xrun を使用するには several options があります.
これらのプログラムはどれも完全に機能するものではなく、常に問題があります.たとえば、Nvidia はまだバックグラウンドでアクティブであるため、省電力は行われないか、Nvidia は動作しますが、何らかの問題があります (Steam のゲームが動作しないか、うまく動作しません).
最後に、任意のビデオ ゲームをプレイすることを選択し、必要に応じて Nvidia を無効にする方法を見つけます.
Archlinux Nvidia guide に従って、Nvidia を有効および無効にする Ansible プレイブックを作成しました
---
- name: Nvidia DRM switch (disable)
hosts: localhost
become: yes
tasks:
- name: X11
ansible.builtin.file:
path: /etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
state: absent
- name: SDDM
blockinfile:
path: /usr/share/sddm/scripts/Xsetup
insertafter: |
#!/bin/sh
# Xsetup - run as root before the login dialog appears
block: ""
- name: GRUB
ansible.builtin.lineinfile:
path: /etc/default/grub
regexp: '^GRUB_CMDLINE_LINUX_DEFAULT='
line: GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet resume=/dev/mapper/Vol-swap"
register: grub
- name: Modules
ansible.builtin.lineinfile:
path: /etc/mkinitcpio.conf
regexp: '^MODULES='
line: MODULES=()
register: modules
- name: Backlist modules
blockinfile:
path: /etc/modprobe.d/blacklist.conf
block: |
blacklist nvidia
blacklist nvidia_modeset
blacklist nvidia_uvm
blacklist nvidia_drm
- name: Re-generate the grub.cfg
ansible.builtin.command: grub-mkconfig -o /boot/grub/grub.cfg
when: grub.changed
- name: Re-generate image
ansible.builtin.command: mkinitcpio -P
when: modules.changed
---
- name: Nvidia DRM switch (enable)
hosts: localhost
become: yes
tasks:
- name: X11
ansible.builtin.copy:
src: "{{ playbook_dir }}/10-nvidia-drm-outputclass.conf"
dest: /etc/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf
owner: root
group: root
mode: '0644'
- name: SDDM
blockinfile:
path: /usr/share/sddm/scripts/Xsetup
insertafter: |
#!/bin/sh
# Xsetup - run as root before the login dialog appears
block: |
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
- name: GRUB
ansible.builtin.lineinfile:
path: /etc/default/grub
regexp: '^GRUB_CMDLINE_LINUX_DEFAULT='
line: GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet resume=/dev/mapper/Vol-swap nvidia-drm.modeset=1"
register: grub
- name: Modules
ansible.builtin.lineinfile:
path: /etc/mkinitcpio.conf
regexp: '^MODULES='
line: MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
register: modules
- name: Re-generate the grub.cfg
ansible.builtin.command: grub-mkconfig -o /boot/grub/grub.cfg
when: grub.changed
- name: Re-generate image
ansible.builtin.command: mkinitcpio -P
when: modules.changed
変更にはラップトップの再起動が必要ですが、私は毎日プレイするわけではないので、この問題は許容範囲内です.
バッテリーを使用しているときに実行するコマンドがさらに 2 つあります.
# echo '\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call
# rmmod nvidia
これらのコマンドは、バッテリーを使用して 3 ~ 4 時間増加します.
/etc/acpi/handler.sh
に追加して自動的に実行する方法を研究します.Reference
この問題について(Linux で切り替え可能なグラフィック Nvidia/Intel), 我々は、より多くの情報をここで見つけました https://dev.to/callepuzzle/switchable-graphics-nvidia-intel-in-linux-2jldテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol