Jak ustawić niestandardową rozdzielczość za pomocą xrandr, gdy rozdzielczość nie jest dostępna w ' Ustawieniach wyświetlania '

Jestem nowym użytkownikiem Linuksa próbującym zmienić rozdzielczość ekranu, ponieważ nie ma opcji pod ekranem. Udało mi się dodać nowe rozdzielczości zgodnie z instrukcją online. Nie mam GPU , Nie wiem, czy to jest problem? Poniżej znajduje się moje xrandr -q wyjście.

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 

Komentarze

  • xrandr -q nie jest wymieniony w ich instrukcji.

Odpowiedź

Oto kroki, które musisz wykonać, aby dodać nową niestandardową rozdzielczość i zastosować ją. Poniższe kroki służą do dodania rozdzielczości 1920 x 1080, ale możesz jej użyć w dowolnej innej rozdzielczości. Upewnij się jednak, że monitor i wbudowana karta graficzna obsługują tę rozdzielczość.

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

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

Napisałem również skrypt, który wykonuje wszystkie te czynności automatycznie. Możesz to wypróbować, jeśli powyższe kroki wydają Ci się zbyt skomplikowane: https://gist.github.com/chirag64/7853413

Komentarze

  • Nie udało się wykonać ostatniego kroku …
  • Jaki błąd wystąpił? Wypróbuj zautomatyzowany skrypt, do którego dołączyłem na końcu odpowiedzi.
  • Kiedy uruchamiam twój plik chmod +x Desktop/xrandr.sh Nie czuję żadnego błędu lub żadnej zmiany.
  • chmod +x Desktop/xrandr.sh daje tylko uprawnienia do uruchamiania tego pliku. Musisz go uruchomić, uruchamiając Desktop/xrandr.sh.
  • Zamiast gtf można użyć cvt, np cvt 1920 1080, który daje takie same dane wyjściowe jak gtf, ale oblicza również prawidłową częstotliwość odświeżania. (Podanie częstotliwości odświeżania na gtf ręcznie może nie zawsze dać obsługiwane wartości wyjściowe).

Odpowiedź

Opcji --size / -s można użyć:

xrandr -s 1440x900 

Powinien działać z RandR wersją 1.1 lub nowszą.

Komentarze

  • Kiedy to robię, odpowiedź brzmi: rozmiar 1440×900 nie został znaleziony w dostępnych trybach
  • @nick Z danych wyjściowych, które zawarłeś w pytaniu, wydedukowałem, że powinno być dostępne. Co ' jest wynikiem działania xrandr --verbose?
  • xrandr: nie udało się pobrać rozmiaru współczynnika gamma dla wyjściowego domyślnego ekranu 0 : minimum 1024 x 768, prąd 1024 x 768, maksymalnie 1024 x 768 domyślnie podłączony 1024×768 + 0 + 0 (0x138) normalny (normalny) 0mm x 0mm Identyfikator: 0x137 Znacznik czasu: 5048 Podpiksel: nieznany Klony: CRTC: 0 CRTC: 0 Transform : 1,000000 0,000000 0,000000 0,000000 1,000000 0,000000 0,000000 0,000000 1,000000 filtr:
  • 1024×768 (0x138) 0,0MHz * aktualny h: szerokość 1024 początek 0 koniec 0 łącznie 1024 pochylenie 0 zegar 0,0KHz v: wysokość 768 początek 0 koniec 0 łącznie 768 taktowanie 0,0 Hz
  • Wygląda na to, że jedyną dostępną rozdzielczością jest 1024×768. Czy tę rozdzielczość chcesz ustawić?

Odpowiedź

Miałem ten sam problem. W ustawieniu wyświetlania maksymalna rozdzielczość wynosiła 1280×720. A więc:

  1. używając polecenia xrandr Widziałem nazwę tego monitora i listę rozdzielczości.
  2. Wykonałem skrypt: xrandr –output {nazwa monitora} – -mode {resolution}

Na przykład:

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

Odpowiedź

To właśnie musiałem zrobić na #IntelMaker #Joule , aby działał w natywnej rozdzielczości z 7-CALOWYM MONITOREM TFT SUNFOUNDER, który jest wymieniony jako mający rozdzielczość 1024 * 600, ale zamiast tego został wybrany jako 1280×720.

Po pierwsze, Intel Joule z Linuksem 4.4.15-yocto-standard x86_64 nie wydaje się mieć gtf(1) , więc musiałem użyć innej maszyny, aby obliczyć odpowiednie liczby:

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

Następnie utwórz plik z odpowiednimi poleceniami:

# 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 

Następnie startx lub startxfce4 i uruchom ./1024x600.sh, po czym xrandr(1) a wyświetli następujące informacje >.

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

Komentarze

  • Odpowiedź zawiera nieistotne osobiste nazwy użytkownika i hosta i nie zawiera ' t wyraźnie oddzielają polecenia od ich wyjścia – z których wszystkie mogą być mylące dla czytelników. Standardową metodą przekazania, że coś jest poleceniem, jest po prostu przedrostek $. Domyślnym WM Kali ' jest również GNOME, a nie XFCE, może powinno być jasne, że polecenie startxfce4 jest przeznaczone tylko dla użytkowników korzystających z XFCE w wersji 4.Prawdopodobieństwo, że wielu innych użytkowników będzie działać dokładnie Linux 4.4.15-yocto-standard x86_64, nie ' nie wydaje mi się wysokie, więc ' d zamiast tego napisz, że gtf (lub cvt) może być najpierw zainstalowane.

Odpowiedź

Zapisz skrypt i uruchom go (bash script.sh 1024 720 60 ) możesz ustawić niestandardową rozdzielczość za pomocą tego skryptu, ale jest to rozwiązanie tymczasowe za każdym razem, gdy wylogujesz się i zalogujesz się ponownie, musisz ponownie uruchomić skrypt. możesz dodać 2 linie kodu w swoim profilu bash.bashrc. aby uruchomić skrypt bezpośrednio z terminalu.

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

Odpowiedź

Uruchomiłem:

xrandr --verbose 

co dało mi listę znaczników rozmiaru i odpowiadających im wartości pikseli

następnie użyłem

xrandr -s 6 

, aby wybrać rozdzielczość 1920 x 1080

A nswer

Mój problem polega na tym, że rozdzielczość notebooka ma to:

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

Mój ekran główny / domyślny to 1366×768.

Ale chciałbym przetestować rozdzielczość 1920×1080 (DesireResolution) w moim notebooku.

Próbowałem wszystkiego.

Nie mogłem znaleźć rozwiązania, ponieważ mój notebook nie akceptuje poleceń addmode ani newmode z xrandr w celu zwiększenia rozdzielczości, jak to żądanie pytania o zmianę stosu.

Więc zrobiłem kilka obliczeń!

1920/1366 = 1.4055636896 1080/768 = 1.40625 

w zasadzie DesireResolution / MaxResolution

i uruchom to polecenie

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

Jeśli potrzebujesz przywrócić oryginalną rozdzielczość

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

Możesz dostosować się do dowolnej rozdzielczości.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *