Festlegen der benutzerdefinierten Auflösung mithilfe von xrandr, wenn die Auflösung unter "Anzeigeeinstellungen" nicht verfügbar ist

38

Ich bin ein neuer Linux-Benutzer, der versucht, die Bildschirmauflösung zu ändern, da keine Option angezeigt wird. Ich habe es erfolgreich geschafft, neue Resolutionen von Fluke hinzuzufügen, indem ich der Online-Anleitung gefolgt bin. Ich habe keine GPU und weiß nicht, ob dies das Problem ist. Unten ist meine xrandr -qAusgabe.

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
Nick
quelle
xrandr -q ist nicht in ihrem Handbuch aufgeführt.
neverMind9

Antworten:

47

Führen Sie die folgenden Schritte aus, um eine neue benutzerdefinierte Auflösung hinzuzufügen und anzuwenden. Die folgenden Schritte dienen zum Hinzufügen einer Auflösung von 1920 x 1080, Sie können sie jedoch auch für jede andere gewünschte Auflösung verwenden. Stellen Sie jedoch sicher, dass Ihr Monitor und die integrierte Grafik diese Auflösung unterstützen.

# 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"

Ursprüngliche Quelle: https://gist.github.com/debloper/2793261

Ich habe auch ein Skript geschrieben, das all diese Schritte automatisch ausführt. Sie können es ausprobieren, wenn Ihnen die obigen Schritte zu kompliziert erscheinen: https://gist.github.com/chirag64/7853413

Chirag Bhatia - chirag64
quelle
2
Scheiterte den allerletzten Schritt ...
Vishal Kumar Sahu
Welchen Fehler hast du bekommen? Probieren Sie das automatisierte Skript aus, das ich am Ende der Antwort verlinkt habe.
Chirag Bhatia - Chirag64
Wenn ich deine Datei chmod +x Desktop/xrandr.shstarte, fühle ich keinen Fehler oder keine Änderung.
Vishal Kumar Sahu
chmod +x Desktop/xrandr.shErteilt Ihnen nur die Berechtigung, diese Datei auszuführen. Sie müssen es ausführen, indem Sie ausführen Desktop/xrandr.sh.
Chirag Bhatia - Chirag64
: o Okay, ich habe es versäumt, die Waffe abzufeuern.
Vishal Kumar Sahu
13

Die Option --size/ -skann verwendet werden:

xrandr -s 1440x900

Sollte mit RandRVersion 1.1 oder neuer funktionieren .

jimmij
quelle
2
Wenn ich das tue, ist die Antwort: Größe 1440x900 nicht in verfügbaren Modi gefunden
Nick
@nick Aus der Ausgabe, die Sie in die Frage aufgenommen haben, habe ich abgeleitet, dass sie verfügbar sein sollte. Was ist die Ausgabe von xrandr --verbose?
Jimmy
xrandr: Fehler beim Abrufen der Gamma-Größe für die Standardausgabe. Bildschirm 0: mindestens 1024 x 768, aktuell 1024 x 768, maximal 1024 x 768, standardmäßig verbunden 1024 x 768 + 0 + 0 (0x138) normal (normal) 0 mm x 0 mm Kennung: 0x137 Zeitstempel: 5048 Subpixel: unbekannt Klone: ​​CRTC: 0 CRTCs: 0 Transform: 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 1.000000 Filter:
Nick
1024x768 (0x138) 0.0MHz * aktuelle h: Breite 1024 Start 0 Ende 0 Gesamt 1024 Versatz 0 Takt 0.0KHz v: Höhe 768 Start 0 Ende 0 Gesamt 768 Takt 0.0Hz
Nick
Die einzig verfügbare Auflösung ist also 1024x768. Ist diese Auflösung das, was Sie einstellen möchten?
Jimmy
5

Ich hatte das gleiche problem In der Anzeigeeinstellung betrug die maximale Auflösung 1280x720. So:

  1. Mit dem Befehl xrandr habe ich den Namen dieses Monitors und die Auflösungsliste gesehen.
  2. Ich habe das Skript ausgeführt: xrandr --output {Name des Monitors} --mode {resolution}

Beispielsweise:

xrandr --output DP-2-1 --mode 2560x1440
grep
quelle
3

Dies ist, was ich auf einem tun musste, #IntelMaker #Jouleum es in der nativen Auflösung mit einem SUNFOUNDER 7-ZOLL-TFT-FARBMONITOR arbeiten zu lassen, der mit einer Auflösung von 1024 * 600 aufgeführt ist, aber stattdessen mit einer Auflösung von 1280 x 720 aufgenommen wurde.

Erstens scheint Intel Joule mit Linux 4.4.15-yocto-standard x86_64 nicht zu haben gtf(1), daher musste ich einen anderen Rechner verwenden, um die entsprechenden Zahlen zu berechnen:

$ 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

$ 

Erstellen Sie dann eine Datei mit den entsprechenden Befehlen:

# 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

Dann, startxoder startxfce4, und laufen ./1024x600.sh, woraufhin das Folgende von gemeldet wird 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)
# 
cnst
quelle
Die Antwort enthält irrelevante persönliche Benutzer- und Hostnamen und trennt Befehle nicht klar von ihrer Ausgabe - was für die Leser verwirrend sein kann. Eine Standardmethode, um zu vermitteln, dass etwas ein Befehl ist, ist das einfache Präfixieren $. Kalis Standard-WM ist auch GNOME, nicht XFCE. Vielleicht sollte klargestellt werden, dass der Befehl startxfce4 nur für Benutzer mit XFCE Version 4 bestimmt ist. Die Wahrscheinlichkeit, dass viele andere Benutzer genau ausgeführt werden, Linux 4.4.15-yocto-standard x86_64ist für mich nicht sehr hoch Schreiben Sie stattdessen, dass gtf(oder cvt) möglicherweise zuerst installiert werden muss.
Miyalys
1

Ich rannte:

xrandr --verbose

das gab mir eine Liste von Größen-Tags und entsprechenden Pixelwerten

dann habe ich benutzt

xrandr -s 6

um die Auflösung 1920x1080 auszuwählen

Gavin Guan
quelle
1

Speichern Sie das Skript und starten Sie es (bash script.sh 1024 720 60). Sie können die benutzerdefinierte Auflösung mit diesem Skript festlegen. Es ist jedoch eine vorübergehende Lösung, wenn Sie sich abmelden und erneut anmelden. Sie müssen das Skript erneut ausführen. Sie können 2 Zeilen hinzufügen Code in Ihrem bash.bashrc-Profil, um das Skript direkt vom Terminal aus auszuführen.

#!/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
Neuling
quelle
0

Mein Problem ist die Notebook-Auflösung:

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

Mein Haupt- / Standardbildschirm ist 1366 x 768.

Ich möchte aber eine Auflösung 1920x1080 (DesireResolution) in meinem Notebook testen.

Ich habe alles versucht.

Ich konnte keine Lösung finden, da mein Notebook keine Befehle vom Typ "addmode" oder "newmode" von "xrandr" akzeptiert, um die Auflösung zu erhöhen.

Also habe ich ein bisschen Mathe gemacht!

1920/1366 = 1.4055636896
1080/768 = 1.40625

Grundsätzlich DesireResolution / MaxResolution

und führen Sie diesen Befehl aus

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

Wenn Sie die ursprüngliche Auflösung wiederherstellen müssen

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

Sie können sich an jede gewünschte Auflösung anpassen.

macm
quelle