Slik angir du tilpasset oppløsning ved hjelp av xrandr når oppløsningen ikke er tilgjengelig i ' Skjerminnstillinger '

Jeg er en ny Linux-bruker som prøver å endre skjermoppløsningen, ettersom det ikke er noe alternativ under visning. Jeg har klart å legge til nye oppløsninger ved å følge med på nettguiden. Jeg har ikke en GPU , Jeg vet ikke om dette er problemet? Nedenfor er xrandr -q -utgangen.

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 er ikke oppført i håndboken.

Svar

Her er trinnene du trenger for å legge til en ny tilpasset oppløsning og bruke den. Følgende trinn er for å legge til en oppløsning på 1920 x 1080, men du kan bruke den til hvilken som helst annen oppløsning du vil. Men sørg for at skjermen og innebygd grafikk støtter den opplø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

Jeg skrev også et skript som gjør alle disse trinnene automatisk. Du kan prøve det hvis trinnene ovenfor virker for kompliserte for deg: https://gist.github.com/chirag64/7853413

Kommentarer

  • Mislyktes det aller siste trinnet …
  • Hvilken feil fikk du? Prøv det automatiske skriptet som jeg koblet til på slutten av svaret.
  • Når jeg kjører filen din chmod +x Desktop/xrandr.sh Ingen feil eller ingen endring føler jeg.
  • chmod +x Desktop/xrandr.sh gir deg bare tillatelse til å kjøre den filen. Du må kjøre den ved å kjøre Desktop/xrandr.sh.
  • I stedet for gtf kan man bruke cvt, f.eks cvt 1920 1080, som gir samme utdata som gtf, men den beregner også gyldig oppdateringshastighet. (Å gi oppdateringsfrekvensen til gtf for hånd gir ikke alltid støttede utdataverdier).

Svar

Alternativet --size / -s kan brukes:

xrandr -s 1440x900 

Bør fungere med RandR versjon 1.1 eller nyere.

Kommentarer

  • Når jeg gjør dette er svaret: størrelse 1440×900 ikke funnet i tilgjengelige moduser
  • @nick Fra utgangen som du inkluderte i spørsmålet, trakk jeg ut at den skulle være tilgjengelig. Hva ‘ er utdata fra xrandr --verbose?
  • xrandr: Kunne ikke få størrelsen på gamma for utgangsstandard Skjerm 0 : minimum 1024 x 768, strøm 1024 x 768, maks 1024 x 768 standard tilkoblet 1024×768 + 0 + 0 (0x138) normal (normal) 0 mm x 0 mm Identifikator: 0x137 Tidsstempel: 5048 Underpiksel: ukjent 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: bredde 1024 start 0 slutt 0 totalt 1024 skjev 0 klokke 0.0KHz v: høyde 768 start 0 slutt 0 totalt 768 klokke 0.0Hz
  • Så det ser ut til at den eneste tilgjengelige oppløsningen er 1024×768. Er denne oppløsningen det du vil sette?

Svar

Jeg hadde det samme problemet. I skjerminnstillingen var maksimal oppløsning 1280×720. Så:

  1. ved hjelp av kommandoen xrandr Jeg har sett navnet på denne skjermen og oppløsningslisten.
  2. Jeg har utført skriptet: xrandr –output {navn på skjerm} – -modus {oppløsning}

For eksempel:

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

Svar

Dette måtte jeg gjøre på en #IntelMaker #Joule for å få det til å fungere i den opprinnelige oppløsningen med en SUNFOUNDER 7 INCH TFT COLOR MONITOR, som er oppført med 1024 * 600 oppløsning, men ble plukket opp som 1280×720 i stedet.

For det første ser Intel Joule med Linux 4.4.15-yocto-standard x86_64 ikke ut til å ha gtf(1) , så jeg måtte bruke en annen maskin for å beregne passende tall:

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

Opprett deretter en fil med riktige kommandoer:

# 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 

Deretter startx eller startxfce4, og kjør ./1024x600.sh, hvoretter følgende vil bli rapportert 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 inkluderer irrelevante personlige bruker- og vertsnavn, og betyr ikke ‘ t skiller kommandoer tydelig fra utdataene deres – som alle kan være forvirrende for leserne. En standard metode for å formidle at noe er en kommando, ville være å prefiksere det ganske enkelt med $. Kali ‘ standard WM er også GNOME, ikke XFCE, kanskje det bør gjøres klart at startxfce4-kommandoen bare er for brukere som kjører XFCE versjon 4.Sannsynligheten for at mange andre brukere kjører nøyaktig Linux 4.4.15-yocto-standard x86_64 virker ikke ‘ for meg, så jeg ‘ d skriver i stedet at gtf (eller cvt) kanskje må installeres først.

Svar

Lagre skriptet og start det (bash script.sh 1024 720 60 ) du kan angi den egendefinerte oppløsningen med det skriptet, men det er en midlertidig løsning når du logger ut og logger på igjen, du må kjøre skriptet igjen. du kan legge til 2 linjer med kode i din bash.bashrc-profil. for å kjøre skriptet direkte fra 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

Jeg løp:

xrandr --verbose 

som ga meg en liste over størrelseskoder og tilsvarende pikselverdier

så brukte jeg

xrandr -s 6 

for å velge 1920×1080-oppløsningen

A nswer

Problemet mitt er den bærbare PC-oppløsningen har dette:

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ære / standardskjerm er 1366×768.

Men jeg vil teste en oppløsning 1920×1080 (DesireResolution) i notatboken min.

Jeg prøvde alt.

Jeg kunne ikke finne en løsning fordi den bærbare PC-en min ikke godtar kommandoer for addmode eller newmode fra xrandr for å øke oppløsningen, som denne spørsmålet om stackexchange.

Så jeg gjorde noen matte!

1920/1366 = 1.4055636896 1080/768 = 1.40625 

i utgangspunktet DesireResolution / MaxResolution

og kjør denne kommandoen

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

Hvis du trenger å gjenopprette originaloppløsningen

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

Du kan tilpasse deg hvilken som helst oppløsning.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *