'디스플레이 설정'에서 해상도를 사용할 수 없을 때 xrandr을 사용하여 사용자 해상도를 설정하는 방법


37

표시중인 옵션이 없으므로 화면 해상도를 변경하려고하는 새로운 Linux 사용자입니다. 온라인 가이드에 따라 fluke로 새로운 해결책을 성공적으로 추가했습니다. GPU가 없습니다. 이것이 문제인지 모르겠습니다. 아래는 내 xrandr -q출력입니다.

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

xrandr -q은 그들의 매뉴얼에 나열되지 않습니다.
neverMind9 9

답변:


46

새로운 사용자 지정 해상도를 추가하고 적용하는 데 필요한 단계는 다음과 같습니다. 다음 단계는 1920x1080 해상도를 추가하기위한 것이지만 원하는 다른 해상도에 사용할 수 있습니다. 그러나 모니터와 온보드 그래픽이 해당 해상도를 지원하는지 확인하십시오.

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

원본 출처 : https://gist.github.com/debloper/2793261

또한이 모든 단계를 자동으로 수행하는 스크립트를 작성했습니다. 위의 단계가 너무 복잡해 보이는 경우 시도해 볼 수 있습니다. https://gist.github.com/chirag64/7853413


2
마지막 단계 실패 ...
Vishal Kumar Sahu

어떤 오류가 발생 했습니까? 답의 끝에 링크 된 자동 스크립트를 사용해보십시오.
Chirag Bhatia-chirag64

파일을 실행할 때 chmod +x Desktop/xrandr.sh오류가 없거나 변경이 없습니다.
Vishal Kumar Sahu

chmod +x Desktop/xrandr.sh해당 파일을 실행할 수있는 권한 만 제공합니다. 를 실행하여 실행해야합니다 Desktop/xrandr.sh.
Chirag Bhatia-chirag64

: o 좋아, 내가 무기 발사를 놓쳤다는 뜻이다.
Vishal Kumar Sahu

13

옵션 --size/을 -s사용할 수 있습니다 :

xrandr -s 1440x900

RandR버전 1.1 이상에서 작동해야합니다 .


2
이 작업을 수행하면 응답은 다음과 같습니다. size 1440x900 사용 가능한 모드에서 찾을 수 없음
nick

@nick 내가 추론 한 질문에 포함 된 결과에서 사용할 수 있어야합니다. 출력은 xrandr --verbose무엇입니까?
jimmij

xrandr : 출력 기본 화면에 대한 감마 크기를 가져 오지 못했습니다. 화면 0 : 최소 1024 x 768, 현재 1024 x 768, 최대 1024 x 768 기본 연결됨 1024x768 + 0 + 0 (0x138) 정상 (일반) 0mm x 0mm 식별자 : 0x137 타임 스탬프 : 5048 서브 픽셀 : 알 수없는 클론 : CRTC : 0 CRTC : 0 변환 : 1.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 필터 :
nick

1024x768 (0x138) 0.0MHz * 현재 h : 폭 1024 시작 0 끝 0 총 1024 기울이기 0 클럭 0.0KHz v : 높이 768 시작 0 끝 0 총 768 시계 0.0Hz
nick

따라서 사용 가능한 유일한 해상도는 1024x768입니다. 이 해상도를 설정 하시겠습니까?
jimmij

5

나는 같은 문제가 있었다. 디스플레이 설정에서 최대 해상도는 1280x720입니다. 그래서:

  1. xrandr 명령을 사용 하여이 모니터의 이름과 해상도 목록을 보았습니다.
  2. 스크립트를 실행했습니다 : xrandr --output {name of monitor} --mode {resolution}

예를 들면 다음과 같습니다.

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

3

이것은 #IntelMaker #Joule1024 * 600 해상도로 나열되어 있지만 대신 1280x720으로 픽업 된 SUNFOUNDER 7 INCH TFT COLOR MONITOR를 사용하여 기본 해상도에서 작동하도록하기 위해해야했습니다.

첫째, Linux 4.4.15-yocto-standard x86_64 gtf(1)를 사용하는 Intel Joule에는없는 것처럼 보이 므로 적절한 숫자를 계산하기 위해 다른 컴퓨터를 사용해야했습니다.

$ 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

$ 

그런 다음 적절한 명령으로 파일을 작성하십시오.

# 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또는 startxfce4,를 실행 ./1024x600.sh한 후로 다음이보고됩니다 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)
# 

대답에는 관련이없는 개인 사용자 및 호스트 이름이 포함되며, 명령과 출력을 명확하게 구분하지 않으므로 독자에게 혼란을 줄 수 있습니다. 명령이라는 것을 전달하는 표준 방법은 단순히 접두어를 붙이는 것입니다 $. Kali의 기본 WM은 XFCE가 아닌 그놈입니다 .startxfce4 명령이 XFCE 버전 4를 실행하는 사용자에게만 해당된다는 것을 분명히해야합니다. 다른 많은 사용자가 정확하게 실행 Linux 4.4.15-yocto-standard x86_64되지 않을 가능성이 높기 때문에 대신 gtf(또는 cvt)을 먼저 설치해야 할 수도 있습니다.
miyalys

1

나는 달렸다 :

xrandr --verbose

크기 태그 및 해당 픽셀 값 목록을 제공했습니다.

그때 나는 사용했다

xrandr -s 6

1920x1080 해상도를 선택


1

스크립트를 저장하고 시작하십시오 (bash script.sh 1024 720 60) 해당 스크립트로 사용자 정의 해상도를 설정할 수 있지만 로그 아웃하고 다시 로그인 할 때마다 스크립트를 다시 실행 해야하는 임시 해결책입니다. 터미널에서 직접 스크립트를 실행하려면 bash.bashrc 프로필에 코드를 작성하십시오.

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

0

내 문제는 노트북 해상도에 다음이 있습니다.

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

내 기본 / 기본 화면은 1366x768입니다.

그러나 노트북에서 1920x1080 (DesireResolution) 해상도를 테스트하고 싶습니다.

나는 모든 것을 시도했다.

내 노트북 ​​이이 스택 교환 질문 요청과 같이 해상도를 높이기 위해 xrandr의 addmode 또는 newmode 명령을 허용하지 않기 때문에 해결책을 찾을 수 없습니다.

그래서 나는 수학을했다!

1920/1366 = 1.4055636896
1080/768 = 1.40625

기본적으로 DesireResolution / MaxResolution

이 명령을 실행

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

원래 해상도를 복원해야하는 경우

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

원하는 해상도에 맞출 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.