真 もわ爛漫 このページをアンテナに追加 RSSフィード Twitter

2007-10-21

ビッグバーガーパソコンのG33がXで正しく画像サイズを認識してくれない件 (解決編)

前回までのあらすじ

ビッグバーガーパソコンubuntuをいれたら1240x1024までしか表示してくれませんでした。せっかく1680x1050まで表示できるRDT221WMというディスプレイを用意したのになんで一時代前の画像設定で使ってあげなきゃいけないんだよ、と。俺は家でも快適に仕事したk…ごほごほ

で、ビデオカードを買おうかなぁと考えていたところ、以下のページを見て切れそうになりました。

http://www.sofmap.com/product_detail/exec/_/sku=10801257

外部出力時最大解像度: 1920×1200

はい?えーとだったらその下の1680x1050くらい表示できますよねぇ…。というかWindows XPは出来てるし

「1240x1024の謎」問題が浮上したのであります。

で、Xの設定なんか数年前に自宅サーバ作ったときにお茶濁す程度に扱ったことしかない私としては大変こまりまして、xorgを見様見まねで変えてもだめだったりして、「"i810"と"i910"のドライバが"intel"に統合されたんですよ」とか聞かされても癒しにしかならなくて、そう日記に書いたところ、id:supiさんよりコメントいただきました。

2007/10/14 の出来事 - 真 もわ爛漫

はじめまして。いつも楽しく読ませていただいてます。

はじめまして。…学科の関係者さんでしょうか。

でまぁ、915resolutionとupdate-pciidsという素敵な武器をふたつ置いていってくれたのです。あぅあぅ、ありがとうございます。

答え

現状のFeistyというubuntuではビッグバーガーパソコンが使っているG33というチップセット(?)のidが登録されていない(0.5.2だからです。0.5.3以降は対応すると思われます)ので、てきとうにパッチを拾ってきて手で必要なid登録をします。その上で改造 915resolution でBIOSが送っている「使える解像度」リストを閲覧します

> sudo 915resolution -l
Intel 800/900 Series VBIOS Hack : version 0.5.3

Chipset: G33
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 27

Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 800x600, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1920x1440, 8 bits/pixel
Mode 41 : 640x480, 16 bits/pixel
Mode 43 : 800x600, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1920x1440, 16 bits/pixel
Mode 50 : 640x480, 32 bits/pixel
Mode 52 : 800x600, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1920x1440, 32 bits/pixel

1680x1050という言葉がどこにも入ってません。死ね

そこで、BIOSからくる情報を無理矢理途中で書き換える915resolutionというツールが活躍するらしいです。何をどうやったら書き換えるだけで使えるようになるのかは知りません。

とりあえずテストのためであれば、上記の中から入らなそうなidを引っ張ってきて、そのidの解像度情報を以下のように書き換えてあげます。

> sudo 915resolution 41 1680 1050 16

ここでなんで41番の16bits/pixelを選んだのかは自分でもよくわかりませんが、たぶんxorg.confにDepth 32がないのでどーせ16が使われるんでしょ、という勝手な思い込みです。

Anyway,

この変更によって「一時的に(ブート中は)」解像度設定が書き換わります。ついでにxorg.confの方にも1680x1050のエントリを追加してあげます

# (画像に関係しそうなところだけです)

Section "Device"
        Identifier      "Generic Video Card"
        Driver          "vesa"
        BusID           "PCI:0:2:0"
EndSection

Section "Monitor"
        Identifier      "RDT221WM"
        Option          "DPMS"
EndSection

Section "Screen"
        Identifier      "Default Screen"
        Device          "Generic Video Card"
        Monitor         "RDT221WM"
        DefaultDepth    24
        SubSection "Display"
                Depth           1
                Modes           "1920x1440" "1600x1200" "1280x1024" "1280x960" "
1280x800" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           4
                Modes           "1920x1440" "1600x1200" "1280x1024" "1280x960" "
1280x800" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           8
                Modes           "1680x1050" "1280x1024" "1280x960" "1280x800" "1
152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "1680x1050" "1280x1024" "1280x960" "1280x800" "1
152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1680x1050" "1280x1024" "1280x960" "1280x800" "1
152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1680x1050" "1280x1024" "1280x960" "1280x800" "1
152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
EndSection

#変なところで切れてるのはターミナルからのコピペだからです。

ここで、PCではなくXだけリブートします。Ctrl-Alt-Backspace

これでうちの場合は、これで1680x1050でログイン画面が登場し、ログインした後に1240x1024に戻りました。そこで以下のコマンド

> gnome-display-properties

#メニューから「画面の解像度」というものを選んでも良いみたいです

1680x1050が選べるようになりました。

----

このままでは915resolutionの設定は「PCを」(Xをではなく)リブートしたときに元に戻ってしまうので、上記と同様の方法でうまく行ったと思った場合には、915resolutionの設定ファイル(/etc/default/915resolution)に然るべく設定を書いてあげます。

#
# 915resolution default
#
# find free modes by  /usr/sbin/915resolution -l
# and set it to MODE or set to 'MODE=auto'
#
# With 'auto' detection, the panel-size will be fetched from the VBE
# BIOS if possible and the highest-numbered mode in each bit-depth
# will be overwritten with the detected panel-size.
MODE=52
#MODE=auto
#
# and set resolutions for the mode.
# e.g. use XRESO=1024 and YRESO=768
XRESO=1680
YRESO=1050
#
# We can also set the pixel mode.
# e.g. use BIT=32
# Please note that this is optional,
# you can also leave this value blank.
BIT=

PCをリブートしてうまくいけば嬉しくなれます

> sudo 915resolution -l
Intel 800/900 Series VBIOS Hack : version 0.5.3

Chipset: G33
BIOS: TYPE 1
Mode Table Offset: $C0000 + $269
Mode Table Entries: 27

Mode 30 : 640x480, 8 bits/pixel
Mode 32 : 1680x1050, 8 bits/pixel
Mode 34 : 1024x768, 8 bits/pixel
Mode 38 : 1280x1024, 8 bits/pixel
Mode 3a : 1600x1200, 8 bits/pixel
Mode 3c : 1920x1440, 8 bits/pixel
Mode 41 : 640x480, 16 bits/pixel
Mode 43 : 1680x1050, 16 bits/pixel
Mode 45 : 1024x768, 16 bits/pixel
Mode 49 : 1280x1024, 16 bits/pixel
Mode 4b : 1600x1200, 16 bits/pixel
Mode 4d : 1920x1440, 16 bits/pixel
Mode 50 : 640x480, 32 bits/pixel
Mode 52 : 1680x1050, 32 bits/pixel
Mode 54 : 1024x768, 32 bits/pixel
Mode 58 : 1280x1024, 32 bits/pixel
Mode 5a : 1600x1200, 32 bits/pixel
Mode 5c : 1920x1440, 32 bits/pixel

おまけ

悶え苦しんでいた歴史を楽しみたい方は以下のリンクでもどうぞ

もうやだ。Xの設定なんかしたくないのになんでそのために週末の時間かけなきゃいけないんだよ…

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。