web-dev-qa-db-ja.com

「ディスプレイ設定」で解像度が利用できない場合にxrandrを使用してカスタム解像度を設定する方法

ディスプレイの下にオプションがないため、私は新しいLinuxユーザーで画面解像度を変更しようとしています。オンラインガイドに従って、フルークによる新しい解決策の追加に成功しました。 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
46
nick

新しいカスタム解像度を追加して適用するために必要な手順は次のとおりです。次の手順は、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/785341

オプション --size/-s に使える:

xrandr -s 1440x900

RandRバージョン1.1以降で動作するはずです。

15
jimmij

私も同じ問題を抱えていました。ディスプレイ設定では、最大解像度は1280x720でした。そう:

  1. xrandrコマンドを使用して、このモニターの名前と解像度リストを確認しました。
  2. スクリプトを実行しました:xrandr --output {name of monitor} --mode {resolution}

例えば:

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

これは _#IntelMaker_ _#Joule_ をSUNFOUNDER 7 INCH TFT COLOR MONITORのネイティブ解像度で機能させるために私がしなければならなかったことです。 1024 * 600の解像度ですが、代わりに1280x720として選択されました。

まず、Linux 4.4.15-yocto-standard x86_64を搭載したIntel Jouleには gtf(1) がないようです。そのため、適切な数値を計算するには別のマシンを使用する必要がありました。

_$ 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)
# 
_
3
cnst

私が走った:

xrandr --verbose

サイズタグと対応するピクセル値のリストが表示されました

それから私は使用しました

xrandr -s 6

1920x1080解像度を選択するには

2
Gavin Guan

スクリプトを保存して起動します(bash script.sh 1024 720 60)。そのスクリプトでカスタム解像度を設定できますが、ログアウトして再度ログインするたびにスクリプトを再度実行する必要があるため、これは一時的な解決策です。 bash.bashrcプロファイルに2行のコードを追加します。ターミナルから直接スクリプトを実行します。

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

私の問題は、ノートブックの解像度がこれを持っていることです:

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)をテストしたいと思います。

私はすべてを試しました。

このstackexchange質問リクエストのように、私のノートブックは解像度を上げるために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

必要な解像度に適応できます。

1
macm