web-dev-qa-db-ja.com

再起動後にnvidia-xconfigの編集が保持されない?

NVidia 384.98ドライバーを使用して、Ubuntu 16.04システムにインストールされたGPUのオーバークロックを有効にするbashスクリプトのセットを構築しています。

最初のスクリプトでは、cool-bitsを使用して nvidia-xconfig (リンク先ページの下部)オプションを設定しようとしています。私のスクリプトは以下です

#!/bin/bash

# Secure required privledges
[ "$UID" -eq 0 ] || exec Sudo bash "$0" "$@"

#== Enable overclocking in NVidia X settings (Replace/Add cool-bits for all GPUs installed)
# - 1 (bit 0) - Enables overclocking of older (pre-Fermi) cores on the Clock Frequencies page in nvidia-settings.
# - 2 (bit 1) - Driver will "attempt to initialize SLI when using GPUs with different amounts of video memory".
# - 4 (bit 2) - Enables manual configuration of GPU fan speed on the Thermal Monitor page in nvidia-settings.
# - 8 (bit 3) - Enables overclocking on the PowerMizer page in nvidia-settings. 
# - 16(bit 4) - Enables overvoltage using nvidia-settings CLI options. 
echo "============ CoolBits12_AllCards.sh: Started ============"
echo ">> Setting nvidia-xconfig cool-bits=12..."
Sudo nvidia-xconfig -a --cool-bits=12 --allow-empty-initial-configuration
echo ">> ! Please restart for changes to take effect !"
echo "=========== CoolBits12_AllCards.sh: Completed ==========="

私は基本的にコマンドを実行しています

Sudo nvidia-xconfig -a --cool-bits=12 --allow-empty-initial-configuration

私の最初のetc/X11/xorg.confはそのように見えます

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

Section "Device"
    Identifier "intel"
    Driver "modesetting"
    BusID "PCI:0@0:2:0"
    Option "AccelMethod" "None"
EndSection

Section "Screen"
    Identifier "intel"
    Device "intel"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:5@0:0:0"
    Option "ConstrainCursor" "off"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "on"
    Option "IgnoreDisplayDevices" "CRT"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:6@0:0:0"
    Option "ConstrainCursor" "off"
EndSection

Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    Option "AllowEmptyInitialConfiguration" "on"
    Option "IgnoreDisplayDevices" "CRT"
EndSection

(念のため、スクリプトを数回実行して動作させようとしましたが、これは元の状態ではない可能性があります。これは再起動後のスクリプトを反映しています)

スクリプト実行の出力

============ CoolBits12_AllCards.sh: Started ============
>> Setting nvidia-xconfig cool-bits=12...

Using X configuration file: "/etc/X11/xorg.conf".

WARNING: Unable to find CorePointer in X configuration; attempting to add new
         CorePointer section.


WARNING: The CorePointer device was not specified explicitly in the layout;
         using the first mouse device.


WARNING: Unable to find CoreKeyboard in X configuration; attempting to add new
         CoreKeyboard section.


WARNING: The CoreKeyboard device was not specified explicitly in the layout;
         using the first keyboard device.

Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen0".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen1".
Backed up file '/etc/X11/xorg.conf' as
'/etc/X11/xorg.conf.nvidia-xconfig-original'
Backed up file '/etc/X11/xorg.conf' as '/etc/X11/xorg.conf.backup'
New X configuration file written to '/etc/X11/xorg.conf'

>> ! Please restart for changes to take effect !
=========== CoolBits12_AllCards.sh: Completed ===========

そして、スクリプトを実行した後、私の/etc/X11/xorg.confは次のようになります

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 384.98  (buildmeister@swio-display-x86-rhel47-02)  Thu Oct 26 15:56:05 PDT 2017

Section "ServerLayout"
    Identifier     "layout"
    Screen      0  "Screen0"
    Screen      1  "Screen1" RightOf "Screen0"
    Inactive       "intel"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "keyboard"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 1060 3GB"
    BusID          "PCI:5:0:0"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 1060 3GB"
    BusID          "PCI:6:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "Coolbits" "12"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "AllowEmptyInitialConfiguration" "True"
    Option         "Coolbits" "12"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

コンピューターを再起動した後、質問の最初にリストされている最初の/etc/X11/xorg.confファイルの内容が適切であることを確認しました。変更されたファイル/ファイルの内容は保持されませんでした。

/etc/X11/xorg.confファイルへの変更が保持されないのはなぜですか?


ある時点で、完了のために、再起動の前に上記のスクリプトを2回実行しました。スクリプトの出力を以下に示します。

============ CoolBits12_AllCards.sh: Started ============
>> Setting nvidia-xconfig cool-bits=12...

Using X configuration file: "/etc/X11/xorg.conf".

VALIDATION ERROR: Data incomplete in file /etc/X11/xorg.conf.
                  Undefined Device "intel" referenced by Screen "layout".

Package xorg-server was not found in the pkg-config search path.
Perhaps you should add the directory containing `xorg-server.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xorg-server' found
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen0".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen1".
Backed up file '/etc/X11/xorg.conf' as
'/etc/X11/xorg.conf.nvidia-xconfig-original'
Backed up file '/etc/X11/xorg.conf' as '/etc/X11/xorg.conf.backup'
New X configuration file written to '/etc/X11/xorg.conf'

>> ! Please restart for changes to take effect !
=========== CoolBits12_AllCards.sh: Completed ===========
3
KDecker

NVidiaの画面の破損を修復する同様の問題がありました。 /etc/X11/xorg.confを削除した場合でも、再起動時に再作成されます。解決策は、カスタムの変更を次の場所に配置することです。

/etc/X11/xorg.conf.d/20-nvidia.conf

NVidiaの変更に関する詳細な説明は、 こちら にあります。

1