VIDCONTROL(1)

名称
vidcontrol - システムコンソールの制御と設定のユーティリティ

書式
vidcontrol [-CdLPpx] [-b color] [-c appearance] [ -f [size] file] [-g geometry] [-h size] [-i adapter | mode] [-l screen_map] [-M char] [-m on | off] [-r foreground background] [-s number] [-t N | off] [mode] [foreground [background]] [show]

解説
vidcontrol コマンドを用いて syscons(4) コンソールドライバの様々なオプション、例えば、 画面モード、色、カーソル形状、画面出力マップ、 フォント、スクリーンセーバタイムアウトを設定できます。

以下のコマンドラインオプションをサポートしています:

mode
    新しいビデオモードを選択します。 現在サポートしているモードは次の通りです: 80x25, 80x30, 80x43, 80x50, 80x60, 132x25, 132x30, 132x43, 132x50, 132x60, VGA_40x25, VGA_80x25, VGA_80x50, VGA_90x25, VGA_90x30, VGA_90x43, VGA_90x50, VGA_90x60, EGA_80x25, EGA_80x43, VESA_132x25, VESA_132x43, VESA_132x50, VESA_132x60 。 ラスタテキストモード VGA_800x600 も選択できます。 後述の ビデオモードサポート を参照してください。

foreground [background]
    テキストを表示する際の色を変更します。 前景色 (例: “vidcontrol white”) 、あるいは 前景色および背景色 (例: “vidcontrol yellow blue”) を指定することにより変更できます。 後述の show コマンドを使用して、使用可能な色を見られます。

show
    指定したプラットフォームでサポートされている色を表示します。

-b color
    ボーダ色を color に設定します。 本オプションをビデオドライバが常にサポートしているのではないかもしれません。

-C  ヒストリバッファをクリアします。

-c normal | blink | destructive
    カーソルの外観を変更します。 カーソルは、反転ブロック (normal) あるいは古いハードウェアカーソル様のもの (destructive) のいずれかです。 前者は、オプションで blink にできます。 後者は実際にはシミュレートしています。

-d  現在の画面出力マップを表示します。

    -f [size] file サイズ size 用のフォントをファイル file から読み込みます。 (現在のところ size には 8x8, 8x14, 8x16 のみが指定できます)。 フォントファイルは uuencode された形式でも 生のバイナリフォーマットでも構いません。 メニューによる vidfont(1) コマンドを使用して、好きなフォントをロード可能です。

    size は省略可能です。 この場合、 vidcontrol はフォントファイルの大きさから、推測します。

    MDA や CGA のような古いビデオカードは ソフトウェアフォントをサポートしないことに注意してください。 後述の ビデオモードサポート と 使用例 と syscons(4) のマニュアルページも参照してください。

-g geometry
    テキストモードの geometry を、選択可能なジオメトリに設定します。 現在、 VESA_800x600 等のラスタモードのみが、本オプションをサポートします。 後述の、 ビデオモードサポート と 使用例を 参照してください。

-h size
    ヒストリ (スクロールバック) バッファを size 行に設定します。

-i adapter
    現在のビデオアダプタに関する情報を表示します。

-i mode
    現在のビデオハードウェアにて使用可能なビデオモードを表示します。

-l screen_map
    画面出力マップをファイル screen_map から読み込んで設定します。 syscons(4) も参照してください。

-L  出力画面マップをデフォルトに設定します。

-M char
    マウスポインタを描く基本となる文字を char にします。

-m on | off
    マウスポインタを on または off します。 テキストモードでのカット & ペースト機能を利用するために moused(8) デーモンと共に使用します。

-p  標準入力として参照される端末デバイスに対応する、 ビデオバッファの現在の内容をキャプチャします。 vidcontrol は、ビデオバッファの内容を標準出力に対し、 生のバイナリフォーマットで出力します。 このフォーマットに関する詳細は、後述の ビデオバッファダンプのフォーマット を参照してください。

-P  -p と同じですが、ビデオバッファの内容をプレインテキストでダンプし、 印字不可の文字とテキスト属性情報を無視します。

-r foreground background
    反転表示モードで用いる色を前景色 foreground および背景色 background に変更します。

-s number
    現在の vty を number に設定します。

-t N | off
    スクリーンセーバのタイムアウト値を N 秒に設定、あるいはスクリーンセーバを無効 ( off )にします。

-x  出力に 16 進数を用います。

  ビデオモードサポート
前記の全モードを ビデオカードがサポートしているとは限らないことに注意してください。 -i mode オプションを使用することにより、 ビデオカードがサポートしているモードを調べることが可能です。

VESA ビデオモードもしくは 132 桁モードを使用する場合には、 VESA BIOS サポートをカーネルにリンクするか KLD にてロードする必要があることにも 注意してください ( vga(4) を参照してください)。

VGA 90 桁モードを使用する場合には、カーネルを VGA_WIDTH90 オプション付きでコンパイルする必要があります ( vga(4) を参照してください)。

25 または 30 行モード以外のビデオモードは、 特定の大きさのフォントが必要となるかもしれません。 前述の -f オプションを使用し、フォントファイルをカーネルにロードしてください。 必要な大きさのフォントがカーネルにロードされていないと、 ユーザが新規ビデオモードを設定しようとした場合に vidcontrol は失敗します。

モード | フォントの大きさ 25 行モード | 8x16 (VGA), 8x14 (EGA) 30 行モード | 8x16 43 行モード | 8x8 50 行モード | 8x8 60 行モード | 8x8

同じフォントの 3 つの大きさすべて (8x8, 8x14, 8x16) を 常にロードすることが望ましいです。

/etc/rc.conf または /etc/rc.conf.local 中の変数を希望のフォントファイルに設定できます。 これにより、システム起動時にこれらのフォントが自動的にロードされます。 後述を参照してください。

ラスタテキストモード VESA_800x600 を使用したい場合、 SC_PIXEL_MODE オプション付きでカーネルを再コンパイルする必要があります。 このカーネルオプションについての詳細は、 syscons(4) を参照してください。

  ビデオバッファダンプのフォーマット
vidcontrol ユーティリティは、 syscons(4) CONS_SCRSHOT ioctl(2) を使用し、ビデオバッファの現在の内容をキャプチャします。 vidcontrol は、バージョンと追加情報を標準出力に書き出し、 その後に端末デバイスの内容を続けて書き出します。

PC ビデオメモリは、典型的には 2 バイトタプルの並びであり、 1 タプルが各文字位置に対応します。 各タプルでは、最初のバイトが文字コードであり、 2 番目のバイトが文字の色属性です。

色属性バイトは、更に、どの前景色が有効かを指定する下位ニブルと、 どの背景色が有効かを指定する上位ニブルとに分解されます。

0   黒
1   青
2   緑
3   シアン
4   赤
5   マゼンタ
6   茶
7   白
8   灰
9   明い青
10  明い緑
11  明いシアン
12  明い赤
13  明いマゼンタ
14  黄
15  白

最後の 8 色は、最初の 8 色を明るく見えるようにしたものです。

例えば、2 バイト

    65 158

は、大文字 A (文字コード 65) を、 明い青の背景 (高位ニブル 9) に黄色 (下位ニブル 15) という指定です。

vidcontrol の出力には小さなヘッダがあり、 そこには、出力を処理するユーティリティに有用な追加情報が含まれます。

最初の 10 バイトは、常に次の並びです。
バイト範囲 | 内容
1 から 8 | リテラルテキスト “SCRSHOT_”
9 | ファイルフォーマットバージョン番号
10 | ヘッダの残りバイト数

これに続くバイトは、バージョン番号依存です。
バージョン | バイト | 意味
1 | 11 | 文字数単位の端末幅
 | 12 | 文字数単位の端末の深さ
 | 13 以降 | スナップショットデータ

80x25 画面のダンプは (16 進数で) 次のように開始します。

    53 43 52 53 48 4f 54 5f 01 02 50 19
    ----------------------- -- -- -- --
              |              |  |  |  ` 10 進数の 25
              |              |  |  `--- 10 進数の 80
              |              |  `------ 残りのヘッダデータのバイト数 2
              |              `--------- ファイルフォーマットバージョン 1
              `------------------------ リテラル "SCRSHOT_"

ビデオ出力設定

  ブート時の設定
次の変数を /etc/rc.conf または /etc/rc.conf.local に設定することにより、ブート時にビデオ出力を設定可能です。

blanktime
    -t オプション用のタイムアウトを設定します。
font8x16, font8x14, font8x8
    -f オプション用のフォントファイルを指定します。
scrnmap
    -l オプション用の画面出力マップファイルを指定します。

更なる詳細は rc.conf(5) を参照してください。

  ドライバの設定
デフォルトフォントなどのデフォルト設定オプションの変更を、 ビデオカードドライバが許す場合があります。 その場合、ブート時のオプション設定の必要はなくなります。 詳細はビデオカードドライバマニュアル (例えば vga(4)) を参照してください。

関連ファイル
/usr/share/syscons/fonts/*
    フォントファイル。
/usr/share/syscons/scrnmaps/*
    画面出力マップファイル。

使用例
カーネルに /usr/share/syscons/fonts/iso-8x16.fnt をロードしたい場合、 vidcontrol を次のように実行します。

    vidcontrol -f 8x16 /usr/share/syscons/fonts/iso-8x16.fnt

フォントファイルが /usr/share/syscons/fonts にある場合、ファイル名を iso-8x16 のように短縮可能です。

    vidcontrol -f 8x16 iso-8x16

更に、フォントの大きさ “8x16” を省略可能です。

    vidcontrol -f iso-8x16

更に、フォントの大きさを指定するサフィックスも省略可能です。 この場合、 vidcontrol は、現在表示されているフォントの大きさを使用してサフィックスを作成します。

    vidcontrol -f iso

同様に、画面出力マップファイルが /usr/share/syscons/scrnmaps にある場合、 -l オプション用のファイル名を短縮可能です。

    vidcontrol -l iso-8859-1_to_cp437

このコマンドは /usr/share/syscons/scrnmaps/iso-8859-1_to_cp437.scm をロードします。

次のコマンドは、100x37 のラスタテキストモードを設定します (LCD モデルによっては有用です):

    vidcontrol -g 100x37 VESA_800x600

次のコマンドは、最初の仮想端末の内容をキャプチャし、出力を shot.scr ファイルへ向けます。

    vidcontrol -p < /dev/ttyv0 > shot.scr

次のコマンドは、4 番目の仮想端末の内容を、 人間が読めるフォーマットで標準出力へダンプします。

    vidcontrol -P < /dev/ttyv3

関連項目
kbdcontrol(1), vidfont(1), keyboard(4), screen(4), syscons(4), vga(4), rc.conf(5), kldload(8), moused(8), watch(8)

様々な scr2* ユーティリティが、 Ports Collection の graphics と textproc のカテゴリにあります。

作者
Søren Schmidt <sos@FreeBSD.org>