Så här ställer du in anpassad upplösning med xrandr när upplösningen inte är tillgänglig i ' Displayinställningar '

Jag är en ny Linux-användare som försöker ändra skärmupplösningen eftersom det inte finns något alternativ som visas. Jag har lyckats lägga till nya upplösningar genom att följa genom att följa online-guiden. Jag har inte en GPU , Jag vet inte om det här är problemet? Nedan finns min xrandr -q -utdata.

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 

Kommentarer

  • xrandr -q listas inte i deras handbok.

Svar

Här är stegen du behöver för att lägga till en ny anpassad upplösning och tillämpa den. Följande steg är för att lägga till en upplösning på 1920×1080, men du kan använda den för vilken annan upplösning du vill. stödja den upplösningen.

 # 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

Jag skrev också ett manus som gör alla dessa steg automatiskt. Du kan prova om stegen ovan verkar för komplicerade för dig: https://gist.github.com/chirag64/7853413

Kommentarer

  • Det sista steget misslyckades …
  • Vilket fel fick du? Prova det automatiska skriptet som jag länkade i slutet av svaret.
  • När jag kör filen chmod +x Desktop/xrandr.sh Inget fel eller ingen förändring känner jag.
  • chmod +x Desktop/xrandr.sh ger dig bara behörighet att köra den filen. Du måste köra den genom att köra Desktop/xrandr.sh.
  • Istället för gtf kan man använda cvt, t.ex. cvt 1920 1080, som ger samma utdata som gtf, men den beräknar också giltig uppdateringsfrekvens. (Att ge uppdateringshastighet till gtf för hand kanske inte alltid ger stöd för utdatavärden).

Svar

Alternativet --size / -s kan användas:

xrandr -s 1440x900 

Bör fungera med RandR version 1.1 eller senare.

Kommentarer

  • När jag gör detta är svaret: storlek 1440×900 finns inte i tillgängliga lägen
  • @nick Från den utgång som du inkluderade i frågan drog jag slutsatsen att den skulle vara tillgänglig. Vilken ’ är utdata från xrandr --verbose?
  • xrandr: Det gick inte att få storleken på gamma för standardinställning för skärm 0 : minimum 1024 x 768, ström 1024 x 768, max 1024 x 768 standardansluten 1024×768 + 0 + 0 (0x138) normal (normal) 0 mm x 0 mm Identifierare: 0x137 Tidsstämpel: 5048 Underpixel: okänd Kloner: CRTC: 0 CRTC: 0 Transform : 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 filter:
  • 1024×768 (0x138) 0.0MHz * ström h: bredd 1024 start 0 slut 0 totalt 1024 skev 0 klocka 0.0KHz v: höjd 768 start 0 slut 0 totalt 768 klocka 0,0Hz
  • Så det verkar som att den enda tillgängliga upplösningen är 1024×768. Är den här upplösningen vad du vill ställa in?

Svar

Jag hade samma problem. I Display-inställningen var maximal upplösning 1280×720. Så:

  1. med hjälp av kommandot xrandr Jag har sett namnet på denna bildskärm och upplösningslista.
  2. Jag har kört skriptet: xrandr –output {namn på bildskärm} – -läge {upplösning}

Till exempel:

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

Svar

Detta var vad jag var tvungen att göra på en #IntelMaker #Joule för att få det att fungera i den ursprungliga upplösningen med en SUNFOUNDER 7 INCH TFT COLOR MONITOR, som är listad med 1024 * 600-upplösning, men plockades upp som 1280×720 istället.

För det första verkar Intel Joule med Linux 4.4.15-yocto-standard x86_64 inte ha gtf(1) , så jag var tvungen att använda en annan maskin för att beräkna lämpliga siffror:

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

Skapa sedan en fil med lämpliga kommandon:

# 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 

startx eller startxfce4 och kör ./1024x600.sh, varefter följande kommer att rapporteras av 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) # 

Kommentarer

  • Svaret innehåller irrelevanta personliga användar- och värdnamn, och ’ t skiljer tydligt kommandon från deras utdata – allt detta kan vara förvirrande för läsarna. En standardmetod för att förmedla att något är ett kommando skulle vara att prefixa det helt enkelt med $. Kali ’ s standard WM är också GNOME, inte XFCE, kanske bör det göras klart att startxfce4-kommandot endast är för användare som kör XFCE version 4.Sannolikheten att många andra användare kommer att köra exakt Linux 4.4.15-yocto-standard x86_64 verkar inte ’ för mig, så jag ’ d skriver istället att gtf (eller cvt) kanske måste installeras först.

Svar

Spara skriptet och starta det (bash script.sh 1024 720 60 ) du kan ställa in den anpassade upplösningen med det skriptet men det är en tillfällig lösning när du loggar ut och loggar in igen måste du köra skriptet igen. du kan lägga till 2 rader kod i din bash.bashrc-profil. för att köra skriptet direkt från 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 

Svar

Jag sprang:

xrandr --verbose 

vilket gav mig en lista över storlekstaggar och motsvarande pixelvärden

då använde jag

xrandr -s 6 

för att välja upplösning 1920×1080

A nswer

Mitt problem är anteckningsbokens upplösning:

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 ... 

Min primära / standardskärm är 1366×768.

Men jag skulle vilja testa en upplösning 1920×1080 (DesireResolution) i min anteckningsbok.

Jag försökte allt.

Jag kunde inte hitta en lösning eftersom min anteckningsbok inte accepterar addmode- eller newmode-kommandon från xrandr för att öka upplösningen, som den här begäran om stackexchange-frågor.

Så jag gjorde lite matematik!

1920/1366 = 1.4055636896 1080/768 = 1.40625 

i grund och botten DesireResolution / MaxResolution

och kör detta kommando

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

Om du behöver återställa originalupplösningen

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

Du kan anpassa dig till vilken upplösning du vill.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *