我正在构建一组 bash 脚本,以使用 NVidia 384.98 驱动程序实现 Ubuntu 16.04 系统中安装的 GPU 的超频。
对于我的第一个脚本,我尝试设置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
文件的更改没有保留?
为了完成目的,在重新启动之前,我运行了两次上述脚本,并且可能提供更多信息,脚本的输出如下所示
============ 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 ===========
答案1
我在修复 nVidia 的屏幕撕裂时遇到了类似的问题。即使我删除了 /etc/X11/xorg.conf,它也会重新启动时重新创建。解决方案是将您的自定义更改放入:
/etc/X11/xorg.conf.d/20-nvidia.conf
关于 nVidia 修改的详细说明可以在这里找到这里。