Q. FreeBSD 3.x で追加された、VESA ビデオモードを使用した広いコンソール を使いたいのですが、どうすればいいですか? A. 以下の手順で作業してみてください。 1. ビデオカードが VESA に対応しているか確認する そのビデオカードのメーカのサイトへ行って、VESA に対応しているかを 確認しましょう。ただし、最近は 3D 関係ばかりが重要視されて、VESA に 関して情報を載せていないメーカもあります。 または、MS-DOS のプログラムですが、 <URL:http://www.vector.co.jp/soft/dos/hardware/se005934.html> にある vesadump を使って確認する方法もあります。 それらしく (VESAのバージョン等) が表示されれば、多分大丈夫でしょう が、ビデオカードの中には VESA を完全にはサポートしていない物もある ようなので、これが OK でも必ずしも使えるとは限りません。 2. カーネル再構築 まず、あなたのカーネル構成を確認する必要があります。LINT を見ればわ かるように、options VESA が VESA ビデオモードを直接サポートするオプ ションですが、3.x-RELEASE では同時に options "VM86" も必要なことが 分かります。4.0-RELEASE 以降では VM86 オプションは統合されたため不要 です。また、当然 device vga0 も必要ですが、これは GENERIC にも含まれ ますので、実際には options VESA (及び 3.x では options "VM86" の2行) を追加する必要があるでしょう。 以下は 3.4R の LINT の抜粋です。 # The video card driver. device vga0 at isa? port ? conflicts # To include support for VESA video modes options VESA # needs VM86 defined too!! # Allow processes to switch to vm86 mode, as well as enabling direct # user-mode access to the I/O port space. This option is necessary for # the doscmd emulator to run and the VESA modes in syscons to be available. # options "VM86" もうひとつの方法は、カーネルから options VESA を削る代わりに、KLD モジュールをロードする方法です。これには /boot/loader.conf に以下の 行を追加します。ただこの場合もカーネルの VM86 サポートは必須です。 vesa_load="YES" 詳細については vga(4) にも目を通しておきましょう。 3. デバイス認識の確認 boot -v で起動し、 >vga0: <Matrox model 0521 graphics accelerator> rev 0x01 int a irq 11 on pci1.0.0 >VESA: v2.0, 8192k memory, flags:0x1, mode table:0xf0236d36 (1000022) >VESA: Matrox Graphics Inc. >VESA: Matrox >VESA: MGA-G200 >VESA: 00 このようにビデオカードの情報が出力されているかを確認します。また、 % vidcontrol -i adapter % vidcontrol -i mode でも確認しておきましょう (特に mode は、使いたい画面モードがちゃん と表示されているかどうかを確認しましょう)。 >% vidcontrol -i adapter >fb0: > vga0, type:VESA VGA (5), flags:0x700ff > initial mode:24, current mode:24, BIOS mode:3 >% vidcontrol -i mode > mode# flags type size font window linear buffer >------------------------------------------------------------------------------ > 0 (0x000) 0x00000001 T 40x25 8x8 0xb8000 32k 32k 0x00000000 0k (中略) >209 (0x0d1) 0x00000009 T 132x60 8x8 0xb8000 32k 32k 0x00000000 0k 4. フォントのロード ここで例えば 132x60 文字モードを使おうとした場合、8x8 フォントを 必要とするので、 % vidcontrol -f 8x8 /usr/share/syscons/fonts/iso-8x8.fnt としてフォントをロードしておきます。もしくは、/etc/rc.conf に font8x8="/usr/share/syscons/fonts/iso-8x8.fnt" を加えてリブートすれば、FreeBSD 起動時に自動的にロードできます。 また、同じように 8x14 及び 8x16 フォントについても font8x14="/usr/share/syscons/fonts/iso-8x14.fnt" font8x16="/usr/share/syscons/fonts/iso-8x16.fnt" などとすることができます。 5. 画面モードの変更 % vidcontrol VESA_132x60 とすると、その virtual console の画面モードが変更されます。ALT+F? での他の virtual console のモードも変更したければ、/etc/rc.conf に 次のように設定すれば良いでしょう。 allscreens_flags="VESA_132x60" より詳細は vidcontrol(1) を参照してください。
グループ名: console