web-dev-qa-db-ja.com

Waylandがカスタム解像度を設定する方法

古いタイトル-「xrandrを使用して解像度を1280x1024に変更すると、X失敗したリクエストのエラー:BadValue(整数パラメーターが動作範囲外)」

新しいUbuntu 17.10をインストールし、解像度5:4のモニターを使用しています。設定の解像度は1024x768より高くありません。しかし、解像度1280x1024(5:4)が必要です。デフォルトのマザーボードグラフィックスカードを使用します。

# lspci|grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4 Series Chipset Integrated Graphics Controller (rev 03)

また、xrandrは以下を提供します。

$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
XWAYLAND0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      59.92*+

Xrandrを使用して1280x1024の解像度を追加しようとしました。そのため、最初にgtfを使用して解像度情報を作成しました。

$ gtf 1280 1024 60

  # 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz
  Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync

その後、解像度に追加されました:

xrandr --newmode "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync

その後、再びコマンドを実行しました:xrandr --addmode XWAYLAND0 1280x1024_60.00

その後、何も変わりませんでした。 xrandr --output XWAYLAND0 --mode 1280x1024_60.00 --rate 60を使用して変更しようとしたときに、エラーが発生しました。

$ xrandr --output XWAYLAND0 --mode 1280x1024  --rate 60
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Value in failed request:  0x0
  Serial number of failed request:  21
  Current serial number in output stream:  22

何が間違っていたのかわかりません。または、解像度を正しい解像度に変更する方法:1280x1024

14

いくつかの努力と混合した結果で、ウェイランドでカスタム解像度を設定しようとすることができます。

おそらく、グラフィックカードとモニターを含むバグレポートをwaylandに対して提出することから始めるべきです

バグの報告方法

https://help.ubuntu.com/community/ReportingBugs


カスタム解像度の追加

xrandrはWaylandでは動作しません!!

Xrandrを使用する場合と同様に、modlineを使用してカスタム解像度の追加を試みることができますが、いくつかの追加手順があります。

まず、これがセキュアブートで機能するかどうかわからないため、セキュアブートを無効にすることから始めることをお勧めします

https://ask.fedoraproject.org/en/question/99867/how-to-add-a-custom-resolution-to-weyland-Fedora-25/ および https ://wiki.archlinux.org/index.php/Kernel_mode_setting#Forcing_modes_and_EDID

まず、 edid-generator を複製する必要があります。次に、モードラインに渡します(xrandr --newmodeと同じ引数を使用します)

https://github.com/akatrevorjay/edid-generator から

インストール要件

Sudo apt install zsh edid-decode automake dos2unix

ダウンロードと抽出

wget https://github.com/akatrevorjay/edid-generator/archive/master.Zip
unzip master.Zip 
cd edid-generator-master

バイナリはmodeline2edidとして〜/ edid-generator-masterにあります

Askfedoraリンクの例を使用して、modlineでmodeline2edidを実行します。

./modeline2edid - <<< 'Modeline "3840x2160" 533.6 3840 3982 4027 4064 2160 2170 2180 2190 +hsync +vsync'
Searching for runaway unicorns in '/dev/stdin'
-- Found naughty Unicorn: Modeline "3840x2160" 533.6 3840 3982 4027 4064 2160 2170 2180 2190 +hsync +vsync
Wrote 3840x2160.S

そのコマンドを目的の解像度に変更します。

詳細については カスタム解像度の設定方法? を参照してください(必要な場合)

次に、makeでedidバイナリを生成します

make #output not posted

この場合、新しい.bin 3840x2160.binが作成されます。

さて、 The Arch wiki からカスタムの解決を有効にしてください

Sudo mkdir /usr/lib/firmware/edid
Sudo cp 3840x2160.bin /usr/lib/firmware/edid

3840x2160.binをカスタム解像度に変更します。

注:既にいくつかのカスタム.binが含まれています。ls *.binでそれらを確認できます。makeなしで使用できるかどうかはわかりません。

再起動してテストする

再起動したら、grubのカーネル行を編集して追加します

drm_kms_helper.edid_firmware=edid/3840x2160.bin

カーネルブートパラメーターの追加方法 および https://wiki.ubuntu.com/Kernel/KernelBootParameters を参照してください。

linuxで始まる行に移動し、drm_kms_helper.edid_firmware=edid/3840x2160.binの後の行の最後にro quiet splashを追加します

すべてが機能すると仮定して、永続的にする

Sudo nano /etc/default/grub

カスタムレゾルインを追加する

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash drm_kms_helper.edid_firmware=edid/3840x2160.bin"

編集を保存 Ctrl+x

gRUBを更新する

Sudo update-grub

再起動してカスタム解像度をお楽しみください

10
Panther