FreeBSD では /etc/termcap の記述が甘いため、
FDclone がその内容を素直に信用してしまうと、
一部効かないキーが出てきてしまいます。
もちろん、根本的には /etc/termcap を書換えるという対処が正しいのですが、
ここでは FDclone 側で対処する方法を紹介します。
FDclone 1.0x では端末名毎に別々に設定ファイルを用意することができましたが、
2.0x ではこの機能は実装されていないので、
.fd2rc の中で環境変数 TERM を見て端末名に応じた振分けを行なうことになります。
端末名というのは、その端末タイプに割り当てられて名称のことで、
例えば boot 直後の console 端末ですと
cons25
という名前が割り当てられています。
ここでは、
FreeBSD で使われる代表的な端末ということで、
この
cons25
の他に、
kterm 端末用の
kterm、
kon2 端末用の
vt100
という 3 種類の端末名に対応した設定ファイルの記述を紹介します。
設定方法は簡単で、 home directory の .fd2rc に以下の記述を追加するだけです。
if [ " $TERM" = " cons25" ]; then LANGUAGE=C keymap F1 "\033[M" keymap F2 "\033[N" keymap F3 "\033[O" keymap F4 "\033[P" keymap F5 "\033[Q" keymap F6 "\033[R" keymap F7 "\033[S" keymap F8 "\033[T" keymap F9 "\033[U" keymap F10 "\033[V" keymap F11 "\033[W" keymap F12 "\033[X" elif [ " $TERM" = " vt100" ]; then keymap UP "\033[A" keymap DOWN "\033[B" keymap RIGHT "\033[C" keymap LEFT "\033[D" keymap BS "\010" keymap INS "\033[L" keymap HOME "\033[H" keymap END "\033[F" keymap PPAGE "\033[I" keymap NPAGE "\033[G" keymap F1 "\033[M" keymap F2 "\033[N" keymap F3 "\033[O" keymap F4 "\033[P" keymap F5 "\033[Q" keymap F6 "\033[R" keymap F7 "\033[S" keymap F8 "\033[T" keymap F9 "\033[U" keymap F10 "\033[V" keymap F11 "\033[W" keymap F12 "\033[X" elif [ " $TERM" = " kterm" ]; then keymap HOME "\033O\000" keymap END "\033OU" keymap F1 "\033[11~" keymap F2 "\033[12~" keymap F3 "\033[13~" keymap F4 "\033[14~" keymap F10 "\033[21~" fi
~/.fd2rc に以下の記述を書いて下さい。
DOSDRIVE=1 setdrv B /dev/rad0 HDD setdrv C /dev/rad1 HDD
1 台の HDD の中に複数の MS-DOS 領域がある場合は、
続くドライブ名に順次展開して割当てられていくので、
そういう環境では 3 行目の C
はもっと大きなドライブ名にしておいて下さい。
1 台しか HDD がない場合でも、
存在しないドライブ設定は無視してくれるので、この設定のままで大丈夫です。
removable media を登録する場合は大きなドライブ名の方を removable に割当てておくと良いでしょう。
HDD 以外に FLASH ATA PCcard なども登録できます。
上記は IDE ドライブの場合の設定例ですが、
SCSI ドライブの場合は上の
rad
の部分をそれぞれ
rda
に書換えれば大丈夫です。
FreeBSD 4.0-RELEASE 以前では
rad,
rda
の代わりにそれぞれ
rwd,
rsd
を用います。
また、MS-DOS 領域が PC-9801 シリーズ用のものの場合は、
HDD
の代わりに
HDD98
と記述して下さい。
3.0-RELEASE 以前の kernel は、
FAT32 で作られた大容量の MS-DOS 領域
(FAT32X と呼ぶようです) を認識できませんが、
FDclone は kernel を介さずに直接 disklabel 割当てを行いますので、
そのような MS-DOS 領域にも access することができます。
但し、2.2.6-RELEASE 以前の kernel は
8.4GB 以上の HDD を扱えませんので、
その場合は 8.4GB 超の位置にある MS-DOS 領域は access できません。
install 用 CD-ROM
に含まれるファイル群を全部 install するのは大変ですが、
install しなかったファイルでもたまに参照したいことがあります。
そういう場合、
~/.fd2rc
に以下の記述をしておくと、
FDclone のアーカイブブラウザ機能を使って
CD-ROM から直接ファイルを参照できます。
launch ".aa" "cat %X.??|tar tvfz -" "%a %u/%g %s %m %d %t %y %f" arch ".aa" "echo ERROR" "cat %X.??|tar xfz - %TA"例えば /usr/src/sys の場合、 /cdrom/src/ssys.aa (CD-ROM が /cdrom に予め mount されているとします) の位置で Enter を押すと、 ちょっと時間はかかりますが、 /usr/src/sys に install されるはずだったファイル群を browsing することができます。
他の install ファイルも、これと似たような形式で CD-ROM に収められていますので、 hoge.aa, hoge.ab, hoge.ac, ... のような名前のファイルがたくさんある場所を探してみて下さい。
/usr/share/man/man?
や
/usr/local/man/man?
の下には man コマンドで参照するための source が置かれています。
しかし、これらは圧縮されている上に roff 形式という形で記述されているので、
FDclone で browsing しながら覗こうとしても、
中身を理解することが困難です。
~/.fd2rc に以下の記述をしておくと、 man page の source を plain text に format することで、 直接参照することができます。
launch ".[0-9].gz" "gzip -cd %C|tbl|/usr/local/bin/groff -Tnippon -man|less"日本語 man page が install されていない環境では、 /usr/local/bin/groff -Tnippon -man の部分は単に nroff -man で構いません。
~/.fd2rc に以下の記述をしておくと、 各種マルチメディアファイルを見聞きすることができます。
launch "/.jpg" "xv %C" launch "/.mid" "timidity %C" launch "/.mp3" "mpg123 %C"ランチャに使われる各種ツールは別途 install しておいて下さい。
また、
これらの素材は MS-DOS 領域にある場合も多いでしょう。
ところが、
msdosfs mount をしてもフロッピードライブ機能を用いても、
これらのファイル名が大文字でしか見えないこともあります。
そういう場合を考えて、
上の登録例では拡張子の記述を「/」で始めてあります。
このように登録しておけば、
拡張子が大文字でも小文字でもランチャが有効に機能します。