NetBSD は 1.4 以前のバージョンでは、キーボードとスクリーンドライバーに 2つのドライバーを選べました。 pccons ( i386 特有) と pcvt です。 バージョン 1.4 で 新しく wscons ドライバーがプラットホーム非依存のドライバーとしてでき、 以前の2つのドライバー(まだサポートされているけども)を 置き換えました。
Wscons は NetBSD の新しいコンソールドライバーです。 これは仮想端末を提供し、さまざまなキーボードやマウスの操作などをサポートします。 wscons の権限はポートごとに依存し (wscons はまだ すべてのポートにそろってはいません): i386 版では、その機能が非常に豊富です。
インストールの終わりに、 wscons が標準で有効になり、そのままで使えるようになります。 バージョン 1.4 では、仮想コンソールはデフォルトで有効になってなく: 有効にするには Chapter 4 を見てください。 この節では、以降、カーネルコンフィグファイルの wscons オプションについて書いています。
カスタマイズカーネルのコンパイルで wscons を有効にするには、 その 適切なオプション を設定し、pcvt および pccons のオプションをコメントアウトします (これらを同時に有効にできません)。 たとえば
#pc0 at isa? port 0x60 irq 1 # pccons generic PC console driver #vt0 at isa? port 0x60 irq 1 # PCVT console driver
カーネルコンフィグファイルで、外国のキーボードを有効にできます。 たとえば、 italian キーボードを標準で使うには:
options PCKBD_LAYOUT="KB_IT"
註: italian キーボードの配列は、プログラムを作るというほどの事では ありません。 変更するには Chapter 4 を見てください。
あらかじめ割り当てられている仮想コンソール数は 次のオプションで制御されていて
options WSDISPLAY_DEFAULTSCREENS=4
ほかのコンソールも /etc/wscons.conf ファイルの関連行を有効にすることで追加でき: "screen x" で始まる行の コメントマーク (#) を外してください。 次の例ではすでにある4つのコンソールに、 5番目のコンソールを追加します:
# screens to create # idx screen emul #screen 0 - vt100 screen 1 - vt100 screen 2 - vt100 screen 3 - vt100 screen 4 - - #screen 4 80x25bf vt100 #screen 5 80x50 vt100
rc.wscons スクリプトはコメント化されていない 各行について wsconscfg コマンド実行のための変換をし: 列の値はコマンドのパラメーターになります。 idx 列は index パラメーターで、 screen 列は -t type パラメーター (画面のタイプを定義し: 行数列数、色数、 ...) 、そして、 emul 列は -e emul パラメーターでエミュレーションの定義をします。 例えば:
screen 3 - vt100
は次の処理をします:
wsconscfg -e vt100 3
註: カーネルによって あらかじめ割り当てられているコンソールと 起動時に /etc/wscons.conf によって割り当てられるコンソールが(無害ですが)衝突することがあります。 システム起動中にすでに割り当てられた画面に割り当てをしようとすると 次のメッセージが表示されます:
wsconscfg: WSDISPLAYIO_ADDSCREEN: Device busyこの解決法は /etc/wscons.conf 中の問題の行をコメントアウトすることです。
仮想コンソールは /etc/ttys で設定されていることも必要で、例えば:
console "/usr/libexec/getty Pc" pc3 off secure ttyE0 "/usr/libexec/getty Pc" vt220 on secure ttyE1 "/usr/libexec/getty Pc" vt220 on secure ttyE2 "/usr/libexec/getty Pc" vt220 on secure ttyE3 "/usr/libexec/getty Pc" vt220 off secure ...
/etc/ttys の
ttyE3 "/usr/libexec/getty Pc" vt220 off secure
行は、 X サーバーが空いているターミナルを見つけるのに使います。 4番ではない画面を使うには、 書式のパラメーター vtn は X サーバーに帰属する必要があります (n は X が画面を activate するのに使う ファンクションキーの番号)。
例えば、 /etc/wscons.conf で "screen 7" を有効にすることができ、 X は "vt8" で始まります。 xdm を使うなら、 /usr/X11R6/lib/X11/xdm/Xserver を 編集する必要があり、 例えば:
:0 local /usr/X11R6/bin/X +kb dpms -bpp 16 dpms vt8
xdm3d では、パスは違って: /usr/X11R6/share/xdm3d/Xservers です。
NetBSD では、 1.4.1 以降 50行テキストモードが使えるようになりました。 このモードは /etc/wscons.conf の設定で有効になり、 次の行をコメントから解除してください:
font ibm - 8 ibm /usr/share/pcvt/fonts/vt220l.808
次の行も変更します:
#screen 0 80x50 vt100 screen 1 80x50 vt100 screen 2 80x50 vt100 screen 3 80x50 vt100 screen 4 80x50 vt100 screen 5 80x50 vt100 screen 6 80x50 vt100 screen 7 80x50 vt100
この設定では、 8画面が有効で、 Ctrl-Alt-Fn (ここで、 n は 1 から 8) キーの同時押しによってアクセスできます。 ; 対応するデバイスは ttyE0..ttyE7 です。 それを有効にし、ログインプロンプトを出すために /etc/ttys も変更する必要があり:
ttyE0 "/usr/libexec/getty Pc" vt220 on secure ttyE1 "/usr/libexec/getty Pc" vt220 on secure ttyE2 "/usr/libexec/getty Pc" vt220 on secure ttyE3 "/usr/libexec/getty Pc" vt220 on secure ttyE4 "/usr/libexec/getty Pc" vt220 on secure ttyE5 "/usr/libexec/getty Pc" vt220 on secure ttyE6 "/usr/libexec/getty Pc" vt220 on secure ttyE7 "/usr/libexec/getty Pc" vt220 on secure
スクリーン 0 で 80x25 を変更できないようにしているのは、 たぶん、何か問題があった場合でも、常にスクリーンが動作する 保証のためでしょう。
これは、 i386 インストールフロッピーに入っているコンソールドライバーです。 これは仮想コンソールも設定用のユーティリティープログラムも ありませんが、サイズが非常に小さいです。
Pcvt は VT220 端末エミュレーターで、シンプルな pccons より高機能です。 これは、外国のキーボードに対応していて、仮想コンソール対応もあります ( Ctrl-Alt-F1..F8 または F9..F12 ファンクションキーで)。 pcvt をアクティブにするには、カーネルコンフィグファイルの 次の行のコメントを解除します。
# Enable only one of the following lines #pc0 at isa? port 0x60 irq 1 vt0 at isa? port 0x60 irq 1 # Options for PCVT console driver #options FAT_CURSOR options PCVT_NETBSD=132 options PCVT_NSCREENS=3
外国のキーボードを使うには、起動時に それ が活動していることが必要で; 正しい端末の選択も必要です。たとえば:
/usr/local/bin/kcon -m i2 TERM=pcvt25; export TERM
/etc/ttys をそれに応じて変更する必要があります。 たとえば:
#console "/usr/libexec/getty Pc" pcvt25 on secure ttyv0 "/usr/libexec/getty Pc" pcvt25 on secure
Pcvt italian キーボード: i2 キーボードの定義が 正しくないので、 /sys/arch/i386/isa/pcvt/Util/keycap/keycap.src ファイルを修正する必要があります。 作業中の版で、 NetBSD 1.3.3 で試しました。
i2|italy142|Italian 142 mapping:\ :A8={:A9=[:A10=]:A11=}:\ :A12=`:A13=~:\ :A17=@:A18=#:\ :tc=italy141:
外国のキーボードの設定 (たとえば italian キーボード) は起動時に読み込まれる必要があり、例えば、 /etc/rc.local で:
KCONP=/usr/local/bin SCONP=/usr/local/bin LDFNP=/usr/local/bin ISPCP=/usr/sbin CURSP=/usr/local/bin set_keybd=YES #------------------------------------------------------ # if desired, setup keyboard for italian keyboard layout #------------------------------------------------------ if [ X${set_keybd} = X"YES" -a -x $KCONP/kcon ] then echo echo 'switching to italian keyboard layout' $KCONP/kcon -m i2 fi echo '.'
/etc/ttys も変更する必要があり:
#console "/usr/libexec/getty Pc" pcvt25 on secure ttyv0 "/usr/libexec/getty Pc" pcvt25 on secure ttyv1 "/usr/libexec/getty Pc" pcvt25 on secure ttyv2 "/usr/libexec/getty Pc" pcvt25 on secure
pcvt ユーティリティープログラムがコンパイルされてインストールされている必要があります。
cd /sys/arch/i386/isa/pcvt/Util make make install
pcvt では画面の行数と桁数を変更できます。 次のスクリプトの例では、 異なる設定の間で自動的に切り替えてくれます。:
#!/bin/sh # Set the screen to # lines case $1 in 25) /usr/local/bin/scon -s 25 /usr/local/bin/cursor -s13 -e14 ;; 28) /usr/local/bin/loadfont -c1 -f /usr/share/misc/pcvtfonts/vt220l.814 /usr/local/bin/loadfont -c2 -f /usr/share/misc/pcvtfonts/vt220h.814 /usr/local/bin/scon -s 28 /usr/local/bin/cursor -s12 -e14 ;; 40) /usr/local/bin/loadfont -c3 -f /usr/share/misc/pcvtfonts/vt220l.810 /usr/local/bin/loadfont -c4 -f /usr/share/misc/pcvtfonts/vt220h.810 /usr/local/bin/scon -s 40 /usr/local/bin/cursor -s8 -e10 ;; 50) /usr/local/bin/loadfont -c5 -i /usr/share/misc/pcvtfonts/vt220l.808 /usr/local/bin/loadfont -c6 -i /usr/share/misc/pcvtfonts/vt220h.808 /usr/local/bin/scon -s 50 /usr/local/bin/cursor -s6 -e8 ;; *) echo "Invalid # of lines (25/28/40/50)" ;; esac