真 もわ爛漫

しゃーら、しゃーらしゃーら

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

915resolution_0.5.2-10ubuntu1ではなんかうまく動いてくれないので915resolution_0.5.3-0ubuntu1のバイナリに手でG33の項目を追加したです。

http://packages.ubuntu.com/dapper/x11/915resolution

tar.gz とdiff を取ってきて

> less 01-new-chipsets.dpatch
...
-    CT_946GZ, CT_G965, CT_Q965
+    CT_946GZ, CT_G965, CT_Q965, CT_965GM, CT_G33, CT_Q33, CT_Q35
...
-    "946GZ",   "G965", "Q965"
+    "946GZ",   "G965", "Q965", "965GM", "G33", "Q33", "Q35"
...
+    case 0x29d08086:
+        type = CT_Q33;
+        break;
...
     case CT_946GZ:
     case CT_G965:
     case CT_Q965:
+    case CT_965GM:
+    case CT_G33:
+    case CT_Q35:
+    case CT_Q33:
         outl(0x80000090, 0xcf8);
         map->b1 = inb(0xcfd);
         map->b2 = inb(0xcfe);
...
         else if (!strcmp(argv[index], "Q965")) {
             *forced_chipset = CT_Q965;
         }
+        else if (!strcmp(argv[index], "965GM")) {
+            *forced_chipset = CT_965GM;
+        }
+        else if (!strcmp(argv[index], "G33")) {
+            *forced_chipset = CT_G33;
+        }

ここら辺見て「よーするにid登録されてないだけかしら」と思い手パッチ当ててバイナリmakeして/usr/sbin/915resolutionを入れ換えました

> 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はないんですが、1600x1200くらいは動いて欲しい感じのBIOSの反応ですねぇ…

でもgnome-display-propertiesさんによると選べる解像度は1280x1024が最大値で抑え付けられてます。

いまのxorg.confの設定はこちら

Section "Screen"
        Identifier      "Default Screen"
        Device          "Generic Video Card"
#       Device          "test"
        Monitor         "RDT221WM"
#       DefaultDepth    24
        DefaultDepth    16
        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           "1920x1440" "1600x1200" "1280x1024" "1280x960" "
1280x800" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           15
                Modes           "1920x1440" "1600x1200" "1280x1024" "1280x960" "
1280x800" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           16
                Modes           "1920x1440" "1600x1200" "1280x1024" "1280x960" "
1280x800" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
        SubSection "Display"
                Depth           24
                Modes           "1920x1440" "1600x1200" "1280x1024" "1280x960" "
1280x800" "1152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
EndSection

嫌な気分になったので/var/log/Xorg.0.logも見てみました。んで

(II) VESA(0): VESA VBE DDC supported
(II) VESA(0): VESA VBE DDC Level 2
(II) VESA(0): VESA VBE DDC transfer in appr. 1 sec.
(II) VESA(0): VESA VBE DDC read successfully
(II) VESA(0): Manufacturer: MEL  Model: 4762  Serial#: 16843009
(II) VESA(0): Year: 2007  Week: 22
(II) VESA(0): EDID Version: 1.3
(II) VESA(0): Analog Display Input,  Input Voltage Level: 0.700/0.300 V
(II) VESA(0): Sync:  Separate
(II) VESA(0): Max H-Image Size [cm]: horiz.: 47  vert.: 30
(II) VESA(0): Gamma: 2.20
(II) VESA(0): DPMS capabilities: StandBy Suspend Off; RGB/Color Display
(II) VESA(0): First detailed timing is preferred mode
(II) VESA(0): redX: 0.635 redY: 0.342   greenX: 0.292 greenY: 0.611
(II) VESA(0): blueX: 0.147 blueY: 0.070   whiteX: 0.313 whiteY: 0.329
(II) VESA(0): Supported VESA Video Modes:
(II) VESA(0): 720x400@70Hz
(II) VESA(0): 640x480@60Hz
(II) VESA(0): 640x480@67Hz
(II) VESA(0): 640x480@72Hz
(II) VESA(0): 640x480@75Hz
(II) VESA(0): 800x600@56Hz
(II) VESA(0): 800x600@60Hz
(II) VESA(0): 800x600@72Hz
(II) VESA(0): 800x600@75Hz
(II) VESA(0): 832x624@75Hz
(II) VESA(0): 1024x768@60Hz
(II) VESA(0): 1024x768@70Hz
(II) VESA(0): 1024x768@75Hz
(II) VESA(0): 1280x1024@75Hz
(II) VESA(0): 1152x870@75Hz
(II) VESA(0): Manufacturer's mask: 0
(II) VESA(0): Supported Future Video Modes:
(II) VESA(0): #0: hsize: 1152  vsize 864  refresh: 75  vid: 20337
(II) VESA(0): #1: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
(II) VESA(0): #2: hsize: 1280  vsize 960  refresh: 60  vid: 16513
(II) VESA(0): #3: hsize: 1280  vsize 960  refresh: 75  vid: 20353
(II) VESA(0): #4: hsize: 1280  vsize 720  refresh: 75  vid: 53121
(II) VESA(0): #5: hsize: 1440  vsize 900  refresh: 60  vid: 149
(II) VESA(0): #6: hsize: 1680  vsize 1050  refresh: 60  vid: 179
(II) VESA(0): Supported additional Video Mode:
(II) VESA(0): clock: 146.2 MHz   Image Size:  473 x 296 mm
(II) VESA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_b
order: 0
(II) VESA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_b
order: 0
(II) VESA(0): Ranges: V min: 56  V max: 76 Hz, H min: 31  H max: 82 kHz, PixCloc
k max 160 MHz

