Ubuntu 16.10で画面解像度の設定

ubuntu-20170129.png
UbuntuをVMwarePlayer経由で起動させているが、正しい解像度で起動しない。

状況


Ubuntuを起動させているマシンのディスプレイは”1920x1080”が正しい解像度だ。
しかし、Ubuntuの「設定」→「ディスプレイ」で設定をしようとしても正しい解像度である"1920x1080"が表示されない。

設定


まずは自分のディスプレイを調べてみる。
cvtコマンドで調べると、こんな結果だった。
$ cvt 1920 1080
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

このModelineの後に書かれているのがディスプレイの設定に使用する値だ。

あと、ディスプレイの名前も調べる
$ xrandr
Screen 0: minimum 1 x 1, current 800 x 600, maximum 16384 x 16384
Virtual1 connected primary 800x600+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
800x600 60.00*+ 60.32
2560x1600 59.99
1920x1440 60.00
  この後もディスプレイの解像度がリスト化されているが、"1920x1080"はない

Virtual1 connected primary って書いてあるのでこのディスプレイは"Virtual1"となります。
VmwarePlayerだからVirtual1なのかな?

ということでまずは定義を追加する
xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

newmodeで定義を追加。
--newmodeの引数はcvtコマンドのModelineの後ろの文字をそのまま貼り付ける。

次にディスプレイに定義を関連付けます。
$ xrandr --addmode Virtual1 1920x1080_60.00

これでGUIの設定画面からも1920x1080の解像度がリストに出るようになった。
addmodeの後のVirtual1はxrandrコマンドで出力された名前を使ってます。

ログイン時に変更


再起動すると戻ってしまうので、再起度なんかをしてもいいように.profileに設定をする。
.profileはログインするユーザのホームディレクトリにあります。
$ vi .profile
いろいろと書かれているのので以下の3行を最後に追加する。
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode Virtual1 1920x1080_60.00
xrandr --output Virtual1 --mode 1920x1080_60.00

最後のxrandr --output Virtual1 --mode 1920x1080_60.00 はコマンドで解像度を変更してます。

これで再起動しても正しい解像度でログインができる!!

コメント

非公開コメント