FreeBSD on ThinkPad i1620
〜 ThinkPad i1620 で、FreeBSD を使おう 〜


XFree86 4.1.0 導入日記  〜FreeBSD 4.5R編〜

ハードディスクを換装したのを機に、FreeBSD 4.5R をインストールしました。

FreeBSD 4.5R の標準の X は XFree86 3.3.6 ですが、すでに現在 XFree86 の開発は、4.x 系列に移行しており、3.3.6 は開発が終了しています。
なので、この機に FreeBSD 4.5R の packages にある、XFree86 4.1.0 を導入することにしました。
 

(FreeBSD 4.6Rからは、XFree86 4.2.0 が標準になるという噂ですし、ここらでひとつ、XFree86 4.x 系列に慣れておくことにしましょう。)

インストールの注意点

FreeBSD 4.5R のインストール手順は今までと全く同じです。
ただし、配布物の選択で [X-Kern-User] を選択すると、XFree86 3.3.6 がインストールされてしまうので、今回は [Kern-User] を選びます。

インストール後、packages から、「XFree86-4.1.0_13,1」をインストールします。これで、XFree86 4.1.0 関連がすべてインストールされます。

少しでもディスクの容量を減らしたい場合は、必要なものだけをインストールすればいいでしょう。
FreeBSD のインストーラから XFree86 をインストールする場合、配布物がいくつかに分類されていて、好きなものを選択することができましたが、packages でも同様に分類されています。
「XFree86-なんたら-4.1.0」という名前で統一されているので、インストールしたいものを選びましょう。
さて、XFree86 3.3.6 では、一般ユーザから、startx コマンドを使って X を起動する事ができたのですが、4.x 系列では root でないと X を起動できなくなっています。(セキュリティ上、こうなったらしい)。
xdm を使っている場合なら問題無いのですが、私は使っていないので、一般ユーザでも startx を使えうように、packages から、「wrapper-1.0_1」を入れておきます。

なお、X関連の日本語マニュアルをみたい場合は、「ja-xjman-0.6」も入れておきましょう。

無事、XFree86 4.1.0 関連の packages のインストールが終わったら、インストール時に表示されるメッセージに従い、/etc/make.conf を作成し、以下の内容を記述します。

 
XFREE86_VERSION=4
詳しくは知らないですが、こうしておかないと FreeBSD 4.5R でカーネルやportsをコンパイルをした時に困ったことになる場合があるそうです。詳細は、 man make.conf でも見て下さい。
 
 

XF86Config の作成

4.x 系列では、Xの設定ファイル XF86Config の作成方法が今までとは違うようです。
今までは、XF86Setupなどのツールを使って作成していたのですが、4.x系列では、自動生成できるようです。
まず、root になって、以下のコマンドを実行します。
# /usr/X11R6/bin/XFree86 -configure
これで、自動的に設定ファイル /root/XF86Config.new が生成されます。
早速この設定ファイルを試してみましょう。
# /usr/X11R6/bin/XFree86 -xf86config /root/XF86Config.new
グレーの味気ない画面が表示されて、カーソルが動けばOKです。
この時点では何もアプリが起動していないので、[Ctrl]+[Alt]+[BackSpace]で強制終了します。

このファイルを、/etc/X11/XF86Config という名でコピーしておきます。

# cp XF86Config.new /etc/X11/XF86Config
これでとりあえず準備は整いました。一般ユーザからも、startx で Xの起動ができるはずです。
ちなみに、X の起動時にいろんなメッセージが表示されますが、4.x 系列では、このメッセージが /var/log/XFree86.0.log に保存されるようになっています。
参考までに、i1620 + FreeBSD 4.5R + XFree86 4.1.0 にて自動生成されたファイルはこれです。→ XF86Config.new

XF86Config をカスタマイズ

このままの設定では、ちょっと使いにくいので、いろいろ設定を変更してみます。
  1. 日本語106キーボードが使えるようにする
  2. Caps を Control に割り当てる。
  3. NumLockも使えたらいいな。
  4. このままではpackages からインストールしたフォントが使えないので直す
  5. ついでに、TrueTypeフォントも使えるようにする。
  6. デフォルトでは色数が 8bit (256色)なので、せめて16bit (65536色) にしたい。
  7. 1024x768 以外の解像度も使いたい。
では、順番に変更していきましょう。
キーボードの設定を変えるには、InputDevice のセクションを修正します。
なお、i1620 では、[Shift] + [ScrLk] で NumLock が有効になります。
 
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
        Option      "XkbModel" "jp106"                               ←  日本語キーボードを設定
        Option      "XkbLayout" "jp"
        Option      "XkbOptions" "ctrl:swapcaps"             ←  CapsLock と Ctrl を入れ換えたい場合はこれを指定する
        #Option    "XkbOptions" "ctrl:nocaps"                   ←  CapsLock を Ctrl に変えたい場合は、こっちを指定
        Option      "XkbDisable"                                          ←  これを指定すると、NumLock が使用可能になる
EndSection
フォントは、FIlesのセクションを修正します。
packages からインストールしたフォントは、/usr/X11R6/lib/X11/fonts/local にインストールされるので、それを追加。
TrueType フォントを使いたい場合は、/usr/X11R6/lib/X11/fonts/TuoeType も追加します。
 
Section "Files"
        ………
        FontPath     "/usr/X11R6/lib/X11/fonts/local/"
        FontPath     "/usr/X11R6/lib/X11/fonts/TrueType/"
EndSection
TrueType フォントを使うためには、Moduleのセクションに、xtt を追加する必要があります。
 
Section "Module"
        ………
        Load    "xtt"
EndSection
Xの起動時の色数を指定するには、Screenセクションに、DefaultDepthを追加します。
i1620の場合、8bpp、16bpp、32bpp のいずれかが指定可能です。
 
Section "Screen"
         Identifire "Screen0"
        Device      "Card0"
        Monitor     "Monitor0"
        DefaultDepth    16
        ………
そして、1024x768以外の解像度は、Displayサブセクションで、指定します。
i1620の場合、"1024x768" 以外に、"800x600"、"640x480" の指定が可能です。
 
          SubSection "Display"
                    Depth  16
                    Modes    "1024x768"  "800x600"  "640x480"
          EndSubSection

ちなみに、他のサイズ、例えば "512x384" や "320x240" の解像度が欲しい、という場合は、Monitorセクションにその解像度の情報を追加しておく必要があります。


 

こうしてできた設定ファイルが、これです。→  /etc/X11/XF86Config

startx を実行すると、16bpp で X が起動し、[Ctrl] + [Alt] + [+ or -] で、1024x768、800x600、640x480、640x400、512x384、320x240、320x200 の解像度に切替ができます。
 

速度について

以前、XFree86 3.3.6 を使っていた時は、MTRR を使って描画速度を上げていましたが、4.1.0 では、デフォルトで MTRR が使われています。
そのため、素のままでもかなり高速になっています。
参照)MTRR を使って、Xを高速化する  (for XFree86 3.3.6)

ハイバーネーションについて

ところで、4.1.0を使っていて気づいたのですが、ハイバネーションから復帰した時、Xの画面が乱れてしまい、そのままでは正常に使用できなくなります。とりあえず、[Ctrl] + [Alt] + [F1] でコンソールに戻してから、[Alt] + [F9] で 再度 X の画面に戻ってくれば正常に復帰できるので、それほど実害があるわけではないのですが………
3.3.6 のときはこんな問題は起こらなかったし、4.1.0 でもサスペンドからの復帰では問題無いだけに、ちょっと残念。
 


「ホームページ」に戻る


Showzoh Fukunaga
メールはこちら……… fukuchan@mh1.117.ne.jp