Harici monitör için xrandr'a yeni mod eklenemiyor


16

Bugün ikinci monitörümü dizüstü bilgisayarıma bağlamaya çalışıyordum. Sahibim:

  • nvidia grafik kartı
  • 304.43 sürücüler [support xrandr 1.2]
  • archlinux [güncel]
  • harika wm
  • xrandr 1.3

Sorunum harici monitörüm (VGA) için 640x480'den daha yüksek çözünürlükle. 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)

Gördüğümüz gibi VGA için daha yüksek çözünürlük yok, bu yüzden yeni mod ekliyorum:

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

Pencereler altında mevcut çözünürlüğü ve yenileme hızını kontrol ettim: bunlardan biri 1024x768x70 (monitörümün OSD'si 70.4HZ olduğunu söyledi). Yeni mod oluşturduktan sonra eklemek istedim:

xrandr --addmode VGA-0 1280x1024_70.40

Ve ... Başarısız oldu:

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'dan, eski xrandr / nvidia sürücülerinin mevcut modların listesi ile ilgili bir sorun olduğunu öğrendim, ancak şimdi nvidia sürücüleri tarafından xrandr 1.2 desteğiyle daha iyi olmalı. Ayrıca daha düşük çözünürlük ve yenileme hızı (örn. 1024x768x50) ile deniyorum, ancak aynı hatayı aldım. Bu sorunla ne yapacağım konusunda fikirlerim yok ...

Yanıtlar:


11

Aşağıdaki dizeyi xrandr --newmodekendiniz oluşturduğunuzdan veya başka bir yerden kopyaladığınızdan emin değilim , ancak geçerli formunda çalışmayacak.

Adım adım yapmanızı öneririm.

İlk olarak, yeni modu oluşturmanız gerekir. LCD ile 60Hz veya CRT monitör ile 85Hz kullanmanızı öneririm

gtf 1280 1024 60

Gibi bir şey alacaksınız:

 # 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

Sonra bu modu mevcut xrandrkullanarak --newmode( 'kipsatırı' ile başlayan hattını copy-paste.

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

Ardından bu modu VGA-0'a ekleyin:

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

Ve son olarak bu yeni modu kullanabilirsiniz:

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

Haklısın, bunu xrandr --newmode $(gtf 1280 1024 70.4 | grep Modeline | sed s/Modeline\ // | tr -d '"')kendim yaratmıyorum : kendim, ama önce nasıl çalıştığına bakmak için önce küçük parçalara koydum gtf 1280 1024 70.4, sonra grep ile ve nihayet sed ve tr ile. Tek xrandr --newmodebir farkla Sizinle aynı çıktıyı verir - "1280x1024_60.00", I have 1280x1024_60.00` - sonunda tr -d '"''' 'silmek için kullanıyorum . Ne ​​yazık ki hala aynı hata var.
Borgo

Neden bu kadar garip bir yenileme hızı? 70.4? LCD ise 60Hz veya CRT durumunda 85Hz kullanın. Ve tam olarak yazdığım gibi adım adım yapın.
Paweł Rumian

Şimdi 60Hz kullanarak adım adım yapmayı denedim ve hala aynı hata var.
Borgo

1
Benim çözünürlük 1280x1024, ve ben bu modu (newmode) / add (addmode) yapmaya çalışıyorum:"1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
Borgo

1
Hala aynı hata: 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 Sadece son iki sayı değişti.
Borgo

4

Ben asla başarıyla çift tırnaklı modu kullanamazsınız çünkü daha önce eklenen bir "1280x1024_60.00" silene kadar bu BadMatch Hata sorunu vardı. Sonunda, mod için daha iyi bir isim fark etti.

Bu yüzden normal kullanıcı olarak aşağıdakileri çalıştırarak "1280x1024_60.00" ı sildim:

$ 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"' 

Sistemdeki önemsiz öğeyi silmek ve kaldırmak genellikle işe yaramadı veya hesabımdan ve kökümden silsem bile geri dönecekti. Genellikle VGA1 yerine VIRTUAL1 adlı çıkışın altına geri gelir.

Önemsiz çıkmayı ve yeni oluşturduğum modun sonuna bir harf eklemeyi ve hatta .00'ü düşürmeyi çok daha kolay buldum, bu yüzden 1280x1024_60B . Aşağıda --newmode parametresi etrafında çift tırnak bulunduğunu, ancak --admode veya --mode DEĞİL olduğunu dikkatlice not edin.

$ 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

Küçük bir ekran titriyor ve harici 19 "kare monitörüm 1280x1024 hızında çalışıyor.


Bu, saatler süren araştırmaların ardından işe yarayan tek çözümdü, çok teşekkürler, günümü kurtardın. Şerefe
Shanil Soni

Ancak bir oturumdan sonra ayar kaybedilir, kalıcı hale getirmek için herhangi bir çözüm var mı?
Shanil Soni

0

Bir VM'de (özellikle VirtualBox) Linux çalıştırıyorsanız, VM'nin yeterli Video belleğine sahip olduğundan emin olun.

Çok az video belleği, xrandr'ı çalıştırmaya çalışırken bu hataya neden olur.


0

Ben benzer sorunu çözmek için 2 saat harcamak ve sorun vga kablo oldu. VGA kablosunu değiştirin xrandr veya xorg kullanmadan çözünürlüğü 1920x1080 olarak değiştirebilirim çok garip.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.