あるぇー(・ε・)

(II) VESA(0): #6: hsize: 1680  vsize 1050  refresh: 60  vid: 179

あるぇー(・ε・)

"Supported VESA Video Modes"のリストに1680x1050とかそこらへんが入ってない理由がわからないのです…

もうなげやりにxorg.conf

Section "Screen"
        Identifier      "Default Screen"
        Device          "Generic Video Card"
#       Device          "test"
        Monitor         "RDT221WM"
#       DefaultDepth    24
        DefaultDepth    16
        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           "1600x1050" "1280x1024" "1280x960" "1280x800" "1
152x864" "1024x768" "832x624" "800x600" "720x400" "640x480"
        EndSubSection
EndSection

あーだめだ。再度Xorg.0.logをよーく見直してみるのです

(II) VESA(0): RDT221WM: Using hsync range of 31.00-82.00 kHz
(II) VESA(0): RDT221WM: Using vrefresh range of 56.00-76.00 Hz
(II) VESA(0): Not using mode "1680x1050" (no mode of this name)
(II) VESA(0): Not using mode "1280x960" (no mode of this name)
(II) VESA(0): Not using mode "1280x800" (no mode of this name)
(II) VESA(0): Not using mode "1152x864" (no mode of this name)
(II) VESA(0): Not using mode "832x624" (no mode of this name)
(II) VESA(0): Not using mode "720x400" (no mode of this name)
(--) VESA(0): Virtual size is 1280x1024 (pitch 1280)
(**) VESA(0): *Built-in mode "1280x1024"
(**) VESA(0): *Built-in mode "1024x768"
(**) VESA(0): *Built-in mode "800x600"
(**) VESA(0): *Built-in mode "640x480"
(**) VESA(0): Display dimensions: (470, 300) mm
(**) VESA(0): DPI set to (69, 86)
(II) VESA(0): Attempting to use 75Hz refresh for mode "1280x1024" (11a)
(II) VESA(0): Attempting to use 75Hz refresh for mode "1024x768" (117)
(II) VESA(0): Attempting to use 72Hz refresh for mode "800x600" (114)
(II) VESA(0): Attempting to use 73Hz refresh for mode "640x480" (111)
(**) VESA(0): Using "Shadow Framebuffer"

RDT221WMは明らかにうちのディスプレイの名前ですが…えーと、何が言いたいのかよくわからない…

      • -

あーなるほど、頭の悪い私にもやっとわかったです。

  • BIOSが1680x1050を使えることを教えてくれない
  • xorgに"1680x1050"に相当する設定が書いてない
  • ディスプレイは1680x1050を全力サポートしてくれる

それだけですね。1600x1200とかそこらへんから試してみようとか思った私がばかでした

> sudo 915resolution 41 1680 1050 16 
> 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 : 1680x1050, 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 : 1680x1050, 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 : 1680x1050, 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

xorg.confの現在の設定はこちら

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

はいはい、Xをリブートしてもなんとかなりました。では /etc/default/915resolution の設定を書き換えてみてPCを再起動までやってみます。

Kernel Panic

はぁ?

      • -

再度リブートしたら直りましたです。死にやがれ

解決したので別の章で簡潔にまとめますー。ありがとうございました。