Вопрос или проблема
Когда я пытаюсь изменить разрешение, появляется следующее:
$ sudo xrandr --addmode LVDS1 1976x1080_60.00
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 18 (RRAddOutputMode)
Serial number of failed request: 32
Current serial number in output stream: 33
Пожалуйста, помогите мне.
Не знаю, как вы подошли к этому вопросу, но вот шаги, которые я нашел и которые следовало бы использовать:
-
Используйте xrandr, чтобы убедиться, что новый режим может поместиться в пределах максимального размера буфера кадров:
xrandr | grep maximum
-
Используйте gtf для создания строки режима:
gtf 1440 900 59.9
-
Вывод будет выглядеть следующим образом:
# 1440x900 @ 59.90 Hz (GTF) hsync: 55.83 kHz; pclk: 106.29 MHz Modeline "1440x900_59.90" 106.29 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync
-
-
Добавьте новый режим из
шага 2
с помощью xrandrxrandr --newmode "1440x900_59.90" 106.29 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync
-
Добавьте этот вновь добавленный режим к желаемому выходу (VGA/LVDS и т. д.):
xrandr --addmode VGA 1440x900_59.90
-
Выберите новый режим:
xrandr --output VGA --mode 1440x900_59.90
Примечание:
Измените эти числа 1440x900_59.90
на 1976x1080_60.00
в зависимости от вашего запроса.
Источник:
https://ubuntuforums.org/showthread.php?t=1112186
https://wiki.ubuntu.com/X/Config/Resolution#Adding%20undetected%20resolutions
Ответ или решение
Конфигурация и управление разрешением экрана в Linux, особенно с использованием утилит командной строки, таких как xrandr
, может быть сложной задачей. Ошибка, с которой вы столкнулись — "X Error of failed request: BadMatch (invalid parameter attributes)" — часто возникает, когда параметры, используемые в команде, не соответствуют существующим аппаратным ограничениям или когда режим работы не был корректно сформирован и добавлен в существующий список разрешений. Давайте разберем процесс более подробно, чтобы избежать такой ошибки.
Теоретическая часть
Утилита xrandr
предоставляет интерфейс для управления и изменения разрешений и частоты обновления монитора. Команда --addmode
используется для добавления нового режима к конкретному выходу дисплея, который был предварительно создан с помощью --newmode
. Однако для успешной работы с этой утилитой необходимо учитывать несколько важных аспектов:
-
Проверка максимального размера кадра: Каждый графический адаптер и монитор имеют свои ограничения по максимальному разрешению и частоте обновления. Эти ограничения связаны с аппаратными возможностями и драйверами.
-
Создание модельной строки: Для того чтобы добавить новое разрешение, сначала необходимо сформировать модельную строку, описывающую это разрешение. Это можно сделать с помощью утилиты
gtf
илиcvt
, которые рассчитывают необходимую модельную строку на основании указанных параметров разрешения и частоты обновления. -
Добавление нового режима: Модельная строка, созданная на предыдущем шаге, добавляется как новый режим через команду
--newmode
. -
Объединение с выводом дисплея: После создания и добавления режима необходимо связать его с определенным выходом, например, LVDS1 (встроенный экран ноутбука) или VGA (внешний монитор).
Пример
Допустим, вы хотите добавить разрешение 1976×1080 с частотой 60.00 Гц. Согласно вашему описанию, вы следовали правильному процессу, но столкнулись с ошибкой на этапе добавления режима. Вот шаги, которые должны помочь:
-
Проверка текущей конфигурации и максимального буфера кадра:
xrandr | grep maximum
Здесь важно убедиться, что новое разрешение не превышает указанные размеры.
-
Создание модельной строки:
Используяgtf
илиcvt
, создайте модельную строку:cvt 1976 1080 60
Вы получите что-то вроде:
Modeline "1976x1080_60.00" 173.00 1976 2104 2312 2648 1080 1083 1093 1120 -hsync +vsync
-
Добавление нового режима:
Перейдите к добавлению этого режима с помощью:xrandr --newmode "1976x1080_60.00" 173.00 1976 2104 2312 2648 1080 1083 1093 1120 -hsync +vsync
-
Привязка режима к дисплею:
xrandr --addmode LVDS1 1976x1080_60.00
Если вы все сделали верно, эта команда не должна вызывать ошибок.
-
Установка нового режима:
xrandr --output LVDS1 --mode 1976x1080_60.00
Применение
Ошибки вроде BadMatch могут возникать в нескольких случаях. Один из них — когда разрешение не поддерживается аппаратно. Также ошибки могут появляться, если неверно указаны параметры команд или если не была учтена совместимость с текущими настройками оборудования. Обратите внимание на следующее:
-
Совместимость драйвера: Убедитесь, что у вас установлены актуальные драйвера для вашей видеокарты. Некоторые проблемы с разрешением могут быть связаны с устаревшими или несовместимыми драйверами.
-
Проверка доступных режимов: Проверьте текущий список доступных режимов с помощью
xrandr
, чтобы удостовериться, что ваш новый режим уникален и не конфликтерует с существующими. -
Логика расчета GTF/CTV: Проверяйте, что параметры, использованные для создания модельной строки (такие как частота обновления), действительно поддерживаются вашим экраном.
Заключение
Если вы все равно сталкиваетесь с ошибкой после выполнения этих шагов, возможно, дальнейшее изучение документации вашего оборудования или консультация на форумах пользователей того же оборудования помогут понять, где может скрываться проблема. Очень полезно также проверять журналы системы (dmesg
, /var/log/Xorg.0.log
) на наличие дополнительных подсказок и ошибок. Соблюдение аккуратности на каждом из этапов и тщательная проверка совместимости — ключевые шаги для успешного изменения разрешения в системах Linux с использованием xrandr
.