Jak nastavit vlastní rozlišení pomocí xrandr, když rozlišení není k dispozici ve třídě ' Nastavení zobrazení '

Jsem nový uživatel systému Linux, který se pokouší změnit rozlišení obrazovky, protože na displeji není žádná možnost. Úspěšně se mi podařilo přidat nová rozlišení pomocí aplikace fluke podle online průvodce. Nemám GPU , Nevím, jestli se jedná o problém? Níže je můj xrandr -q výstup.

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 

Komentáře

  • xrandr -q není uveden v jejich příručce.

Odpověď

Zde jsou kroky, které potřebujete k přidání nového vlastního rozlišení a jeho použití. Následující kroky jsou pro přidání rozlišení 1920×1080, ale můžete jej použít pro jakékoli jiné rozlišení, které chcete. Nezapomeňte však na monitor a integrovanou grafiku toto rozlišení podporujte.

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

Původní s ource: https://gist.github.com/debloper/2793261

Také jsem napsal skript, který všechny tyto kroky provede automaticky. Pokud se vám výše uvedené kroky zdají příliš složité, můžete to vyzkoušet: https://gist.github.com/chirag64/7853413

Komentáře

  • Poslední krok se nezdařil …
  • K jaké chybě došlo? Vyzkoušejte automatizovaný skript, který jsem propojil na konci odpovědi.
  • Když spustím váš soubor chmod +x Desktop/xrandr.sh Necítím žádnou chybu ani žádnou změnu.
  • chmod +x Desktop/xrandr.sh vám uděluje oprávnění pouze ke spuštění tohoto souboru. Musíte jej spustit spuštěním Desktop/xrandr.sh.
  • Místo gtf lze použít cvt, např cvt 1920 1080, který produkuje stejný výstup jako gtf, ale počítá také platnou obnovovací frekvenci. (Ruční obnovovací frekvence gtf nemusí vždy poskytovat podporované výstupní hodnoty).

Odpovědět

Lze použít možnost --size / -s:

xrandr -s 1440x900 

Měl by fungovat s RandR verzí 1.1 nebo novější.

Komentáře

  • Když to udělám, odpověď je: velikost 1440×900 nebyla v dostupných režimech nalezena
  • @nick Z výstupu, který jste zahrnuli do otázky, jsem vyvodil, že by měla být k dispozici. Jaký ‚ je výstup xrandr --verbose?
  • xrandr: Nepodařilo se získat velikost gama pro výchozí výchozí obrazovku 0 : minimálně 1024 x 768, aktuální 1024 x 768, maximálně 1024 x 768 standardně připojeno 1024×768 + 0 + 0 (0x138) normální (normální) 0mm x 0mm Identifikátor: 0x137 Časové razítko: 5048 Subpixel: neznámé Klony: CRTC: 0 CRTCs: 0 Transformace : 1,000000 0,000000 0,000000 0,000000 1,000000 0,000000 0,000000 0,000000 1,000000 filtr:
  • 1024×768 (0x138) 0,0MHz * aktuální h: šířka 1024 začátek 0 konec 0 celkem 1024 zkosení 0 hodiny 0,0KHz v: výška 768 začátek 0 konec 0 celkem 768 hodin 0,0 Hz
  • Zdá se tedy, že jediné dostupné rozlišení je 1024×768. Je toto rozlišení to, co chcete nastavit?

Odpovědět

Měl jsem stejný problém. V nastavení zobrazení bylo maximální rozlišení 1280×720. Takže:

  1. pomocí příkazu xrandr jsem viděl název tohoto monitoru a seznam rozlišení.
  2. Spustil jsem skript: xrandr –output {name of monitor} – -mode {resolution}

Například:

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

Odpovědět

To je to, co jsem musel udělat na #IntelMaker #Joule , aby to fungovalo v nativním rozlišení pomocí SUNFOUNDER 7 INCH TFT COLOR MONITOR, který je uveden v rozlišení 1024 * 600, ale místo toho byl vybrán jako 1280×720.

Nejprve se zdá, že Intel Joule s Linuxem 4.4.15-yokto-standardní x86_64 nemá gtf(1) , k výpočtu příslušných čísel jsem tedy musel použít jiný stroj:

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

Poté vytvořte soubor s příslušnými příkazy:

# 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 

Potom startx nebo startxfce4 a spustit ./1024x600.sh, poté xrandr(1) a nahlásit následující >.

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

Komentáře

  • Odpověď zahrnuje irelevantní osobní jména uživatelů a hostitelů a ‚ t jasně oddělují příkazy od jejich výstupu – to vše může být pro čtenáře matoucí. Standardní způsob, jak sdělit, že něco je příkaz, by byl prefix jednoduše před $. Výchozí WM Kali ‚ je také GNOME, nikoli XFCE, možná by mělo být objasněno, že příkaz startxfce4 je pouze pro uživatele, kteří používají XFCE verze 4.Pravděpodobnost, že mnoho dalších uživatelů poběží přesně, se mi Linux 4.4.15-yocto-standard x86_64 nezdá vysoká, takže se mi ‚ d místo toho napište, že gtf (nebo cvt) bude možná nutné nainstalovat jako první.

Odpověď

Uložte skript a spusťte jej (bash script.sh 1024 720 60 ) s tímto skriptem můžete nastavit vlastní rozlišení, ale jedná se o dočasné řešení, kdykoli se odhlásíte a znovu přihlásíte, musíte skript znovu spustit. do svého profilu bash.bashrc můžete přidat 2 řádky kódu. ke spuštění skriptu přímo z terminál.

#!/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 

Odpověď

Spustil jsem:

xrandr --verbose 

který mi dal seznam značek velikosti a odpovídající hodnoty pixelů

a pak jsem použil

xrandr -s 6 

vyberte rozlišení 1920×1080

A nswer

Mým problémem je rozlišení notebooku, pokud máte toto:

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

Moje primární / výchozí obrazovka je 1366×768.

Chtěl bych ale v notebooku otestovat rozlišení 1920×1080 (DesireResolution).

Vyzkoušel jsem všechno.

Nemohl jsem najít řešení, protože můj notebook nepřijímá příkazy addmode nebo newmode od xrandr ke zvýšení rozlišení, jako je tento požadavek na otázku stackexchange.

Takže jsem udělal nějakou matematiku!

1920/1366 = 1.4055636896 1080/768 = 1.40625 

v podstatě DesireResolution / MaxResolution

a spusťte tento příkaz

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

Pokud potřebujete obnovit původní rozlišení

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

Můžete se přizpůsobit libovolnému rozlišení, které chcete.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *