mieki256's diary



2005/08/17(水) [n年前の日記]

#3 [vine] mtrr 関係を設定

どうせなら速いほうがいいし。

利用してるビデオカード MGA g200関係をメモ :

/var/log/Xorg.0.log から。
(--) MGA(0): Linear framebuffer at 0xE3000000
size は 0x800000 かしら。

lspci の出力結果。 _Xの描画を速くする というページを参考に。
# /sbin/lspci -v
00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 02)
        Flags: bus master, medium devsel, latency 64
        Memory at e4000000 (32-bit, prefetchable) [size=64M]
        Capabilities: [a0] AGP version 1.0

00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 02) (prog-if 00 [Normal decode])
        Flags: bus master, 66Mhz, medium devsel, latency 64
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
        Memory behind bridge: e1800000-e2dfffff
        Prefetchable memory behind bridge: e2f00000-e3ffffff

00:04.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
        Flags: bus master, medium devsel, latency 0

00:04.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master])
        Flags: bus master, medium devsel, latency 32
        I/O ports at d800 [size=16]

00:04.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
        Flags: bus master, medium devsel, latency 32, IRQ 3
        I/O ports at d400 [size=32]

00:04.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
        Flags: medium devsel, IRQ 9

00:06.0 SCSI storage controller: Adaptec AHA-2940U2/U2W / 7890/7891
        Subsystem: Adaptec 2940U2W SCSI Controller
        Flags: bus master, medium devsel, latency 32, IRQ 3
        BIST result: 00
        I/O ports at d000 [disabled] [size=256]
        Memory at e1000000 (64-bit, non-prefetchable) [size=4K]
        Expansion ROM at <unassigned> [disabled] [size=128K]
        Capabilities: [dc] Power Management version 1

00:0a.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 02)
        Subsystem: Melco Inc: Unknown device 030e
        Flags: bus master, medium devsel, latency 32, IRQ 4
        I/O ports at b800 [size=256]
        Memory at e0800000 (32-bit, non-prefetchable) [size=4K]
        Expansion ROM at <unassigned> [disabled] [size=128K]
        Capabilities: [40] Power Management version 7

00:0b.0 Multimedia audio controller: Ensoniq ES1370 [AudioPCI] (rev 01)
        Subsystem: Unknown device 4942:4c4c
        Flags: bus master, slow devsel, latency 32, IRQ 10
        I/O ports at b400 [size=64]

01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 01) (prog-if 00 [VGA])
        Subsystem: Matrox Graphics, Inc. Millennium G200 AGP
        Flags: bus master, medium devsel, latency 64, IRQ 11
        Memory at e3000000 (32-bit, prefetchable) [size=16M]
        Memory at e2000000 (32-bit, non-prefetchable) [size=16K]
        Memory at e1800000 (32-bit, non-prefetchable) [size=8M]
        Expansion ROM at e2ff0000 [disabled] [size=64K]
        Capabilities: [dc] Power Management version 1
        Capabilities: [f0] AGP version 1.0

MTRRとやらを有効にしてみたつもり :

_ITmedia エンタープライズ : Linux Tips「MTRR機能を使ってXの描画を高速化させたい」
_X Window System の描画速度を改善する - MTRR の設定で、4倍程度にまで改善されます。
_X Window Systemの描画速度を改善する

上記ページを参考にして作業。どうせなら速いほうがいいし。

mtrr が使えるかどうか確認。
# cat /proc/cpuinfo
mtrr の文字が見えた。使えそう。

/proc/mtrr が存在するかどうか確認。
# ls /proc/mtrr

設定を書き込む。ビデオカードによって値は違う。
# echo "base=0xe3000000 size=0x800000 type=write-combining" > /proc/mtrr

/etc/lilo.conf に、
append="acpi=off resume2=swap:/dev/hda2 panic=10 video=vesa:ypan"
vga=794
こんな感じの記述を追加して、
# /sbin/lilo
でMBRに書き込み。

append="video:xxxx" は、バックスクロール用の設定らしい。append="video=vesa:ypan" と append="video=vesa:ywrap" の2つがあるのだとか。ypan は遅いけど互換性が高く、ywrap は速いけど動作が怪しい。らしい。

vga=794 は、1280x1024 16bit の指定。個人的に、1280x1024 は縦横比が他の画面モードと違うから好きじゃないんだけど。1400x1050 が指定できればなぁ…。

mtrr云々を、毎回起動時に設定するようにした。/etc/rc.d/rc.local の最後のあたりに、
if [ -f /proc/mtrr ]; then
    echo "base=0xe3000000 size=0x800000 type=write-combining" >| /proc/mtrr
fi
を追加。

_ちょっと気になるlilo.conf :

なんだか1400x1050 があるようにも見える。引用。
    # VESA mode crossreference (in hex):
    # Bits  640x480 800x600 1024x768 1280x1024 1600x1200 1400x1050
    # 8     101     103     105         107     11c
    # 15    110     113     116         119     11d
    # 16    111     114     117         11a     11e       142
    # 24    112     115     118         11b     11f       143
vga = 0x343
    # vga = normal, or 0x200+VESA mode number
    # Make sure you compiled VESA framebuffer into the kernel!
    # Kernel stanzas can have 'append = "video=vesa:ypan"' but
    # this appears to be broken at the moment.
上の表に、0x200 を加算したものを指定しろ、と書いてある?

試しに、0x343 = 835 を指定してみた。

ダメだった。やっぱり無いんだな。

_@IT:コンソールを高解像度で表示するには(LILO編) を参考に、vga=791 と vga=775 を指定。
771     800x600     256色
773     1024x768    256色
775     1280x1024   256色

788     800x600     6万5000色
791     1024x768    6万5000色
794     1280x1024   6万5000色

789     800x600     1600万色
792     1024x768    1600万色
795     1280x1024   1600万色

"video=vesa:ypan" を設定すると逆スクロールが異様に遅くなるなぁ :

該当部分だけ、/etc/lilo.conf から削除してみた。…スクロールが速くなった。

結局のところ、mtrr 関連を /etc/rc.d/rc.local に書き込んだだけ、という話になってしまった。

以上です。

過去ログ表示

Prev - 2005/08 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project