まぁ、CURRENT と言うのは生き物でありまして、日々進化しているわけです。そんなこんなで CURRENT-DP1 リリース以降をインストールする時の FIVA MPC-206 のおまじない的インストールに付いて追加してみましょう。
基本的に、4 系 RELEASE などの方は更新せず、CURRENT ネタとしてこっちが更新になります。去年末以来 CURRENT のバージョンを上げていない人に参考にしていただければ。と思います;-)。
さて、本題ですが、私は HDD を一旦 format してしまったのでサラからの状態から CURRENT をインストールしています。カーネル部分に付いて、基本的には 岩崎さん が作成したパッチがベースとなり、それを最新 CURRENT に適用したパッチを利用します。FIVA の ML で最新版へ対応したパッチが流れたのでそれを利用すると良いでしょう。
http://ml-ar1.infoseek.co.jp/MLarchive/user/7887/html/msg000008374.php3
このページへもリンクしてくださっている 川島さん 作のパッチです。
ここからパッチを持ってきてカーネルに当ててから make すれば OK です。一部、/usr/src/sys/pci/vga_pci.c と、/usr/src/sys/modules/vga_pci/Makefile が生成されないのでその部分を手パッチで作成してからカーネルを再構築しましょう。これで 5.0-CURRENT-20011211-JPSNAP の頃と同等の機能は動く様になるかと思います。
・カーネルのコンフィグファイル
CURRENT では二つのファイルが必要になっています。これらに付いては、藤田さん のサイトに掲載されているので詳しくはそちらを参考にしてください。以下は hits ファイルの差分です。ま、FD 無いでしょ。パラレルポート無いでしょ。シリアルポート無いでしょ。的設定です;-)。
----------------
# diff GENERIC.hints Chibi_5.0_Kernel.hints
43c43
< hint.pcic.1.irq="11"
---
> # hint.pcic.1.irq="11"
46c46
< hint.pcic.1.disabled="1"
---
> # hint.pcic.1.disabled="1"
50c50
< hint.sio.0.irq="4"
---
> hint.sio.0.irq="0"
53c53
< hint.sio.1.irq="3"
---
> hint.sio.1.irq="0"
86a87,90
> #
> hint.fdc.0.disabled="1"
> hint.sio.1.disabled="1"
> hint.ppc.0.disabled="1"
----------------
GENERIC はほぼ今まで通りと言う事で;-)。以下は速く動く様に、デバッグオプションをはずしている所です。hints はヒントファイルを指定しています。
----------------
#To statically compile in device wiring instead of /boot/device.hints
hints "Chibi_5.0_Kernel.hints" #Defaultplaces to look for devices.
---
# Debugging for use in -current
#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
#options DDB #Enable the kernel debugger
#options INVARIANTS #Enable calls of extra sanity checking
#options INVARIANT_SUPPORT #Extra sanity checks of internal structures, require
d by INVARIANTS
#options WITNESS #Enable checks to detect deadlocks and cycles
#options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed
----------------
・ハイバネーション
基本的に、BIOS の設定で "Save To Disk" にするのはお約束です。その後、4 番目のパーティションに 0xa0 のパーティションを作成するのも変わりません。その手順を書いておきます。
1. FreeBSD のインストール時、FDISK Partition Editor の画面で作業を行います。
2. その時、まずは四つのパーティションを切ってしまいます。そして、最後の 4 番目のパーティションはハイバネ領域のサイズ分を確保して sysid を 160 として書き込みます。
3. 例えば 1 番目のパーティションは sysid 7 を書き込んだとして、その後で 2,3 番目のパーティションを削除します。
4. 一旦削除してから新たに一つのパーティションを作成してして sysid を 165 にします。
5. こうすると、パーティション 1,2,4 と言う風に出来たかと思います。
これでインストールしましょう。インストールが終わった後で、PHDISK な領域をフォーマットしてあげる必要があります。 岩崎さん が作成した、FreeBSD 上からフォーマット出来るツールを使う事にしましょう。使い方は 藤田さん の所に書いて有ります。簡単に書いておくと、
1. gcc -o phformat phformat.c で make する。
2. ./phformat と実行。phformat.dump と言うファイルができる。
3. root で # cp phformat.dump /dev/ad0s4 と実行。これには時間が掛かる。
これでおしまいです。早いですねぇぇ。DOS から phdisk.exe を実行する必要はありません。ありがたい事です。phformat.dump のサイズは 0xa0 で切られたパーティションサイズの大きさとなります。自分で積んでいるメモリからサイズを決めましょう。
尚、S4 でサスペントする時には、「ぴっぴっぴっ」で止まってしまうかもしれないので、BIOS の HDD の設定の所で、UDMA のモードを MODE3 としておきましょう。ブート時には一応 UDMA66 として認識されるので問題は無いです。
それにしても MPC-206 系の IDE ケーブルは UDMA33 までにしか対応していないケーブルを使っています。なので、実はあんまり転送モードを気にすることは無かったりします;-P。
・起動の準備
カーネルができて、サスペンドの準備ができたので後は、ブート時の設定を行います。/boot/loader.conf に以下の設定を記入してからブートしてみましょう。
----------------
hw.ata.wc=1
hw.pcic.intr_path="1"
hw.pcic.irq="0"
----------------
更に /etc/sysctl.conf には以下の設定を書き込みます。
----------------
hw.acpi.cpu.economy_speed=8
hw.acpi.lid_switch_state=NONE
hw.acpi.standby_state=S4
hw.acpi.suspend_state=S4
hw.acpi.power_button_state=S4
hw.acpi.sleep_button_state=S4
hw.acpi.thermal.min_runtime=300
hw.acpi.battery.info_expire=30
----------------
これでブートすると幸せになるのではないでしょうか;-)。
・XFree86 と KDE-2.2.2
5/6 版の CURRENT は XFree86 が 4.2.0 になっています。それをそのまま pkg_add して使う事にしましょう。XF86Config は 4.1.0 のがそのまま使えます。嬉しい事ですね。とはいっても /etc/X11 が無いので、XF86Config は /etc に、XftConfig は /usr/X11R6/X11 に格納する事にしましょう。
KDE についてですが、CURRENT では既に KDE3 の ports が用意されています。そちらを使っても問題は無いかと思いますが、私は KDE2 の方をチョイスしました。これが正解でしたねぇぇ。FreeType や QT はデェフォルトでアンチエイリアス対応しているのか、サクッと表示してくれます。すごっ!!でもって 4.5-RELEASE などでは MS ゴシックなど、固定幅フォントが一部のサイズで表示できなかったのが、全てのサイズで表示出来る様になりました。すげーー。
さらに嬉しい事に、konqueror で一部 "・" として文字化けしていた文字が正しく表示出来る様になっています。こらまた嬉しいですね;-)。尚、詳しいKDE2 のアンチエイリアスについては FreeBSD PRESS No.10 を参考にしてください;-)。
・最後におまけ。
GKrellM のプラグインである、gkrellmwireless-0.2.2 の make が通らなくなりました。これは、wi/an のヘッダファイルの持ち方に一部変更が出た為です。wireless.h を以下の様に変更すれば OK でしょう。
----------------
diff -c wireless.h.ORG wireless.h
*** wireless.h.ORG Sun Sep 9 23:25:55 2001
--- wireless.h Mon May 13 16:03:11 2002
***************
*** 21,29 ****
--- 21,35 ----
#include <gkrellm/gkrellm.h>
#ifdef __FreeBSD__
#include <net/if.h>
+ /*
#include <machine/if_wavelan_ieee.h>
+ */
+ #include <machine/if_wl_wavelan.h>
+ #include <machine/ieeefp.h>
+
#define ANCACHE
#include <dev/an/if_aironet_ieee.h>
+ #include <dev/wi/if_wavelan_ieee.h>
#endif
#ifdef __NetBSD__
----------------
そして、他にもプラグインを使っている様であれば、全てのプラグインを一旦、全部 make し直して上げましょう。これで動く様になるかと思います;-)。
うーうー。一応駆け足で書いてきましたがこれで動きます。ここは覚え書き程度に書かれています。参考にさせて頂いた皆さんの URL はリンクしてあるのでそれを参考にしてください。ここではそれを寄せ集めてまとめただけです;-)。皆さん、有り難うございました。