«nvidia-settings» получил ошибку X Window System (ошибка «BadValue (целочисленный параметр вне допустимого диапазона для операции)»).

«nvidia-settings» получил ошибку X Window System (ошибка «BadValue (целочисленный параметр вне допустимого диапазона для операции)»).

С последнего apt-get dist-upgradeутра я начал замечать nvidia-settingsсбои при попытке что-либо настроить с ошибкой ниже:

$ The program 'nvidia-settings' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
  (Details: serial 666 error_code 2 request_code 139 minor_code 25)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

Потратив уже несколько часов, я попробовал несколько вещей, описанных ниже, но безуспешно:

  • Переименовать ~/.nvidia-settings-rc--> Новый файл был создан в какой-то момент, я не уверен.
  • Переименовать /etc/X11/xorg.conf--> Новый файл не создан.
  • Установить bumblebee--> Была такая же ситуация сэтот билети сдался. Удалил.
  • Пробовал устанавливать и/или удалять nvidiaбиблиотеки (пробованные версии: 304, 319, 331, если не ошибаюсь)

Так как это выглядит какпоследний драйвер nvidia 331.20 был выпущен сегодня утром, Я подозреваю, что недавно установленная библиотека содержит нарушителя. Но есть ли у кого-нибудь идея, как это исправить?

Системные журналы:

$ cat /etc/issue
Ubuntu 12.04.4 LTS \n \l

$ uname -a
Linux 130s-serval 3.2.0-58-generic #88-Ubuntu SMP Tue Dec 3 17:37:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

$ for keyword in baseboard-manufacturer baseboard-product-name baseboard-version system-manufacturer system-product-name system-version bios-vendor bios-version bios-release-date; done
>     printf "%-22s: " "$keyword";
>     sudo dmidecode -s "$keyword";
> done
System76, Inc.                            
baseboard-product-name: Serval Professional
baseboard-version     : serp7                    
system-manufacturer   : System76, Inc.                          
system-product-name   : Serval Professional
system-version        : serp7                    
bios-vendor           : American Megatrends Inc.
bios-version          : 4.6.4
bios-release-date     : 06/01/2011

$ dpkg -p nvidia-settings |grep Version
Version: 331.20-0ubuntu0.0.1

Спасибо!

решение1

Вчера я увидел ту же проблему. Понижение с 331.20 до 304.88 помогло мне:

wget https://launchpad.net/~ubuntu-security/+archive/ppa/+build/4479926/+files/nvidia-settings_304.88-0ubuntu0.2_amd64.deb
sudo dpkg -i nvidia-settings_304.88-0ubuntu0.2_amd64.deb

решение2

Да, как и предложил @Eric, понижение до 304.88 работает. Поскольку я был включен i386и отсутствовал несколько зависимостей, мне пришлось пройти еще несколько шагов. Следующее должно решить эту проблему для людей, использующих i386.

Сначала загрузите пакет i386

wget http://http.us.debian.org/debian/pool/contrib/n/nvidia-settings/nvidia-settings_304.88-1_i386.deb

Пакет имеет несколько зависимостей, их необходимо установить перед dpkgустановкой вышеуказанного пакета. (В моем случае отсутствовали nvidia-installer-cleanupи libxnvctrl0):

wget http://http.us.debian.org/debian/pool/contrib/n/nvidia-support/nvidia-installer-cleanup_20131102+1_i386.deb
wget http://http.us.debian.org/debian/pool/contrib/n/nvidia-settings/libxnvctrl0_319.72-1_i386.deb

Для того, чтобы dpkg- nvidia-installer-cleanup, нам нужно провести небольшую уборку.

sudo apt-get remove nvidia-current nvidia-current-updates nvidia-common

После удаления вышеуказанных пакетов вы можете dpkgзагрузить загруженные пакеты по одному.

sudo -i
dpkg nvidia-installer-cleanup_20131102+1_i386.deb
dpkg libxnvctrl0
dpkg nvidia-settings_304.88-1_i386.deb

После того, как вы выполнили откат до версии 304.88 и не хотите ее обновлять, вы можете заблокировать версию следующим образом:

echo “nvidia-settings-304 hold” | dpkg --set-selections

В будущем, если вы захотите снять блокировку, вы можете сделать следующее:

echo “nvidia-settings-304 install” | dpkg --set-selections

ПРИМЕЧАНИЕ: Вы также можете использовать synapticменеджер пакетов. Просто выберите свой пакет и в меню пакетов выберите Lock Version.

Связанный контент