Неможливо додати новий режим у xrandr для зовнішнього монітора


16

Сьогодні я намагався підключити другий монітор до свого ноутбука. Я маю:

  • Графічна картка nvidia
  • 304.43 драйвери [підтримка xrandr 1.2]
  • archlinux [оновлений]
  • приголомшливий wm
  • xrandr 1.3

Моя проблема полягає в тому, що для мого зовнішнього монітора (VGA) більша роздільна здатність, ніж 640x480. xrandr -q:

Screen 0: minimum 8 x 8, current 1920 x 800, maximum 8192 x 8192
VGA-0 connected 640x480+1280+0 (normal left inverted right x axis y axis) 0mm
   640x480        59.9*+
   320x240       120.1  
LVDS-0 connected 1280x800+0+0 (normal left inverted right x axis y axis) 331m
   1280x800       59.9*+
HDMI-0 disconnected (normal left inverted right x axis y axis)

Як ми бачимо, VGA не має більшої роздільної здатності, тому я додаю новий режим:

xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')

Я перевірив доступну роздільну здатність та частоту оновлення під вікнами: один з них був 1024x768x70 (в екрані монітора сказано, що це 70,4 Гц). Після створення нового режиму я хотів його додати:

xrandr --addmode VGA-0 1280x1024_70.40

І ... не вдалося:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  153 (RANDR)
  Minor opcode of failed request:  18 (RRAddOutputMode)
  Serial number of failed request:  29
  Current serial number in output stream:  30

З google я дізнався, що у старих драйверів xrandr / nvidia проблема зі списком доступних режимів, але тепер із підтримкою xrandr 1.2 драйверами nvidia це має бути краще. Я також намагаюся з меншою роздільною здатністю та частотою оновлення (наприклад, 1024x768x50), але я отримав ту ж помилку. Мені немає ідеї, що робити з цією проблемою ...

Відповіді:


11

Я не впевнений, чи створили ви наступний рядок xrandr --newmodeсамостійно чи скопіювали його з іншого місця, але він не працюватиме в його теперішньому вигляді.

Рекомендую робити це поетапно.

По-перше, вам потрібно створити новий режим. Я рекомендую використовувати 60Hz з РК-дисплеєм або 85Hz з монітором CRT

gtf 1280 1024 60

Ви отримаєте щось на кшталт:

 # 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz 
 Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync Vsync

Потім представіть цей режим xrandrвикористання --newmode(скопіюйте та вставте рядок, починаючи з «Modeline».

 xrandr --newmode "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync Vsync

Потім додайте цей режим до VGA-0:

xrandr --addmode VGA-0 "1280x1024_60.00"

І нарешті ви можете використовувати цей новий режим:

 xrandr --output VGA-0 --mode 1280x1024_60.00

Ви маєте рацію, я цього не створюю: xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')сам, але я кладу це на невеликі шматочки спочатку, щоб подивитися, як це працює, спочатку gtf 1280 1024 70.4, потім з грепом і, нарешті, з sed і tr. Це дає той самий вихід, який у вас у вашому xrandr --newmodeз одним розрізком - у вас є "1280x1024_60.00", I have 1280x1024_60.00 '- в кінці я використовую tr -d '"'для видалення "" ". На жаль, я все одно маю ту саму помилку.
Borgo

Чому так дивна частота оновлення? 70,4? Використовуйте 60 Гц, якщо це РК-дисплей або 85 Гц у випадку ЕПТ. І роби це покроково, точно так, як я написав.
Paweł Rumian

Тепер я спробував це зробити крок за кроком, використовуючи 60 Гц, і у мене все ще така ж помилка.
Борго

1
Моя роздільна здатність - 1280x1024, і я намагаюся зробити (newmode) / add (addmode) цей режим:"1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
Borgo

1
Ще одна і та ж помилка: X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 153 (RANDR) Minor opcode of failed request: 18 (RRAddOutputMode) Serial number of failed request: 29 Current serial number in output stream: 30 змінилися лише два останні числа.
Борго

4

У мене була ця проблема з помилкою BadMatch, поки я не видалив раніше доданий "1280x1024_60.00", оскільки він ніколи не міг успішно використовувати режим подвійного цитування. Врешті-решт, зрозуміла краща назва режиму допомогла.

Тому я видалив "1280x1024_60.00", запустивши наступного, як звичайний користувач:

$ xrandr --version 
reports 1.4.0 and 1.4
$ xrandr | grep 1280 #Do you see any 1280x1024 anywhere?  Does it have double quotes?
$ xrandr --verbose --delmode VGA1 '"1280x1024_60.00"'
$ xrandr --verbose --rmmode '"1280x1024_60.00"' 

Видалення та видалення небажаної файлу в системі часто не спрацьовувало або не повернулось би, хоча я видалив би її з облікового запису та корінця. Зазвичай він повертається під висновком під назвою VIRTUAL1 замість VGA1.

Набагато простіше було залишити мотлох і додати лист наприкінці мого новоствореного режиму і навіть скинув .00, так 1280x1024_60B . Зверніть увагу уважно нижче, є подвійні лапки навколо параметра --newmode, але НЕ --addmode ні --mode

$ xrandr --verbose --newmode "1280x1024_60B" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
$ xrandr --verbose --addmode VGA1 1280x1024_60B
$ xrandr --verbose --output VGA1 --mode 1280x1024_60B

Трохи мерехтіння екрана, і мій зовнішній 19-дюймовий квадратний монітор працює у роздільній здатності 1280x1024.


Це було єдине рішення після години досліджень, які спрацювали, велике спасибі, ти врятував мені день. Ура
Шаніл Соні

Однак налаштування втрачає після сеансу, будь-яке рішення зробити його постійним?
Шаніл Соні

0

Якщо ви працюєте з Linux на VM (конкретно, VirtualBox), переконайтеся, що в VM достатньо відеопам'яті.

Занадто мало відеопам'яті викликає цю помилку при спробі запуску xrandr.


0

Я витрачаю 2 години, щоб вирішити подібну проблему і проблема була в кабелі VGA. Замініть кабель VGA Я можу змінити роздільну здатність на 1920x1080, не використовуючи xrandr або xorg, це дуже дивно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.