Cum se setează rezoluția personalizată utilizând xrandr când rezoluția nu este disponibilă în ' Setări de afișare '

Sunt „un nou utilizator Linux care încearcă să schimbe rezoluția ecranului, deoarece nu există nicio opțiune afișată. Am reușit să adaug rezoluții noi prin fluke urmând ghidul online. Nu am GPU , Nu știu dacă acesta este problema? Mai jos este xrandr -q ieșirea mea.

root@kali:~# xrandr -q xrandr: Failed to get size of gamma for output default Screen 0: minimum 1280 x 1024, current 1280 x 1024, maximum 1280 x 1024 default connected 1280x1024+0+0 0mm x 0mm 1280x1024 0.0* 1920x1200_60.00 (0x145) 193.2MHz h: width 1920 start 2056 end 2256 total 2592 skew 0 clock 74.6KHz v: height 1200 start 1203 end 1209 total 1245 clock 59.9Hz 1440x900_59.90 (0x156) 106.3MHz h: width 1440 start 1520 end 1672 total 1904 skew 0 clock 55.8KHz v: height 900 start 901 end 904 total 932 clock 59.9Hz 

Comentarii

  • xrandr -q nu este listat în manualul lor.

Răspuns

Iată pașii de care aveți nevoie pentru a adăuga o nouă rezoluție personalizată și a o aplica. Următorii pași sunt pentru adăugarea unei rezoluții 1920×1080, dar o puteți folosi pentru orice altă rezoluție doriți. Dar asigurați-vă că monitorul și grafica de la bord susțineți această rezoluție.

 # First we need to get the modeline string for xrandr # Luckily, the tool "gtf" will help you calculate it. # All you have to do is to pass the resolution & the- # refresh-rate as the command parameters: gtf 1920 1080 60 # In this case, the horizontal resolution is 1920px the # vertical resolution is 1080px & refresh-rate is 60Hz. # IMPORTANT: BE SURE THE MONITOR SUPPORTS THE RESOLUTION # Typically, it outputs a line starting with "Modeline" # e.g. "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync # Copy this entire string (except for the starting "Modeline") # Now, use "xrandr" to make the system recognize a new # display mode. Pass the copied string as the parameter # to the --newmode option: xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync # Well, the string within the quotes is the nick/alias # of the display mode - you can as well pass something # as "MyAwesomeHDResolution". But, careful! :-| # Then all you have to do is to add the new mode to the # display you want to apply, like this: xrandr --addmode VGA1 "1920x1080_60.00" # VGA1 is the display name, it might differ for you. # Run "xrandr" without any parameters to be sure. # The last parameter is the mode-alias/name which # you"ve set in the previous command (--newmode) # It should add the new mode to the display & apply it. # Usually unlikely, but if it doesn"t apply automatically # then force it with this command: xrandr --output VGA1 --mode "1920x1080_60.00"  

Original s ource: https://gist.github.com/debloper/2793261

De asemenea, am scris un script care face automat acești pași. Puteți încerca dacă pașii de mai sus vi se par prea complicați: https://gist.github.com/chirag64/7853413

Comentarii

  • Nu a reușit ultimul pas …
  • Ce eroare ați primit? Încercați scriptul automat pe care l-am legat la sfârșitul răspunsului.
  • Când rulez fișierul chmod +x Desktop/xrandr.sh Nu simt nicio eroare sau nicio modificare.
  • chmod +x Desktop/xrandr.sh vă oferă numai permisiuni pentru a rula fișierul respectiv. Trebuie să-l rulați executând Desktop/xrandr.sh.
  • În loc de gtf se poate utiliza cvt, de ex cvt 1920 1080, care produce aceeași ieșire ca gtf, dar calculează și rata de reîmprospătare validă. (Se poate oferi manual o rată de reîmprospătare gtf manuală).

Răspuns

Opțiunea --size / -s poate fi utilizată:

xrandr -s 1440x900 

Ar trebui să funcționeze cu RandR versiunea 1.1 sau mai recentă.

Comentarii

  • Când fac acest lucru, răspunsul este: dimensiunea 1440×900 nu se găsește în modurile disponibile
  • @nick Din ieșirea pe care ați inclus-o în întrebare am dedus că ar trebui să fie disponibilă. Ce ‘ este ieșirea xrandr --verbose?
  • xrandr: nu s-a putut obține dimensiunea gamma pentru ieșirea implicită Ecranul 0 : minim 1024 x 768, curent 1024 x 768, maxim 1024 x 768 implicit conectat 1024×768 + 0 + 0 (0x138) normal (normal) 0mm x 0mm Identificator: 0x137 Timestamp: 5048 Subpixel: necunoscut Clone: CRTC: 0 CRTCs: 0 Transform : 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 filtru:
  • 1024×768 (0x138) 0.0MHz * curent h: lățime 1024 start 0 sfârșit 0 total 1024 înclinare 0 ceas 0.0KHz v: înălțime 768 start 0 sfârșit 0 ceas total 768 0,0Hz
  • Deci, se pare că singura rezoluție disponibilă este 1024×768. Este această rezoluție ceea ce doriți să setați?

Răspuns

Am avut aceeași problemă. În afișare, rezoluția maximă a fost de 1280×720. Deci:

  1. folosind comanda xrandr am văzut numele acestui monitor și lista de rezoluții.
  2. Am executat scriptul: xrandr –output {name of monitor} – -mode {resolution}

De exemplu:

xrandr --output DP-2-1 --mode 2560x1440 

Răspuns

Asta a trebuit să fac pe un #IntelMaker #Joule pentru a-l face să funcționeze în rezoluția nativă cu un SUNFOUNDER 7 INCH TFT COLOR MONITOR, care este listat ca având rezoluție 1024 * 600, dar a fost preluat ca 1280×720.

Mai întâi, Intel Joule cu Linux 4.4.15-yocto-standard x86_64 nu pare să aibă gtf(1) , deci, a trebuit să folosesc o altă mașină pentru a calcula numerele corespunzătoare:

$ gtf 1024 600 60 # 1024x600 @ 60.00 Hz (GTF) hsync: 37.32 kHz; pclk: 48.96 MHz Modeline "1024x600_60.00" 48.96 1024 1064 1168 1312 600 601 604 622 -HSync +Vsync $ 

Apoi, creați un fișier cu comenzile corespunzătoare:

# cat > 1024x600.sh xrandr --newmode "1024x600_60.00" 48.96 1024 1064 1168 1312 600 601 604 622 -HSync +Vsync xrandr --addmode HDMI1 "1024x600_60.00" xrandr --output HDMI1 --mode "1024x600_60.00" ^D # chmod +x 1024x600.sh 

Apoi, startx sau startxfce4 și rulați ./1024x600.sh, după care, următoarele vor fi raportate de xrandr(1) .

# xrandr Screen 0: minimum 8 x 8, current 1024 x 600, maximum 32767 x 32767 DP1 disconnected (normal left inverted right x axis y axis) HDMI1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 697mm x 392mm 1280x720 60.00 + 50.00 59.94 1920x1080 60.00 50.00 59.94 1920x1080i 60.00 50.00 59.94 1280x1024 75.02 1440x900 74.98 59.90 1024x768 75.08 70.07 60.00 1024x600 60.00 800x600 72.19 75.00 60.32 56.25 720x576 50.00 720x576i 50.00 720x480 60.00 59.94 720x480i 60.00 59.94 640x480 75.00 72.81 60.00 59.94 720x400 70.08 1024x600_60.00 60.00* HDMI2 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis) # 

Comentarii

  • Răspunsul include nume de utilizator și gazdă irelevante și nu ‘ t separă clar comenzile de ieșirea lor – toate acestea pot fi confuze pentru cititori. O metodă standard de transmitere a faptului că ceva este o comandă ar fi prefixarea acestuia pur și simplu cu $. KM ‘ WM implicit este, de asemenea, GNOME, nu XFCE, poate ar trebui clarificat faptul că comanda startxfce4 este doar pentru utilizatorii care rulează XFCE versiunea 4.Probabilitatea ca mulți alți utilizatori să ruleze exact Linux 4.4.15-yocto-standard x86_64 nu mi se pare mare, așa că eu ‘ d în schimb scrieți că gtf (sau cvt) ar trebui să fie instalat mai întâi.

Răspuns

Salvați scriptul și lansați-l (bash script.sh 1024 720 60 ) puteți seta rezoluția personalizată cu acel script, dar este o soluție temporară ori de câte ori vă deconectați și vă conectați din nou, trebuie să rulați din nou scriptul. Puteți adăuga 2 linii de cod în profilul dvs. bash.bashrc. pentru a rula scriptul direct din terminal.

#!/bin/bash # xrandr.sh #If no argument is specified, ask for it and exit if [[ -z "$@" ]]; then echo "An argument is needed to run this script"; exit else arg="$@" #Basic check to make sure argument number is valid. If not, display error and exit if [[ $(($(echo $arg | grep -o "\s" | wc --chars) / 2 )) -ne 2 ]]; then echo "Invalid Parameters. You need to specify parameters in the format "width height refreshRate"" echo "For example setResolution "2560 1440 60"" exit fi #Save stuff in variables and then use xrandr with those variables modename=$(echo $arg | sed "s/\s/_/g") display=$(xrandr | grep -Po ".+(?=\sconnected)") if [[ "$(xrandr|grep $modename)" = "" ]]; then xrandr --newmode $modename $(gtf $(echo $arg) | grep -oP "(?<="\s\s).+") && xrandr --addmode $display $modename fi xrandr --output $display --mode $modename #If no error occurred, display success message if [[ $? -eq 0 ]]; then echo "Display changed successfully to $arg" fi fi 

Răspuns

Am alergat:

xrandr --verbose 

care mi-a oferit o listă de etichete de dimensiune și valorile pixelilor corespunzătoare

apoi am folosit

xrandr -s 6 

pentru a selecta rezoluția 1920×1080

A nswer

Problema mea este că rezoluția notebook-ului are acest lucru:

Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767 eDP1 connected 1920x1080+0+0 ... 1366x768 60.00*+ 47.98 <=== MaxResolution (Default/Primary) 1360x768 59.80 59.96 1280x720 60.00 ... 

Ecranul meu principal / implicit este 1366×768.

Dar aș vrea să testez o rezoluție 1920×1080 (DesireResolution) în blocnotesul meu.

Am încercat totul.

Nu am putut găsi o soluție deoarece notebook-ul meu nu acceptă comenzi addmode sau newmode de la xrandr pentru a crește rezoluția, ca această cerere de întrebare stackexchange.

Așa că am făcut câteva calcule!

1920/1366 = 1.4055636896 1080/768 = 1.40625 

practic DesireResolution / MaxResolution

și rulați această comandă

xrandr --output eDP1 --mode 1366x768 --panning 1920x1080 --scale 1.40556369x1.40625

Dacă aveți nevoie să restaurați rezoluția originală

xrandr --output eDP1 --mode 1366x768 --panning 1366x768 --scale 1x1 

Vă puteți adapta la orice rezoluție doriți.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *