2005/08/17(水) [n年前の日記]
#3 [vine] mtrr 関係を設定
どうせなら速いほうがいいし。
◎ 利用してるビデオカード MGA g200関係をメモ :
/var/log/Xorg.0.log から。
lspci の出力結果。 _Xの描画を速くする というページを参考に。
(--) MGA(0): Linear framebuffer at 0xE3000000size は 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 が使えるかどうか確認。
/proc/mtrr が存在するかどうか確認。
設定を書き込む。ビデオカードによって値は違う。
/etc/lilo.conf に、
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 の最後のあたりに、
_X Window System の描画速度を改善する - MTRR の設定で、4倍程度にまで改善されます。
_X Window Systemの描画速度を改善する
上記ページを参考にして作業。どうせなら速いほうがいいし。
mtrr が使えるかどうか確認。
# cat /proc/cpuinfomtrr の文字が見えた。使えそう。
/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 があるようにも見える。引用。
試しに、0x343 = 835 を指定してみた。
ダメだった。やっぱり無いんだな。
_@IT:コンソールを高解像度で表示するには(LILO編) を参考に、vga=791 と vga=775 を指定。
# 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 に書き込んだだけ、という話になってしまった。
結局のところ、mtrr 関連を /etc/rc.d/rc.local に書き込んだだけ、という話になってしまった。
[ ツッコむ ]
以上です。