「表示設定」で解像度が使用できない場合にxrandrを使用してカスタム解像度を設定する方法


39

私はディスプレイの下にオプションがないため、画面解像度を変更しようとしている新しい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

xrandr -qはマニュアルにリストされていません。
-neverMind9

回答:


48

新しいカスタム解像度を追加して適用するために必要な手順は次のとおりです。次の手順では、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
最後のステップに失敗しました...
ヴィシャールクマールサフ

どのようなエラーが発生しましたか?答えの最後にリンクした自動スクリプトを試してください。
チラグバティア-chirag64

ファイルを実行すると、chmod +x Desktop/xrandr.shエラーも変更もありません。
ヴィシャールクマールサフ

chmod +x Desktop/xrandr.shそのファイルを実行する権限のみを付与します。を実行して実行する必要がありますDesktop/xrandr.sh
チラグバティア-chirag64

:oわかりました、武器を発射するのを逃しました。
ヴィシャルクマールサフ

13

オプション--size/ -sを使用できます。

xrandr -s 1440x900

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


2
これを行うと、応答は次のとおりです。サイズ1440x900が使用可能なモードで見つかりません
ニック

@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フィルター:
ニック

1024x768(0x138)0.0MHz *現在のh:幅1024開始0終了0合計1024スキュー0クロック0.0KHz v:高さ768開始0終了0合計768クロック0.0Hz-
ニック

したがって、利用可能な解像度は1024x768のみです。この解像度は設定したいものですか?
-jimmij

5

同じ問題がありました。ディスプレイ設定では、最大解像度は1280x720でした。そう:

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

例えば:

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

3

これは#IntelMaker #Joule、SUNFOUNDER 7 INCH TFT COLOR MONITORでネイティブ解像度で動作させるために行う必要がありました。SUNFOUNDER7インチTFTカラーモニターは、解像度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)
# 

回答には、無関係な個人ユーザーとホスト名が含まれ、コマンドと出力を明確に区別していません。これらはすべて読者を混乱させる可能性があります。何かがコマンドであることを伝える標準的な方法は、単にそれに接頭辞を付けることでしょう$。カーリーのデフォルトWMがstartxfce4コマンドはXFCEバージョン4を実行しているユーザーのみであることも、多分それは明確になされるべきであるGNOME、ないXFCE、ある他の多くのユーザーが正確に実行されますことは、可能性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 profile.toのコードを使用します。

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

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

私のノートブックは、この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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.