NetBSD で X のサポートを行う為に、次の行を /sys/arch/i386/conf
中の config ファイルに記述しておかなければなりません。
options XSERVER, UCONSOLE
サーバは NetBSD/i386 で標準的な2つのコンソールドライバ( pccons と pcvt ) をサポートしています。これらは実行時に検出され、サーバの設定などは必要あ りません。
pccons ドライバは最もよくテストされ、NetBSD のバイナリ配布用のカーネルに も含まれているドライバです。
pcvt ドライバは NetBSD に付属しています。pcvt の X モードは pccons の X モードと互換性があります。複数の仮想コンソールが利用できたり、各国対応の キーボードをサポートしていたりします。このドライバを使用するためには、 カーネル config ファイル中の次の行:
device pc0 at isa? port "IO_KBD" irq 1
を
device vt0 at isa? port "IO_KBD" irq 1
に変更してカーネルを再構築して新しいカーネルをインストールして下さい。
XKB を使用しない場合は、サーバはキーボードドライバから得られた実際の
keymap を読み取って X の keymap として使用します。``RightAlt ModeShift
'' を XF86Config
に記述することで、右の Alt キー
を AltGr として動作させる事が出来ます。
syscons と codrv は NetBSD に付属していません。これらは色々なところの
anonymous FTP から入手できます。これらは XFree86 のバイナリ配布物では
サポートされていません。これらをサポートするには xf86site.def
中
の XFree86ConsoleDefines
の記述に -DSYSCONS_SUPPORT や -DCODRV_SUPPORT
を追加してコンパイルして下さい。詳細に関しては、
Console drivers を参照して下さい。
pcconsを使用していると次のメッセージが表示されることがあります。
> Fatal server error:
> xf86OpenConsole: CONSOLE_X_MODE_OFF failed (Inappropriate ioctl for device)
> Was expecting pccons driver with X support
> Check your kernel's console driver configuration and /dev entries
>
そういう時は、/dev/ttyv0
を消して下さい。何故かは分からないの
ですが ``MAKEDEV
'' が /dev/ttyqf
を /dev/ttyv0
へ移してしまう様です(Hung-Chi Chu氏 hcchu@r350.ee.ntu.edu.tw の報告)。
NetBSD 0.9C 以降ではマルチユーザモード環境での /dev/mem
への
アクセスを拒否するという 4.4BSD のカーネルセキュリティ機能が含まれて
います。しかし XFree86 のサーバは ビデオメモリへのリニアなアクセスが
性能の向上に使われたり(必須となる事もあります)します。
P9000, Mach64 や AGX のサーバはリニアメモリアクセスを要求しますし、他の アクセラレータ付きサーバも要求こそしませんが、性能向上の為に使用する事が 出来ます。
XFree86 にリニアメモリアクセスを許可するには2つの方法があります:
/sys/kern/kern_sysctl.c
の205行にある
``securelevel'' 変数を -1 で初期化する事でカーネルの
セキュリティは無効に出来ます。更に詳しく知りたければ
/usr/include/sys/systm.h
のコメントを読んで下さい。
/etc/rc.local
の最後に次の行を追加します。
KERNDIR=/usr/X11R6/lib/X11/kernel
if [ -f ${KERNDIR}/ap.o ]; then
modload -o ${KERNDIR}/ap -e ap -p ${KERNDIR}/apinstall ${KERNDIR}/ap.o
fi
/etc/lkm.conf
に次の行を追加します。
/usr/X11R6/lib/X11/kernel/ap.o - ap /usr/X11R6/lib/X11/kernel/apinstall -
lkm.conf
のフォーマットが 1.2G で変わりました。
/etc/lkm.conf
に次の行を追加してい下さい。
/usr/X11R6/lib/X11/kernel/ap.o - ap /usr/X11R6/lib/X11/kernel/apinstall - -AFTERMOUNT
/netbsd
や /bsd
以外のカーネルで
起動する場合、ローダブルカーネルモジュールを使用するとシステムが
クラッシュします。他のカーネルで起動する場合には、いつもシングル
ユーザモードで起動するようにして下さい。
Caveat: aperture ドライバは一度に一つのアクセスしか許可しません。 (だから一旦 X が起動されるとシステムは同じセキュリティ状態になります) これは複数のサーバを複数のVTで実行した場合に、最初の一つだけがリニア アクセスできるという事です。同時に複数の X サーバを使用する必要が ある場合には、'option INSECURE' を使用して下さい。
NetBSD 1.0 以降では System V 形式の共有メモリがサポートされています。 XFree86 がカーネル内でこれがサポートされている事を検出すると、MIT-SHM 拡張機能をサポートするようになります。
カーネルに System V 形式の共有メモリサポートを組み込むには、次の 行をカーネル config ファイルに追加して下さい。
# System V-like IPC
options SYSVMSG
options SYSVSEM
options SYSVSHM
それから /sys/arch/i386/config
ディレクトリで次の様に入力
します。
# rm -f ../compile/<KERNEL-NAME>/*
# config <KERNEL-NAME>
# cd ../compile/<KERNEL-NAME>
# make depend
# make
そして新しいカーネルをインストールしてリブートします。
# cp /netbsd /onetbsd
# cp netbsd /
# reboot