訳: &a.nishika;. FreeBSD は, EIDE と SCSI ハードディスクドライブをサポート
しています (互換コントローラも含みます: 次の節参照). また
オリジナルの "Western Digital" インタフェースを使用している
すべてのドライブも (MFM, RLL, ESDI, もちろん IDE も)
サポートしています. 独自仕様のインタフェースを使用する
ESDI コントローラでは動作しないものがあり, WD1002/3/6/7
とその互換インタフェースと衝突します.
サポートされている SCSI コントローラに接続できる SCSI
ドライブすべてをサポートしています.
また, 以下の専用 CD-ROM インタフェースもサポートしています.
SCSI でないカードはすべて, SCSI ドライブよりも極めて動作速度が
遅いことが知られており, ATAPI CD-ROM には動作しないものもあるようです.
Walnut Creek の FreeBSD 2.2 CD-ROM からは CD からの直接ブートが
サポートされています.
もちろん, FreeBSD は SCSI ZIP ドライブ (外付け) をサポートしています.
ZIP ドライブは SCSI ID を 5 か 6 に設定した状態でなら使用できますが,
もし SCSI ホストアダプタの BIOS がサポートしてさえいれば
ZIP ドライブからブートさせることもできます. 私はどのホストアダプタが
SCSI ID を 0 や 1 以外に設定したデバイスからブートできるのか知りませんが...
ドキュメントを参照してください (うまくいった場合は教えてください).
FreeBSD 3.0-CURRENT では, パラレル ZIP ドライブをサポートする
ようになりました. とはいえ, この ZIP を使うには, ppbus (パラレル
ポートバス) のサポートのために新しいカーネルを構築する必要があります.
LINT コンフィグレーションファイル中のサンプルを参照して下さい.
それから および
についても
確認しておいてください.
FreeBSD では, IDE バージョンの EZ ドライブを除くすべての SCSI デバイスは,
SCSI のディスクと同等に扱われます. また IDE EZ は IDE ドライブと同等となります.
原作: &a.jehamby;.
訳:
&a.tomo;,
&a.yoshiaki;. システムに合わせたカーネルの構築はすべての
Unixシステム管理者が
避けて通ることのできない最も重要な通過儀礼の1つです.
この作業は, 多くの時間を必要としますが, あなたの FreeBSD
システムに多くの利益をもたらします. GENERICカーネルは,
めったに使われることのないハードウェアをサポートするとともに,
考えられるすべての SCSIカードやネットワークカードをサポート
しなければなりませんが, システムに合わせたカーネルは
あなたの PC のハードウェアのみをサポートします.
これは, 次にあげるような利益をもたらします.
まず, カーネル再構築に必要なディレクトリをざっと見てみましょう.
ここではディレクトリはすべて /usr/src/sys以下の相対位
置で示します. また, /sysからもアクセス可能です.
ここには, カーネルの各部分を構成するサブディレクトリが
いくつもあります. しかし, 私たちの目的では
最も重要なのは i386/confです. ここで, あなたの
システムに合わせてカーネル コンフィグレーションを編集します.
それから compileディレクトリ, ここはカーネルが作られる
場所です. サポートされているデバイスやファイルシステムのディレ
クトリツリーがオプション毎にサブディレクトリに分かれている論理
的構成に注意してください. また, i386のディレクトリは
PCのハードウェアのみを扱い, i386以外のディレクトリは
FreeBSDが他のプラットフォームに移植される際には共有されるコー
ドです.
コンフィグレーション ファイルの一般的なフォーマット
はとてもシンプルです. 各行は1つのキーワードと1つ以上の
引数を含んでいます. 見やすくするために, ほとんどのキーワードは
引数を1つしか書いてありません.
#に続くものはすべてコメントとして扱われ,
無視されます. ここでは, それぞれのキーワードについて
だいたい GENERICに出てくる順番で説明します. しかし,
お互いに関係のあるキーワードは, 実際には GENERICファイル上に
バラバラに現れていても, (ネットワーキングのように)1つにまとめ
てあります. カーネルは現在, オプションを扱う方法をよりよい機構に移行しよ
うとしています. 従来は, 各々のオプションは単純にカーネルの
Makefile中の CFLAGS行の -Dスイッチに変換されて
いました. 自然とオプションは際限なく増えて行きます. だれも実際に
はどのオプションがどのファイルで参照されているかは知りません.
新しい方法では、すべてのオプション依存の #ifdefは当該オプショ
ンを opt_foo.h (これらのファイルはconfigによって compileディレ
クトリに作られます) から読み込むように変わりました.
config の有効なオプションのリストは2つのファイルにお
かれます. アーキテクチャに依存しないオプションは
/sys/conf/optionsに置かれ, アーキテクチャ依存のオプショ
ンは/sys/arch/conf/optionsに置かれま
す. archの部分は例えば i386となります.
ここにあるキーワードはカーネルの構築に必要不可欠です.
最初のキーワードは machineです.
FreeBSDは Intelの 386とその互換チップ上でしか
動かないので, i386を指定します.
次のキーワードは cpuです.
FreeBSDでサポートしている CPUの中から記述します.
cpu_typeとして指定可能な値は
次の通りです.
次は, カーネルの識別名となるidentです.
GENERICからあなたがカーネルに与えたい名前に
変えてください. ここでは, MYKERNELとします.
identに与えた名前はカーネルの
ブート時に表示されるので, 普段のカーネルとは別に
カーネルに違う名前を与えたいとき(例えば,
実験用のカーネルを作りたい時など), 便利でしょう.
数字を含む名前にしたい場合は machineや
cpuの時と同じようにクォーテーションマークで
囲む必要があります.
Cコンパイラに -Dスイッチで渡されるので,
DEBUGのような名前にしたり, vax
といった他のCPUの名前など紛らわしい名前にしないで
ください.
これは, 重要なシステムテーブルのサイズを決めます. ここ
で与えられる数字はマシンに同時にログインすると考えられ
るおよそのユーザ数です. しかし, 通常の使用環境であれば,
特に X Window System を立ち上げたり, ソフトウェアを
コンパイルするような使用であれば maxusersには少
なくとも4以上を指定したほうがいいでしょう. その理由は,
maxusersで決るテーブルで最も重要なものはプロセス
の最大数であるからです. プロセス最大数は これはカーネルの位置と名前を特定します.
伝統的にカーネルは vmunixと呼ばれますが,
FreeBSDでは kernelとふさわしい名前になりました.
kernel_nameにはいつも kernelを
使ってください. 名前を変えると多くのシステム
ユーティリティが使えなくなります. 2番目の部分は
ルートファイルシステムとカーネルのあるディスクと
パーティションを指定してください.
SCSIドライブでなければ, wd0を,
SCSIドライブならば sd0です.
以下はカーネルのサポートするさまざまなファイルシステムおよ
びその他のオプションです.
これは, 数値演算コプロセッサがない
コンピュータ (386や486SX) で数値演算コプロセッサ
のエミュレーションを可能にします. もし, Pentiumや
486DX, あるいは387や487があれば, コメントアウト
できます.
4.3BSDとの互換性のためのオプションです.
そのままにしておいてください. コメントアウトすると,
いくつかのプログラムで動作がおかしくなります.
ISAデバイスやISA互換モードで動作する EISAデバイス
では DMA (Direct Memory Access) は16MB以下のメモリに対し
てのみ動作します. このオプションによりメモリが16MB以上
のシステムでDMAを使うデバイスを動作させることができます.
ユーザがコンソールを横取り (grab) できるようにします.
これは X Window System 上で便利です. 例えば, コ
ンソール xtermを xterm -Cとタイプして作ると,
そこに `write', `talk'などのメッセージがカーネルからコ
ンソールへ送られるメッセージと同じように表示されます.
このオプションは System V の共有メモリを提供します.
X Window System の XSHM拡張での利用がもっとも一般に見
られる例で, 多くのグラフィックを多用したプログラム
(movie player の Xanimや Linux DOOMなど) ではこれを
利用することで速度が増加するというメリットがあります.
X Window System を利用するのであればこれは間違いな
く含めたくなるでしょう.
System V のセマフォをサポートします. 一般的に利用される
ことは少ないですがカーネルサイズの増加は数百バイトだ
けです.
System V のメッセージをサポートします. これを指定した場
合もカーネルサイズの増加は数百バイトだけです.
これらのオプションはさまざまなファイルシステムへのサポート
を追加します. 少なくともブートするためのデバイスのサポートを含
める必要があります. 標準的にはハードディスクからブートするので
あれば FFS , ディスクレスワークステーションとしてイー
サネットからブートするのであれば NFSです.
一般的に利用される他のファイルシステムをカーネルに含め, あまり
利用しないファイルシステム (多分 MS-DOSファイルシステム?) のサポー
トをコメントアウトすることができます. これは Loadable Kernel
Module ディレクトリ /lkm から, 最初にそのタイプのファイ
ルシステムがマウントされる時に動的にドライバがロードされるからです.
基本的なハードドライブ ファイルシステムです. ハードディ
スクからブートする場合は残しておいてください.
ネットワーク ファイルシステムです. Ethernet経由で Unixファ
イルサーバからパーティションをマウントする予定がない場
合はコメントアウトすることができます.
MS-DOS ファイルシステムです. ブート時に DOSフォーマット
のハード ドライブをマウントする予定のない場合はコメン
トアウトしても安全です. 先に示したように, DOSパーティ
ションをマウントする時に自動的にロードされます. また
(ports コレクションにある) mtools という素晴
らしいソフトウェアにより mount , unmountなしで DOSフロッ
ピーにアクセスすることができます (これは MSDOSFSも必要
ありません).
CD-ROMのための ISO 9660 ファイルシステムです. CD-ROMを
持っていないか, 時々 データ CDをマウントするだけならコ
メントアウトしましょう (データ CDを最初にマウントする
時に動的にロードされます). オーディオ CDはこのファイル
システムは必要ありません.
プロセス ファイルシステムです. これは疑似的なファイルシ
ステムで /procにマウントされ, ps(1)などのプロ
グラムがプロセスに関してより詳しい情報を与えてくれるよ
うになります.
メモリマップド ファイルシステムです. これは基本的に一時
ファイルを記憶するための高速な RAMディスクで, 大きな
swap領域がある場合に有効です. MFSパーティションをマウ
ントするに適した場所は多くのプログラムが一時ファイルを
置く /tmpです. MFS RAMディスクを /tmp
にマウントするには以下の内容を /etc/fstabに追
加してリブートするか mount /tmpとタイプします.
Linux のファイルシステム.
ext2fs のサポートにより, Linux パーティションを読み書きすることができます.
これは, FreeBSD と Linux のデュアルブートシステムにおいて両者でデータを共有したい場合に有用です.
ディスククォータを有効にします. アクセスが公開されてい
るシステムで (一人のユーザが) /homeパーティショ
ン (全体) をあふれさせることができないようにそれぞれのユーザ
にディスククォータを発行することができます.
ディスククォータについての詳しい内容はの章を見てください.
この節では FreeBSDでサポートされているディスク, テー
プ, CD-ROMコントローラについて示します.
コントローラと カードについ
ては別の節になっています.
FreeBSDのサポートするすべての PCで必要です. IBM PS/2 (マイ
クロチャネルアーキテクチャ) では現時点では FreeBSDは動
きません.
PCIバスを持つマザーボードの場合は含めます. これにより
PCIカードの自動認識と PCIから ISAバスへのゲートウェイが
可能になります.
フロッピードライブコントローラです.
fd0 は ``A:'' ドライブで
fd1 は ``B:'' ドライブです. ft0 は
フロッピーコントローラに接続する QIC-80 テープドライブで
す. 対応するデバイスがない場合はそれぞれの行をコメント
アウトしてください.
プライマリIDEコントローラです. wd0 と
wd1はそれぞれマスタ, スレーブドライブで
す. wdc1 は セカンダリの IDEコントローラで3台
目, 4台目のハードディスクまたは IDE CD-ROMのある場合に
使います. 利用しない行はコメントアウトしてください (例え
ば, SCSIハードディスクのみを使う場合は6行全部をコメント
アウトしてもよいかもしれません).
このデバイスは IDE CD-ROMのサポートをします.
wdc0を有効にしておく必要があり, もし 2つ以上の IDE
コントローラがあり, そのうちの 2つ目のカードに CD-ROMを接
続する場合 options ATAPIを書いておく必要もあります.
npx0はFreeBSDハードウェアコプロセッサとソフト
ウェアエミュレータ両方の浮動小数点演算ユニットへのインタ
フェースです. これは device wt0 at isa? port 0x300 bio irq 5 drq 1 vector wtintr
Wangtek と Archive の
QIC-02/QIC-36 テープドライブのサポートです.
以下のようなドライブを proprietary(独自の)
CD-ROMドライブと呼ぶことにします. これらのドライブは専
用のコントローラを持つか, サウンドブラスタ16などのサウ
ンドカードに接続します. これらは IDEでも SCSIでもあ
りません. 多くの標準速や2倍速の古い CD-ROMはこれら
のインタフェースを持っていますが, より新しい四倍速の
ものは か でしょう.
ミツミ製 CD-ROM (LU002,
LU005, FX001D)です.
ソニー製 CD-ROM (CDU31,CDU33A)です.
松下/パナソニック製 CD-ROM (サウンドブラスタ用
クリエィティブ ラボ製として販売されていました) です.
この節では FreeBSDのサポートするいろいろな SCSIコント
ローラとデバイスのサポートについて書きます.
以下の十数行は異る種類の SCSIコントローラのサポートです.
使用しているもの以外の部分はコメントアウトしてください.
ほとんどの Buslogic社のコントローラです.
UltraStor 14F と 34F です.
Adaptec 274x/284x/294x です.
Adaptec 174x です.
Adaptec 154x です.
Adaptec 152x や サウンドカードなどに使われている Adaptec
AIC-6360 チップです. (slow!)
NCR 5380を使っている ProAudioSpectrum や Trantor T130 で
す.
Seagate ST01/02 8 ビットコントローラです. (slow!)
Western Digital WD7000コントローラです.
NCR 53C810, 53C815, 53C825, 53C860, 53C875 チップを使った
PCI SCSI コントローラです.
このオプションによりカーネルはそれぞれの SCSIデバイスを
プローブする前に 15秒間待ちます. IDEドライブのみを使用
している場合は無視して構いません. ブートを速くするため
にこの数値を 5秒ぐらいまで小さくしたいでしょう. そうし
た場合, FreeBSDが SCSIデバイスを認識しにくくなるかもし
れません. その時は、もちろんこのオプションの値は元に戻
さないといけません.
SCSIコントローラがある場合, この行で SCSI全般のサポー
トを与えます. SCSIのない場合, この行と以下の3つの行をコメ
ントにすることができます.
SCSIハードディスクのサポートです.
SCSIテープドライブのサポートです.
SCSI CD-ROM のサポートです.
上のエントリについている 2つのタイプのコンソールからどちらか1つを選ぶ必要があります.
標準ではない方の vt220 コンソールを選んだ場合, X Window System
を利用するには XSERVER オプションを有効にする必要があります
(訳注: sc0 には XSERVER オプション相当の機能が始めから入っています).
またバスマウスとPS/2マウスのオプションもあります.
sc0 はデフォルトのコンソールドライバで SCOコン
ソールに似ています. このデバイス, あるいは VT220コンパ
チブルドライバの vt0いずれを使う場合もほとんど
のフルスクリーンプログラムは termcapなどのターミ
ナルデータベースライブラリを通してアクセスしますので,
あまり違いはないでしょう.
このコンソールを使う場合でフルスクリーンプログラムでト
ラブルが起きる場合にはログインした時に TERM変数の値を
``scoansi''にしてください.
これはVT-220コンパチブルコンソールドライバで VT100/102の
上位互換です. これは sc0の使えない種類のラッ
プトップ機でもうまく動きます. ログイン時に TERM変数の値
を``vt100'' か ``vt220''にしてください. また, このドラ
イバはネットワークを介して多くの異るマシンから接続する
場合も便利です. sc0デバイスのための
termcapや terminfoエントリは必ずしも
利用できるわけではありませんが -- ``vt100''はいずれの
プラットフォームでも利用可能でしょう.
vt0 コンソールドライバを使う場合に必要で
す.
vt0 コンソールドライバを使う時のみ有効です.
これは vt0 コンソールドライバのもとで
XFree86 X サーバを動かすのに必要なコードを含めます.
Logitech や ATIのバスマウス入力カードを利用する場合のデ
バイスです.
このデバイスは PS/2マウスポートにマウスを接続する場合に
使います.
ほとんどすべてのシステムにこれらはあります. プリンタを接続す
る場合は の章が非常
に役に立つでしょう. モデムを使う場合は に非常に詳しいシリアルポートの設定とデ
バイスの使い方があります.
sio0からsio3は MS-DOSにおける COM1から
COM4に相当する4本のシリアルポートです.
COM4に内蔵モデムがあり COM2を使う場合, FreeBSDからアク
セスするためにはモデムのIRQを2へ変更する必要があるとい
うことを注意しておきます (技術的な理由より IRQ 2 = IRQ
9となります).
マルチポートシリアルカードを使う場合にマニュアルページ
のsio(4)にはこのオプションで使う値などのよ
り多くの情報があります. ビデオカードの中には (特に S3
チップベースのものには) IOアドレスの 0x*2e8から
を利用するものがあり, また多くの安価なシリアルカードは
IOアドレス空間を16-bitフルデコードしていませんので, こ
れらのカードは衝突します. この場合 COM4ポートは実質上
利用できません.
それぞれのシリアルポートは (割込みの共有をサポートした
マルチポートカードを利用していないのであれば) 別々の IRQ
を割り当てる必要がありますので COM3と COM4のデフォルトの
IRQは利用できません.
lpt0 から lpt2は利用可能な3本のプリン
タポートです. 多くの場合は1本のみですので他の2本はない
のであればコメントアウトして構いません.
FreeBSDでは他の一般的な Unixと同様にネットワークが
非常に 重視されています. イーサネットカードが
なくても必須のオプションとダイヤルアップ ネットワークのサポー
トに注意してください.
以下にさまざまなイーサネットカードを有効にするオプショ
ンを示します. ネットワークカードがなければこれらすべてを
コメントアウトすることができます. そうでなければ利用す
る特定のイーサネットカードをサポートするオプションを残
しておきます.
DECの DC21040, DC21041, DC21140チップを使った PCIイー
サネットアダプタです.
Intel EtherExpress Pro/100B 高速イーサネットカード
です.
3Com の 3C590, 3C595です (いくらか bugがあります).
Cronyx/Sigma の マルチポート同期/非同期カードです.
(with Cisco or PPP framing)
Western Digital と SMC の 80xx, 8216 Elite Ultra ;
ノベル NE1000, NE2000; 3Com の 3C503; HPの PC Lan Plus
(HP27247B とHP27252A) です.
3Com の 3C501 です. (slow!)
3Com の 3C505です.
3Com の 3C509 です(バグがあります).
富士通 MB86960A/MB86965A ベースのイーサネットカード
です.
DEC DEFEA EISA FDDI アダプタです.
AT&T StarLAN 10 と EN100; 3Com の 3C507;
NI5210 です.
Intel の EtherExpress 16です.
DEC の EtherWorks 2 and EtherWorks
3 (DEPCA, DE100, DE101, DE200, DE201, DE202,
DE203, DE204, DE205, DE422)です.
Lance/PCnet カード (Isolan, Novell NE2100,
NE32-VL)です.
IBM/ナショナルセミコンダクタの PCMCIA イーサネット
コントローラです.
3Com の PCMCIA Etherlink III です.
loop は TCP/IPの一般的なループバックデバイスで
す. telnet や FTPを localhost (127.0.0.1)
に対して行なうとこの疑似デバイスを通して帰ってきます.
不可欠です.
etherはイーサネットカードがある場合のみ必要で
一般的なイーサネットプロトコルを含めます.
sl は SLIP (Serial Line Internet Protocol) をサポー
トします. これはほとんど完全に, より簡単に設定ができ, モ
デム to モデム接続に適した, よりパワフルな PPPに取って代
わられています. slの後の number は同
時にいくつの SLIPセッションをサポートするかを示します.
SLIPの設定のより詳しい情報はこのハンドブックの
「PPPとSLIP」の章の
と について書かれた節にあります。
pppはダイヤルアップ インターネット接続のための
カーネルモード PPP (Point-to-Point Protocol) をサポート
します. ユーザアプリケーションとして tun を
利用する PPPの実装もあり, こちらはより柔軟性がありデマ
ンドダイアリング(プログラムが接続要求を出した時に自動
的にダイヤルをおこなう)などの機能もあります. それでもこ
の PPPドライバを利用したい場合は の節を読んでください.
slデバイスと同じように numberは同時
に PPP接続できる数を示します.
tun はユーザモード PPPソフトウェアが利用しま
す. このプログラムは設定が簡単で非常に高速です.
また自動ダイヤル オン デマンドなどの機能を持ちます.
tunの後のnumber は同時におこなうことのできる
PPPセッションの数を示します. の節により多くの情報があ
ります.
バークレイ パケットフィルタです. この疑似デバイスはネッ
トワークインタフェースを無差別 (promiscuous) モードにし
てネットワーク (例えば単一のイーサネット) にブロードキャス
トされるすべてのパケットを取り入れることを可能にします. こ
れらのパケットはディスクに取り入れられたり
tcpdump(1) によって検査されます. この機能の実現
はネットワーク全体のセキュリティとの微妙な妥協点であるこ
とに注意してください.
bpffilter の後の numberは同時に検査することの
できるインタフェースの数を示します.
危険の可能性について十分解っている場合を除いてこのオプ
ションは奨めません. すべてのネットワークカードでこの機能
をサポートをしてはいません.
ここは GENERICカーネルに含まれていない最初のセクションです.
サウンドカードのサポートをするためには LINTコンフィグレーショ
ンファイル(これにはすべてのデバイスが含まれています)か
ら以下のような適切な行をコピーする必要があります.
サウンドドライバ一般のコードです.
pcaを除く以下のすべてのサウンドカードで必要で
す.
ProAudioSpectrum のオーディオ と MIDI です.
SoundBlaster です.
SoundBlaster 16 の 16-bit オーディオです.
SoundBlaster 16 の MIDI インタフェースです.
SoundBlaster 16を使う場合必ずこの行を含めてコンパイル
してください.
Gravis Ultrasound です.
Microsoft Sound System です.
AdLib FMシンセサイザオーディオです.
AdLib, SoundBlaster, ProAudioSpectrum を使い
playmidi (ports にあります) などのプログラムで
MIDIの演奏をしたい場合にこの行を含めます.
Roland MPU-401 カードです.
MIDIインタフェースの 6850 UART です.
PC のスピーカーを使ったオーディオです. これは非常に品質
が悪く, CPUの性能, 負荷に強く依存します, と言っておき
ます (サウンドカードは必要ありませんが).
疑似デバイスドライバはデバイスドライバと同様に働きますがマ
シン上に対応する実際のハードウェアがないカーネルの部分です.
関連の
疑似デバイスはそちらのセクションに示しました. ここでは残りにつ
いて示します.
gzipは gzipによって圧縮された FreeBSDの
プログラムを実行できるようにします. /standにあるプログ
ラムは圧縮されているのでカーネルにこのオプションをつけ
ておくのはいい考えでしょう.
log はカーネルエラーのログを取るのに使います.
不可欠です.
pty は「仮想ターミナル」や仮想ログインポート
です. 外部からの スヌープデバイスです. この疑似デバイスはあるターミナル
セッションが watch(8) commandによって他のター
ミナルを監視することを可能にします. この機能の実現はセ
キュリティとプライバシに対して極めて微妙な関係があり
ます. snpの後の numberは同時におこなうことのでき
るスヌープセッションの総数です. 選択可能です.
Vノードドライバです. ファイルを vnconfig(8)コマ
ンドによってデバイスとして取り扱うことを可能にします.
このドライバによりフロッピーディスクイメージを操作したりファ
イルをスワップデバイスとして (MS Windowsのスワッ
プファイルなどを)用いることができます. 選択可能です.
ccd (concatenated disk)デバイスはいくつかのディスクパーティ
ションを融合して大きなディスクのように見せることができます.
ccdの後の numberは同時に作ることのできる疑似ディスクの数です.
(詳しいことは ccd(4)と ccdconfig(8)のマニュ
アルを参照してください.) 選択可能です.
この節は FreeBSDのここまでに示した以外のハードウェア
デバイスへのサポートについて示します. これらは GENERICカーネル
には含まれませんのでこのハンドブックや LINT (このファイルには
すべてのデバイスのサポートが含まれます) からコピーする必
要があります.
PC のジョイスティックです.
IBM BASIC スタイルの PC内蔵スピーカーのサポートです.
シェルスクリプトで簡単な演奏をする
/usr/sbin/spkrtest やキーボードを使って単純なピ
アノのように演奏することができる
/usr/games/piano (gamesパッケージをイ
ンストールした場合にはあります) のようないくつかのプロ
グラムで使われます. また素晴らしいテキストロールプレイ
ングゲームである NetHack (ports コレクションにあります)
はゲーム中の楽器の演奏でこのデバイスを使うように設定を
することができます (訳注:日本語化されたJNetHackもportsに
あります).
カーネル内のほとんどすべてのデバイスは対応する ``node'' エント
リが /dev ディレクトリにあります. これらのノードは普
通のファイルのように見えますが, 実際にはプログラムがデバイスに
アクセスするのに用いるカーネル内への特別なエントリです.
シェルスクリプトである /dev/MAKEDEVはオペレーティング
システムを最初にインストールする時に実行され, サポートされてい
る大部分のデバイスのノードを作ります.
しかし, すべてのノードが作られるわけではありませんので
新しいデバイスのサポートを加える時は対応するエントリがこのディ
レクトリにあるかどうか確認してもしなければ, 作ってください.
以下に例を示します.
IDE CD-ROMのサポートをカーネルに加えるとします. 次の行
を加えます.
カスタムカーネルを作る場合に起きるトラブルは4種類に分けられま
す.
カーネルにあなたの設定をおこなった場合で configコ
マンドが失敗したのであれば, 多分どこかで単純な間違いを
やっているのでしょう. さいわい, configはトラ
ブルの起きた行番号を出力しますので viで素早く
見つけることができます. 例えばもし次のように出力されれ
ば,
make コマンドが失敗した場合には, カーネル設定で
configがとらえられなかったような間違いをして
いることが多いようです. ふたたびコン
フィグレーションを見直してください. それでも問題を解決
することができなければ &a.questions
へあなたのカーネルのコンフィグレーションをつけてメー
ルしてください. 誰かが素早く間違いを見つけてくれるで
しょう.
新しいカーネルがブートしなかったり, デバイスの認識をしな
い場合でもあわてないでください! さいわい, BSDは利用で
きないカーネルから復帰する優れたメカニズムがあります.
FreeBSDの bootプロンプトでリターンキーを押すかわりに
単にブートさせたいカーネルの名前 (例えば
``kernel.old'') をタイプするだけです. カーネルの再設定
をおこなう場合に現在のカーネルを利用できるように取ってお
くのはよい考えです.
問題のないカーネルでブートした後にあなたのコンフィグレー
ションファイルを調べ, 再び構築を試みてください.
/var/log/messages ファイルにはすべての成功した
ブートのカーネルのメッセージやその他の記録があり, これ
は助けになる情報の一つでしょう. また,
dmesg(8)コマンドは現在のブート時のカーネルメッ
セージを出力します.
システムユーティリティと異るバージョンのカーネルをインス
トールした場合, 例えば 実験的に ``2.2.0''のカーネルを
2.1.0-RELEASEシステム上にインストールするような場合,
ps(1)や vmstat(8)のような多くのシ
ステムステータスコマンドは動かなくなります. libkvm を
再コンパイルしてこれらのユーティリティを作りなおす必要がありま
す. これは, オペレーティングシステムのそれ以外の部分と異るバージョ
ンのカーネルを使うことが普通はあまりよくない理由の一つです.
訳: &a.nishika;. FreeBSD は, EIDE と SCSI ハードディスクドライブをサポート
しています (互換コントローラも含みます: 次の節参照). また
オリジナルの "Western Digital" インタフェースを使用している
すべてのドライブも (MFM, RLL, ESDI, もちろん IDE も)
サポートしています. 独自仕様のインタフェースを使用する
ESDI コントローラでは動作しないものがあり, WD1002/3/6/7
とその互換インタフェースと衝突します.
サポートされている SCSI コントローラに接続できる SCSI
ドライブすべてをサポートしています.
また, 以下の専用 CD-ROM インタフェースもサポートしています.
SCSI でないカードはすべて, SCSI ドライブよりも極めて動作速度が
遅いことが知られており, ATAPI CD-ROM には動作しないものもあるようです.
Walnut Creek の FreeBSD 2.2 CD-ROM からは CD からの直接ブートが
サポートされています.
もちろん, FreeBSD は SCSI ZIP ドライブ (外付け) をサポートしています.
ZIP ドライブは SCSI ID を 5 か 6 に設定した状態でなら使用できますが,
もし SCSI ホストアダプタの BIOS がサポートしてさえいれば
ZIP ドライブからブートさせることもできます. 私はどのホストアダプタが
SCSI ID を 0 や 1 以外に設定したデバイスからブートできるのか知りませんが...
ドキュメントを参照してください (うまくいった場合は教えてください).
FreeBSD 3.0-CURRENT では, パラレル ZIP ドライブをサポートする
ようになりました. とはいえ, この ZIP を使うには, ppbus (パラレル
ポートバス) のサポートのために新しいカーネルを構築する必要があります.
LINT コンフィグレーションファイル中のサンプルを参照して下さい.
それから および
についても
確認しておいてください.
FreeBSD では, IDE バージョンの EZ ドライブを除くすべての SCSI デバイスは,
SCSI のディスクと同等に扱われます. また IDE EZ は IDE ドライブと同等となります.
も参照.
一覧は
無名のカードにもうまく動くものがあり,
特に AST 互換といわれているものに多く見られます.
カード設定の詳細な情報は,
FreeBSD は Microsoft, Logitech, ATI 等のメーカーから出ているバスマウス
と InPort バスマウスをサポートしています. バスマウスのデバイスドライバ
は GENERIC カーネルに標準で含まれています. もしバスマウスのデバイス
ドライバを含むカーネルを自分で構築する場合には,
カーネルコンフィグレーションファイルに以下の行を忘れずに加えて下さい.
通常バスマウスには専用のインタフェースカードが附属しています.
インタフェースカードによってはポートアドレスや割り込み番号を上記の
設定以外に変更できるかもしれません. 詳しくはバスマウスのマニュアルと
あなたの使っている FreeBSD がごく最近のバージョンのものなら,
必要なドライバの psm はカーネルに含まれていて有効になっています.
カーネルはブート時に PS/2 マウスを検出するでしょう.
あなたの使っている FreeBSD が比較的新しいけれど前のバージョンの
ものなら,
インストールの時に, 単にカーネルのコンフィグレーションのメニュー上で
PS/2 マウスを有効化するだけです, あるいは後で boot: プロンプト上で
-c を指定することでもメニューは現れます.
デフォルトでは無効に設定されていますので, 明示的に
有効化してあげないといけません.
あなたの使っている FreeBSD が比較的古いものなら,
カーネルコンフィグレーションファイルに以下の行を加えて
カーネルを再コンパイルする必要があります.
カーネルの再構築についてよく知らないのであれば,
- ブート時にカーネルが psm0 を検出したら, psm0 のエントリが /dev
の中にあることを確認してください. 以下のようにします.
これは root でログインしているときにおこなってください.
もしデフォルトのコンソールドライバである syscons を使っているので
あれば, テキストコンソール上でマウスを使ってテキストのカットアンド
ペーストができます. マウスデーモンである moused を起動し, 仮想コンソール
でマウスポインタを有効にして下さい.
ここで xxxx はマウスのデバイス名, yyyy はマウスの
プロトコルタイプです. サポートされているプロトコルタイプについては
システムを起動する時に自動的に moused を起動したい場合には, FreeBSD
2.2.1 では以下の変数を /etc/sysconfig で設定して下さい.
FreeBSD 2.2.6 以降では, マウスデーモンは比較的古いシリアルマウス
でない限りマウスのプロトコルタイプを自動判別できます. プロトコルタイプ
として ``auto'' を指定すると自動判別を行なおうとします.
マウスデーモンを実行中は, マウスデーモンと他のプログラム, 例えば
X Window System, の間でマウスへのアクセスを調整しなければなりません. この問題に
ついては を御覧下さい.
マウスデーモンを起動したあと
( を参照して下さい),
ボタン1 (左ボタン)を押しながらマウスを動かして範囲を指定して下さい.
ボタン2 (中ボタン)またはボタン3 (右ボタン)をクリックするとテキスト
カーソルの位置に選択した範囲のテキストがペーストされます.
FreeBSD 2.2.6 以降ではボタン2 をクリックするとペーストされ, ボタン3
をクリックした場合には既存の選択範囲が現在のマウスポインタの位置まで
延長または短縮されます. もしマウスに中ボタンがないなら, moused の
オプションを使って中ボタンのエミュレーションをするか, 他のボタンを
中ボタンとして使う事ができます. 詳しくは
答えは残念ながら「場合によります」です. こうしたマウスの付加的な機能は
大抵の場合特殊なドライバを必要とします. マウスのデバイスドライバや
ユーザのプログラムがそのマウスに対する固有のサポートをしていない場合には
標準的な 2ボタンまたは 3ボタンマウスのように振舞います.
を参照してください.
加えて, にあるモーバイルコンピューティングの
ページもご覧ください.
FreeBSD は SCSI, QIC-36 (QIC-02 インタフェース付き) および
QIC-40/80 (フロッピーベース) テープドライブをサポートしています.
これらには 8-mm (Exabyte と呼ばれています) や DAT ドライブも含まれています.
QIC-40/80 ドライブは遅いことが知られています.
初期の 8-mm ドライブの中には SCSI-2 とまったく互換性を持たないものがあります.
これらは FreeBSD 上では動作しません.
FreeBSD 2.2 は 使用している製品が, FreeBSD は SoundBlaster, SoundBlaster Pro, SoundBlaster 16,
Pro Audio Spectrum 16, AdLib それから Gravis UltraSound サウンドカードを
サポートしています. MPU-401 やその互換カードも機能に制限はあるものの
サポートされています. マイクロソフトサウンドシステムのスペックに準拠
したカードも, pcm ドライバでサポートされています.
より完全な一覧については 一般にこれらは問題とはなりません. しかし, 数値演算エミュレーションコードの
パフォーマンスか正確さのいずれかを選択する状況があります.
( についての節をご覧ください).
とくに, X 上で弧を描く際にとても遅くなることでしょう.
数値演算コプロセッサを購入されることを強くおすすめします.
とても役立つことでしょう.
FreeBSD は一部のマシンの APM をサポートしています.
の部分をご覧ください.
/usr/src/sys
以下のディレクトリがなければ, カーネルのソースが
インストールされていません. パッケージのインストール手順にしたがっ
て, システムにインストールしてください.
つぎに, i386/confに移動して, GENERIC
コンフィグレーションファイルをカーネルに与えたい名前に
コピーしてください. たとえば:
では, MYKERNELをあなたの好きなエディタで編集してください.
もし, システムをインストールしたばかりならば, 利用できる
エディタは viだけかもしれません. ここでは使い方
の説明はしませんが, にあるような多くの本で詳しく説明
されていますので, そちらを参照してください.
まずファイルの最初の方のコメント行を編集し, あなたのコンフィグ
レーションに合せて変更した点などを記述して GENERICと区別がつく
ようにしておきましょう.
もし SunOSや他の BSDオペレーティングシステムでカーネルの
再構築をしたことがあれば, このファイルはとても親しみ
やすいでしょう. しかし, DOSのようなその他の
オペレーティングシステムしか知らない人から見れば,
GENERICコンフィグレーションファイルはとても
なじみにくいものかもしれません. そのような場合は,
の節をゆっくりと注意深く読んでください.
config(8)を取ってくる必要があるかもしれません. これは
- /usr/src/usr. sbinにあります. したがってこれらのソースをダ
+ /usr/src/usr.sbinにあります. したがってこれらのソースをダ
ウンロードする必要があります. 次のコマンドを実行する前に
(configを)作りインストールをしておいてください.
編集し終ったら, 次のコマンドによってコンパイル, インストール
を行ってください.
/devディレクトリで
デバイスノードを追加しなければならないかもしれません.
詳しくは, を読んでください.
注: 数字を含むキーワードはすべて
クォーテーションマークで囲む必要があります.
そうしないと, configは混乱し,
386を実際の数値として扱ってしまいます.
maxuserはあなたのマシン
にログインできるユーザの数を制限するものでは
ありません. 単に, あなたのシステムに
ログインするユーザ数の最大値と各々のユーザが
いくつのプロセスを走らせるかを考慮することに
よってさまざまなテーブルの値を適切な値に設定
するだけです. これに対し, の remote loginsというキーワードは
同時にリモートログインできるユーザ数を制限
します.
注: FreeBSD付属の数値演算
コプロセッサエミュレータはあまり正確では
ありません. 非常に正確な計算をおこないたい
ならば, より優れた GNUのエミュレータである
GPL_MATH_EMULATEに変えることを
おすすめします. これはライセンスの関係でデフォルトでは
含まれていません.
ipcs(1) コマンドは
これらの System V の機構を利用しているプロセスを表示し
ます.
訳注: 共有メモリ, セマフォ, メッセージ(メッ
セージキュー) は System V系 で一般的なプロセス間通信の機
構です. くわしくは System Vのプロセス間通信に関する文
献, 「詳解 UNIXプログラミング」 (ソフトバンク) , 「UNIXネッ
トワークプログラミング」 (トッパン) などを参照してくださ
い.
/dev/wd1s2bをあなたが使用して
いるswap パーティションに置き換えてください. これは以
下のように /etc/fstabに書かれているでしょう.
/tmpデ
バイスにアクセスすることはできません). そのためいまの
ところは使わない方が無難です. --> また, MFSファ
イルシステムは動的にロードすることはできません
. したがって使いたい場合はコンパイル時に
カーネルに含める必要があります.
ft(8)というフィルタプログラムが必要です.
くわしくはマニュアルページを見てください.
ポート(おそらくはCOM1)を有効にしてくだ
さい.
irq 7をirq
5に書き換え, キーワード conflictsを削除し
てください. さらに options ``SBC_IRQ=5''の行を
加える必要があります.
drq 5を適切な値に書き直
して, (DMA 6の場合) options "SB16_DMA=6"を付け
加えてください.
/usr/src/sys/i386/isa/sound/sound.docにあります.
また, これらのデバイスを追加する場合は, サウンドを作る必要があり
ます.
/devの
エントリを使用しますのでノードを作る必要はありません. またネッ
トワークカードと SLIP/PPP疑似デバイスは /devにはエント
リがありませんのでこれらについても作る必要がありません.
kernel. oldは新しいカーネルをインストールする
時に, その一つ前にインストールしたうまく動かないかもしれ
ないカーネルで上書きされてしまいますので当てにできませ
ん. またできる限り早く動作しているカーネルを本来の
``kernel''の位置に移動させてください. そうしないと
ps(1)のようなコマンドが正しく動きません.
make でインストールされたカーネルのファイルを
(別のカーネルに戻すために) 「アンロック」するための特別
のコマンドは