------------------------------- PAO-FAQ PAO3 for 3.x-RELEASE ------------------------------- BSD-nomads Team, Japan bsd-nomads@clave.gr.jp PAO は FreeBSD によるモーバイルコンピューティングユーザたちのための総 合的なパッケージです。PAO には FreeBSD PC カードドライバ、FreeBSD APM ドライバの拡張、そしてその他諸々のユーティリティやデーモンが含まれてい ます。PAO は Andrew McRae による FreeBSD PCMCIA ドライバの初期の仕事と、 Tatsumi Hosokawa による FreeBSD APM ドライバをベースにしており、現在で は BSD-nomads team (bsd-nomads@clave.gr.jp) が開発と保守を行っています。 ここに書かれている内容はかなり古い場合がままあります。合点のいかない情 報が書かれていたら bsd-nomads メーリングリストへ問い合わせてみてくださ い。また、修正情報や自分のノウハウなどを公開しても良ければ、我々に教え ていただくと助かります。FreeBSD QandA (http://www.jp.FreeBSD.org/QandA/) も参考にしてください。 目次 --------------------------------------------------------------------- *New* 新しい Q&A *Upd* 更新された情報 1. 総合情報 [100] PAO ってどういう意味? [101] PAO ホームページの URL は? *New* [102] PAO3 って何? *New* [103] 4.0-RELEASE 用の PAO はないの? *New* [104] 今後の PAO はどうなるの? *New* [105] PAO 関連の話題を扱うメーリングリストは? *New* [106] 最新版の PAO の取得方法は? *New* [107] PAO CVS リポジトリについて 2. サポートハードウェア [200] PAO はどのような PC カードをサポートしているの? *Upd* [201] PAO はどのようなラップトップをサポートしているの? *New* [202] PAO はどのような PC カードコントローラをサポートしているの? *New* [203] SUPPORTED.CARDS にないカードが動作しましたが、 どこに報告したら良いですか? 3. APM BIOS *Upd* [300] APM ってどういう意味? *Upd* [301] APM BIOS を使用するとカーネルがハングする。なぜ? [302] apm(8) や zzz(8) が使用できません。なぜ? [303] システムクロックが、マシンが眠っていた間の時間だけ遅れて しまい、レジュームしても元に戻りません。なぜ? *Upd* [304] 私のラップトップはサスペンドから復帰した時にハングします。 なぜ? *New* [305] apmd(8) を使うと何が嬉しいのですか? *New* [306] サスペンドから復帰したあと PC カードが使用できません。 どうすれば良いのでしょうか? 4. PC Card コントローラ [400] PC Card コントローラを認識できません. 2.2.6-RELEASE まで は問題なくインストールでき使えていました. しかし, 2.2.7-RELEASE 以降 や PAO3 for 3.x-RELEASE ではインストー ル出来ず困っています. [401] カードを抜くとフリーズしてしまいます。 どうやってこのトラブルを回避できますか? [402] PAO を私のマシンにインストールしたのですが、なにもカード を入れてない時でもマシンが頻繁にカードが挿入された、ある いは抜かれたと報告してきます。なぜ? [403] PAO を私のマシンにインストールしましたが、カードの挿入、 抜きだしを一切マシンは報告してくれません。なぜ? [404] カードを入れても、システムは「CIS code read: Cannot allocate memory」というだけです。なぜ? [405] 私のラップトップは「Slot ?, unfielded interrupt (?)」と いっています。なぜ? 5. PC Card [500] カーネルブートメッセージは私の PC カードが見つからなかっ たといっています。なぜ? *Upd* [501] 私の PC カードは pccardd によって認識されませんでした。 どうやったら使用できますか? [502] 私のラップトップは I/O アドレスの 0x240 を他のデバイスが 使用しているのですが、config ファイル中の対応するデバイ スの I/O アドレスの記述を 書き変えたにもかかわらず、I/O アドレスを変更できません。どうやったら I/O ポートの変更 が可能なのでしょうか? *Upd* [503] 私のラップトップは IRQ 10 を他のデバイスで使用しています。 ところが、config ファイル中の "device" 宣言を変更しても IRQ を変更することがで きません。どうしたら IRQ を変更で きるでしょう? *New* [504] /etc/pccard.conf を再読み込みするにはどうするの? 5.1. Ethernet [510] 2 枚のネットワークカードを一つのラップトップに挿して、ゲー トウェイとして使用するにはどうしたらいいのですか? [511] /etc/pccard.conf のエントリーは正しく思えるのに、NE-2000 互換イーサネットカードのプローブに失敗します。なぜ? [512] 私の WaveLAN カードは正しくプローブされますが、使うこと ができません。 [513] 使用するドライバによってメッセージは多少異なりますが、イー サネットカードを挿入したとき、ed0: device timeout がでて 機能しません。 5.2. FAX/モデム [520] カーネルは私のモデムを "sio2" としてアタッチしたといって いるが、/dev/sio2 はない。なぜ? [521] PCMCIA FAX/Modem カード (あるいは他のシリアルカード) の プローブに失敗します。なぜ? 5.3. Flash ATA/ATA HDD/ATAPI CD-ROM *New* [530] IDE コントローラ (wdc?) を利用する PC カードを使いたいの ですが、どのように設定すればいいですか? *Upd* [531] Flash ATA ディスクをマウントするには? [532] ATAPI CD-ROM, CD-R/RW をマウントするには? *Upd* [533] function fixed_disk を試すのはどのようにすればいいのでしょ うか? 5.4. SCSI [540] 以前は使えていた SCSI PC Card を PAO3 で認識しません。なぜ? 5.5. ビデオキャプチャ [550] どうやって / どこで IBM Smart Capture Card は入手できま すか? [551] xscc 以外に IBM Smart Capture Card のアプリケーションは ありますか? 5.6 マルチファンクションカード [560] PAO はマルチファンクションカードをサポートしていますか? 5.7 CardBus [570] PAO は CardBus をサポートしていますか? 6. システムインストール [600] PAO のサポートする PC Card 経由で FreeBSD のインストール がしたいのだけれども、どうすればいいの? [601] FreeBSD がインストールされたシステムを PAO 化するにはどう したらいいの? [602] PAO boot.flp を利用して、PC Card 経由で FreeBSD のインス トールを行ったのですが、インストール後 PC Card が利用出来 なくなってしまいました、なぜなんでしょう? [603] 自分のマシンの /stand/sysinstall は古いので、最新版に入れ 換えたいのですがどうしたらいいの? [604] /etc/rc.conf 中の変数の設定はどうするの? [605] IBM ThinkPad 3xx シリーズを使っていて、FreeBSD をインス トールしたいのだけれども、FreeBSD のキーボードドライバが 正しくキーボードをハンドルできません。というわけで、 FreeBSD をインストールできません。なぜ? *Upd* [606] システム起動時にネットワーク系のデーモン (named,httpd, sambaなど) がうまく立ち上がりません。起動後に手動で実行 すれば動くので、設定は問題ないと思うのですが? *Upd* [607] PAO システムで "Gated" が動きません。なぜ? *Upd* [608] PC カードの IRQ と I/O アドレスを UserConfig ("boot -c") を使って変更しようとしたのですが、効果ありませんでした。 なぜ? [609] カーネルコンフィギュレーションの I/O ポートの設定と、 /etc/pccard.conf の config index での指定が食い違ってま すが、なぜ? -------------------------------------------------------------------------- 1. 総合情報 ~~~~~~~~~~~ [100] PAO ってどういう意味? PAO は遊牧の民のためにたっています (笑)。 [101] PAO ホームページの URL は? http://www.jp.FreeBSD.org/PAO/index-j.html です。 [102] PAO3 って何? 3.X-RELEASE 用の PAO のことです。 2.2.X-RELEASE 用の PAO と区別したいとき用います。 [103] 4.0-RELEASE 用の PAO はないの? ありません。また、開発の予定もありません。 現在 PAO のコードを本家に反映させるような作業がおこなわれてい ますが、現状でも以前に比べればだいぶましになっていると思います。 長い目でみてやってください。 [104] 今後の PAO はどうなるの? かなり個人的見解ですが、PAO3 の保守は暫く続けられると思います。 その後はどうなるか未定です。 [105] PAO 関連の話題を扱うメーリングリストは? リリースの案内などは announce-jp@jp.FreeBSD.org 及び bsd-nomads@clave.gr.jp に日本語で流されます。それ以外の一般の 質問、バグ報告、パッチなどは以下のどちらかへお願いします。 FreeBSD-mobile Mailing List (英語) 宛先: freebsd-mobile@FreeBSD.ORG 入会方法: http://www.FreeBSD.org/handbook/eresources.html BSD-nomads Mailing List (日本語) 宛先: bsd-nomads@clave.gr.jp 入会案内: http://www.jp.FreeBSD.org/ml.html#bsd-nomads [106] 最新版の PAO の取得方法は? PAO ホームページ http://www.jp.FreeBSD.org/PAO/index-j.html を 見てください。各リリース用の最新版が入手できるでしょう。 PAO3-2000xxxx.tar.gz 等のソースキット版は、 ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/ PAO3-freebsd3x-xxxxxx-snap.tar.gz 等の snapshot は、 ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/snap/ PAO インストールフロッピー boot.flp, kern.flp, mfsroot.flp, PAO バイナリ配布 (paobin) / ソース配布ファイル (paosrc) は、 ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/ 等にあります。 [107] PAO CVS リポジトリについて PAO は home.jp.FreeBSD.org の CVS リポジトリで保守されています。 このマシンにアカウントがあれば適切に CVSROOT を設定して cvs で アクセスできます。 より一般には CVSup を使用します。cvsup のインストール方法は、 http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/handbook/cvsup.html を参照してください。設定ファイルは以下の様に記述します。 ---- # PAO3 for 3.x-RELEASE *default host=cvsup.jp.FreeBSD.org *default base=/somewhere/you/want/to/put *default prefix=/somewhere/you/want/to/put *default release=cvs tag=. *default delete use-rel-suffix *default compress # collections jp-pao3 ---- また cvsweb で各 revision との差分などを確認できます。 http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/PAO3/?cvsroot=freebsd-jp 2. サポートハードウェア ~~~~~~~~~~~~~~~~~~~~~~~ [200] PAO はどのような PC カードをサポートしているの? パッケージ中の SUPPORTED.CARDS.jp をお読み下さい。 最新版は、以下の URL を参照してください。 http://home.jp.FreeBSD.org/~toshi/PAO3/SUPPORTED.CARDS.jp また、カードデータベース /etc/pccard.conf の最新版は、 以下の URL から取得できます。 http://home.jp.FreeBSD.org/~toshi/PAO3/pccard.conf.sample [201] PAO はどのようなラップトップをサポートしているの? Laptop Survey / FreeBSD をご覧ください。そして、あなたの現在の マシン環境を書いて送って下さると嬉しいです。また、PAO を使って いないケースについても情報をお待ちしています。 http://www.jp.FreeBSD.org/PAO/LAPTOP_SURVEY/index-j.html [202] PAO はどのような PC カードコントローラをサポートしているの? PAO の PC カードドライバは以下の PC カードコントローラを サポートしています。 Intel i82365SL (と互換チップ) Cirrus Logic PD-6710 Cirrus Logic PD-6720 Cirrus Logic PD-6722 Cirrus Logic PD-6729 (PCI-PCMCIA ブリッジ) Cirrus Logic PD-6730 (PCI-PCMCIA ブリッジ) IBM PCIC (一部の ThinkPad 用) IBM KING O2micro OZ6729 (PCI-PCMCIA ブリッジ) O2micro OZ6730 (PCI-PCMCIA ブリッジ) Ricoh RF5C296 (i82365 互換) Ricoh RF5C396 Vadem 468 Vadem 469 VLSI 82C146 PAO は以下の PC カードコントローラをサポートしていません。もし あなたがこれらのコントローラを持つラップトップを持っている場合 は、ぜひ PAO のためのこれらのコントローラのドライバを書いて下 さい (笑)。 Databook TCIC (いくつかのいにしえののラップトップ用) ただし、いくつかの PCI-CardBus ブリッジは i82365 互換モードで 動作します。現在、以下のチップセットでテストが行われています。 Cirrus Logic PD-6832 Texas Instruments PCI-1130 Texas Instruments PCI-1131 Texas Instruments PCI-1220 Texas Instruments PCI-1221 Texas Instruments PCI-1250 Toshiba ToPIC95 Toshiba ToPIC97 Ricoh RL5C465 Ricoh RL5C475 Ricoh RL5C476 Ricoh RL5C478 もしあなたの PC カードコントローラがサポートされていなかった場 合は、ぜひ私 (hosokawa@jp.FreeBSD.org) か BSD-nomads team (bsd-nomads@clave.gr.jp) の方までお知らせ下さい。 ハックのために、以下の情報を求めています。 o あなたのマシンの PC カードコントローラの名称 (例: Cirrus Logic 6832) o (もしあなたの PC カードコントローラが PCI - PC カー ドブリッジか、PCI-CardBus ブリッジであった場合) [203] SUPPORTED.CARDS にないカードが動作しましたが、 どこに報告したら良いですか? 新たにカードが動作した場合や、動作すると書かれているにもかかわ らず動作しない場合は PAO Report まで レポートを送ってください。 書式は、 PC Card (メーカ名と商品名) 及び 動作 OK/NG ドライバ名 (例 sio, ed, 等) FreeBSD バージョン PAO リリース日付 (例. PAO3-YYYYMMDD, see README.install) pccardc dumpcis の結果 それとなにか特殊な設定が必要ならそれらの記述と、 付属の pccard.conf.sample で動作しなければ追加のエントリです。 3. APM BIOS ~~~~~~~~~~~ [300] APM ってどういう意味? マイクロソフトとインテルの "Advanced Power Management" (先進的 な電源管理) のことです。が、その後の ACPI (Advanced Configuration and Power Interface) の普及により少々古臭いものとなっているよ うで、そのため規格書についても公けには入手は困難かもしれません。 現在のところ http://www.microsoft.com/HWDEV/busbios/amp_12.htm から入手するしかなさそうですが、興味のある人は bsd-nomads メー リングリストなどで問い合わせてみると何か反応があるかもしれませ ん。(^^; [301] APM BIOS を使用するとカーネルがハングする。なぜ? いくつかのプロテクトモード APM BIOS の実装は、深刻なバグを含ん でいます。さらに最近では ACPI の普及によって APM BIOS の実装に おざなりなものもあるようで、なかなか一筋縄ではいきません。一昔 前では APM BIOS のバグを直すために BIOS が更新されたりもしまし たが、Windows 98 以降では APM は使われないため現実問題として、 BIOS のアップデートという技も使えないでしょう。 そこで我々は、カーネルのソースを書き換えることによってこれらの 問題と「共存して」いく道を選ばざるをえませんでした。もし問題が 解決できたら、その解決 (そしてもちろんあなたの環境) について、 我々にレポートを送って下さい。もしあなたがハッカー (世間一般の 方誤解しないように) でないなら、UserConfig ("boot -c") でカーネ ルを立ちあげ、単に "disable apm0" と叩きましょう :-)。 APM BIOS ドライバは、UserConfig からいくつかの非互換性問題に対 処するための設定が可能です。デバイス apm0 は "flags" マスクを この目的のために使用します。また同様の意味を持つカーネルオプショ ンも存在しますが、歴史的な事情により PAO と本家 FreeBSD の間に は、非互換性が存在しますので注意してください。APM ドライバにつ いては LINT の情報をあてにしないでください。 o flags 0x02 または options "FORCE_APM10" いくつかの APM 1.1 と呼ばれている APM BIOS は不完全な APM 1.1 規格の実装となっています。このフラグは APM BIOS が報告したバージョン番号に関わらず、1.0 互換モードで APM BIOS をドライブします。 o flags 0x08 または options "APM_FORCE_64K_SEG" APM BIOS が間違ったセグメントリミットを返す実装において、 これを強制的になんとかしようというものです。実際に IBM ThinkPad 530Cs ではどちらかを指定しないとブート時にカー ネルが PANIC します。 [302] apm(8) や zzz(8) が使用できません。なぜ? apm(8) (zzz(8) は `apm -z' のハードリンクショートカット) は、 APM BIOS ユーティリティです。これは APM BIOS デバイスファイル /dev/apm を APM を制御するために使用します。/dev/apm のパーミッ ションビットは crw-rw---- 1 root operator 39, 0 Jun 15 15:58 /dev/apm に設定されています。これは /dev/apm は `operator' グループとし て登録されたユーザ、あるいはスーパーユーザのみからアクセスが可 能であるということを示しています。もし apm(8) (と zzz(8)) を使 用したい上に、この用途のために su(1) を使用したくない場合は、 /etc/group を編集してあなた自身を `operator' グループとして登 録して下さい。 [303] システムクロックが、マシンが眠っていた間の時間だけ遅れてしまい、 レジュームしても元に戻りません。なぜ? 多分、/etc/rc.conf の apm_enable 変数に YES を設定し忘れたので しょう。 [304] 私のラップトップはサスペンドから復帰した時にハングします。なぜ? もちろん多くの理由があります。例えば、私は以下の問題を経験しま した。 o APM BIOS 自身が不安定 :-)。 o FreeBSD によってサポートされていないデバイス (サウンドカード、 USB、内蔵モデム、など…) が、システムがレジュームする際に割 り込みを起こしている。現在のコードでは PC カードに割り当てら れる IRQ は、明示されない限りフリー IRQ プールから割り当てら れます。したがって、サポートされていないデバイスは PC カード に割り当てられた IRQ と同じ IRQ を持つことがありえます。この ようなマシンでは、次のような方法でこの問題を避けることが可能 かもしれません。 - あきらめず、もう一度そのデバイスを FreeBSD から使う ことを試みる。例えば USB については PAO_ALL に含まれ ないだけで、設定を追加してカーネルを再構成すれば使え るようになるでしょう。 - サポートされないデバイスを BIOS setup から無効化する。 しかし、これを行なうと、Windows からもそのデバイスを 使用することができなくなります。 - /etc/pccard.conf で問題の IRQ をフリー IRQ プールか ら除外する。詳しくは pccard.conf の ignirq キーワー ドを参照してください。 o たとえ問題とされるデバイスが FreeBSD によってサポートされて いたとしても、同様の理由で、適切にドライバを設定するか、BIOS setup からデバイスを無効化する必要があります。デバイスを未使 用の状態で放置しないようにして下さい。 [305] apmd(8) を使うと何が嬉しいのですか? それはもう大変嬉しいのです。(^^; SUSPEND/RESUME イベントに際してユーザランドから簡単にフックを 掛けることができます。具体的な例ではリジュームした際、マウスが 上手く動作しなくなるような機種でも、moused に HUP シグナルを送 れば動作するようになるケースにおいて、/etc/apmd.conf をカスタ マイズすることでこれを自動的におこなう事ができます。それ以外で も PC カード使用中にはサスペンドを禁止するといった用途も考えら れます。(もちろんこういった事が可能かどうかはマシンにも依存し ます) [306] サスペンドから復帰したあと PC カードが使用できません。 どうすれば良いのでしょうか? おそらくリジューム後に PC カードコントローラの再設定が必要なも のと思われますが、とても一言では説明できません。是非 bsd-nomads メーリングリストに入会して症状などを報告してみてください。なに か進展があるかもしれません。 4. PC Card コントローラ ~~~~~~~~~~~~~~~~~~~~~~~ [400] PC Card コントローラを認識できません. 2.2.6-RELEASE までは問題な くインストールでき使えていました. しかし, 2.2.7-RELEASE 以降 や PAO3 for 3.x-RELEASE ではインストール出来ず困っています. 2.2.7-RELEASE の PAO から, Cirrus Logic PD6729 などの PC Card コントローラ(以下 PCIC)に対する初期化部分のコードが変 更になりました. そのため PCIC の I/O ポートを正しく指定しな いと, 認識できない場合があります. ノートパソコンの BIOS によって, いろいろな設定法の組み合わせ があるので, ここでは, 簡単に解法を示します. 解決できない場合に は, お気軽に PAO の開発を主に行っている, BSD-nomads メーリング リストで質問してみてください. この問題も, 最終的には自動的に処理されるようになると思います. A1. BIOS で PCIC の I/O ポートを指定できる場合には, PAO のデフ ォルトの 0x3e0 など指定すると良いでしょう. A2. BIOS で, 回答 A1. のような設定ができず, Plug & Play O/S = [Yes/No] の指定しか出来ない場合には, まず, PnP OS = [No] とし ます. すると PCIC の I/O ポートなどは, BIOS が適当に割り振って くれます. この場合, BIOS が割り振った値をインストーラのカーネルに教え て認識させます. そのためには, 一度 BIOS の割り振った値を得るた めだけにインストールフロッピーで起動します. そして, 再度起動し て, 値を指定しすると, PCIC/PC Card を無事認識できインストール 作業に入れます. 第一ステップの値を得る方法は. まずインストールフロッピーで起 動し、第三ステージの boot プロンプトで boot -v を指定します. す ると, 次のような表示がされると思います. -------------------------------------------------------------------------- pcic0 rev 254 class 60500 int a irq ?? on pci0:19:0 mapreg[10] type=5 addr=0000fcfc size=0004. ~~~~~~~~ bus = 0, slot = 19, func = 0 -------------------------------------------------------------------------- この 0000fcfc が BIOS によって割り振られた PCIC の I/O ポー ト番号です. この値を確認できたならば, とりあえず, この状態では, PCIC/PC Card は認識できていないと思いますので, リセットするな りして, 再起動します. (0000fcfc の値の表示が瞬間で見えない場合 には, ScreenLock を行い, カーソルキーなどを用いて, 画面を戻し てください, 英語(English)モードである必要もあると思われます) 第二ステップでは, 再起動させ値を指定します. ここでは, [Kernel Configuration Menu] で, [Start kernel configuration in CLI mode] での設定法を示すと. config> で次のようにすると良い です. config> port pcic0 0x0000fcfc config> q これで無事 PC Card が認識でき, 2.2.6-RELEASE 以前と同じよう にインストールできると思います. [401] カードを抜くとフリーズしてしまいます。 どうやってこのトラブルを回避できますか? 現在のバージョンでは、特定のシリアルカード (あるいは特定のマシ ン) を動作している状態で抜くことが不安定です。'xpccard' や、 'pccardc' の 'power' サブコマンド (i.e. pccardc power 0 0) を 使用して、まずカードを休眠状態にすることによって、これらのカー ドを安全に抜くことができます。 [402] PAO を私のマシンにインストールしたのですが、なにもカードを入れて ない時でもマシンが頻繁にカードが挿入された、あるいは抜かれたと報 告してきます。なぜ? おそらくあなたのマシンには、FreeBSD によって検出も登録もされな かった内蔵デバイスがあるのでしょう (例えばサポートされていない サウンドカードなど)。もしこれらのデバイスを BIOS setup スクリー ンから無効化できるのであれば、無効化してテストして下さい。 二度とこのような問題がおこらなければ、PC カードコントローラと サポートされていない内蔵デバイスがトラブルの原因でしょう。 PC カードコントローラの IRQ は config ファイルの device pcic0 に irq オプションで以下のように指定されています。 device pcic0 at isa? port 0x3e0 irq 11 これを変更するには、UserConfig ("boot -c") で "irq pcic0 7" とするか、config ファイルを変更してカーネルを生成します。例え ば、 device pcic0 at isa? port 0x3e0 irq 7 のようにです。 この際、以下のことを気をつけて下さい。 1. BIOS setup からプリンタのパラレルポートを無効化できれば、 IRQ 7 を自由に使用することができます。 2. COM2 を BIOS setup から無効化できれば、IRQ 3 を自由に使用で きます。一般的には、COM2 を無効化するとシリアルマウスが使用 不可能となります。 3. COM1 を BIOS setup から無効化できれば、IRQ 4 を自由に使用す ることができます。 4. もしあなたのマシンが PS/2 マウスも PS/2 互換トラックボール/ トラックパッドも持っていなければ、IRQ 12 を自由に使用するこ とができます。 [403] PAO を私のマシンにインストールしましたが、カードの挿入、抜きだし を一切マシンは報告してくれません。なぜ? おそらく一つ前の質問と同じ原因でしょう。 [404] カードを入れても、システムは「CIS code read: Cannot allocate memory」というだけです。なぜ? おそらく /etc/rc.conf 中の "pccard_enable" パラメータの有効化 を忘れているのでしょう。 [405] 私のラップトップは「Slot ?, unfielded interrupt (?)」といってい ます。なぜ? 問題ありません。気にしない (笑)。 5. PC Card ~~~~~~~~~~ [500] カーネルブートメッセージは私の PC カードが見つからなかったといっ ています。なぜ? 問題ありません。カーネルは pccardd デーモンと /etc/pccard.conf に記録されたカードデータベースなしにはカードを発見することはで きません。PC カードはブート時には検出されません。pccardd によっ て後に発見され、登録されます。 [501] 私の PC カードは pccardd によって認識されませんでした。 どうやったら使用できますか? まずそのカードについての情報が必要です。例えば他のカードの互換品 であるとか、コントローラチップの名称や型番、実際にどのドライバで 動作するはず、といったものです。 次に実際の PC カードをスロットに挿入して、CIS タプルをファイルに 保存しておきます。 % pccardc dumpcis > foo FAX/Modem カードについては、まず [521] を参照してください。 Flash ATA/ATA HDD/ATAPI CD-ROM では [530] を参照してください。 それ以外の一般的な PC カードについては、CIS タプルの情報の中で "Version 1 info" の情報に注目します。例えば以下のような CIS タプ ルを持つカードがあります。 ------CIS タプル------ Tuple #5, code = 0x15 (Version 1 info), length = 46 000: 04 01 33 43 6f 6d 00 4d 65 67 61 68 65 72 74 7a 010: 20 35 38 39 45 00 54 50 2f 42 4e 43 20 4c 41 4e 020: 20 50 43 20 43 61 72 64 00 30 30 35 00 ff Version = 4.1, Manuf = [3Com],card vers = [Megahertz 589E] Addit. info = [TP/BNC LAN PC Card],[005] ------CIS タプル------ この情報から、pccardd がカードを特定するためのエントリを /etc/pccard.conf に記述します。 card "3Com" "Megahertz 589E" 必要に応じて "Addit. info" の情報でさらに厳密に記述することもで きますが、pccardd が誤認識しなければ問題ありません。 card "3Com" "Megahertz 589E" "TP/BNC LAN PC Card" "005" なお、これらは全て正規表現で記述します。 次の行にデバイスと割り当てるリソースを指定します。このカードは "ep" ドライバで動作するので、以下の行を追加します。 config auto "ep0" any auto は自動的に I/O ポートを調整します。any も同じく IRQ を自動 的に割り当てます。この自動調整機能がうまく動作しないときは、 [502] や [503] を参照してください。 最後に、このカードはネットワークカードなので以下のようなエントリ が完成します。この後 pccardd を kill -HUP するかリブートして新た なエントリを有効化します。 # 3Com Megahertz 3CXE589ET card "3Com" "Megahertz 589E" config auto "ep0" any insert logger -s 3Com Megahertz 3C589E inserted insert /etc/pccard_ether $device remove logger -s 3Com Megahertz 3C589E removed remove /etc/pccard_ether_remove $device 新たな PC カードを動作させたら、pao-report@clave.gr.jp まで報告 してください。書式は [203] を読んでください。 ここまでやっても動作しない場合は、マシンや PC カードなどの情報、 CIS タプル、試した手順や表示されたメッセージなどを添付して、 [105] などのメーリングリストで質問してみてください。 [502] 私のラップトップは I/O アドレスの 0x240 を他のデバイスが使用して いるのですが、config ファイル中の対応するデバイスの I/O アドレス の記述を書き変えたにもかかわらず、I/O アドレスを変更できません。 どうやったら I/O ポートの変更が可能なのでしょうか? Config ファイル中の I/O アドレスの値は「ダミー」です。もしカー ドが I/O ポートを I/O プールから得るのであれば、 /etc/pccard.conf 中の以下の (I/O プール定義に対応した) 行を変 更して下さい。 io 0x240-0x2e0 0x300-0x360 たとえば、これを io 0x300-0x360 に変更すれば、0x240-0x2e0 の領域は使用しないことになります。も しカードが CIS タプルに基づいた I/O アドレス割当を使用する場合 には、コンフィグインデックス番号 (/etc/pccard.conf 中の "config" 宣言を参照) を別のインデックスに変更して下さい。例え ば、Ratoc REX-5588 イーサネットカードは次のようなタプル ("pccardc dumpcis" でダンプしたもの) を持っています。 -------------------------------------------------------------------------- Tuple #19, code = 0x1b (Configuration entry), length = 8 000: 0b 08 ea 60 60 01 1f ff Config index = 0xb Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x160 block length = 0x20 Tuple #20, code = 0x1b (Configuration entry), length = 8 000: 0c 08 ea 60 80 01 1f ff Config index = 0xc Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x180 block length = 0x20 ..........repeats............ Tuple #39, code = 0x1b (Configuration entry), length = 8 000: 1f 08 ea 60 e0 03 1f ff Config index = 0x1f Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x3e0 block length = 0x20 -------------------------------------------------------------------------- このカードは I/O アドレスを明示的に指定しています。例えば、コ ンフィグインデックスの 0xc を指定した場合は、I/O アドレス 0x180 が使用されます。もし 0x3e0 の I/O アドレスを使用したい場 合は、コンフィグインデックスの 0x1f を指定しなければなりません。 このような選択を自動的に行なうためには auto を指定します。auto を指定した場合、上記の I/O プールで許す範囲のコンフィグインデッ クスが自動的に選ばれます。 [503] 私のラップトップは IRQ 10 を他のデバイスで使用しています。ところ が、config ファイル中の "device" 宣言を変更しても IRQ を変更する ことができません。どうしたら IRQ を変更できるでしょう? もし該当する /etc/pccard.conf のエントリが IRQ を明示的に指定 している場合は、その値を変更して下さい。例えば、 card "PCMCIA LAN MBH10304 ES" " 01" config 0x1a "fe0" 5 ether 0x32c 00:c0:d0 このエントリでは、IRQ 5 を明示的に使用しています。もし IRQ 7 を使用したいのであれば、"config" 宣言を config 0x1a "fe0" 7 のように宣言して下さい。もしエントリが動的な IRQ 割当を使用し ていた場合 (IRQ に "any" が指定してある) は、IRQ はフリー IRQ プールから割り当てられます。フリー IRQ プールは FreeBSD カーネ ル内の未使用の IRQ が使われます。しかし、FreeBSD がサポートし ていないサウンドカードなどは未使用と認識されたままとなります。 その場合、"ingirq" 宣言を使用してフリー IRQ プールから除外しま す。もし IRQ 5 を除外したいのであれば、 ignirq 5 とします。基本的に "irq" キーワードは PAO では使用できません。 どうしても互換モードで動かしたければ pccardd の -I フラグを見 てください。 [504] /etc/pccard.conf を再読み込みするにはどうするの? /etc/pccard.conf を変更したら、リブートするか、以下のように SIGHUP シグナルを pccardd に送って変更を有効にします。 # killall -HUP pccardd または # kill -HUP `cat /var/run/pccardd.pid` などとします。これを忘れると変更した情報を認識してくれません。 5.1. Ethernet ~~~~~~~~~~~~~ [510] 2 枚のネットワークカードを一つのラップトップに挿して、ゲートウェ イとして使用するにはどうしたらいいのですか? もし異なったドライバにそれぞれ対応する 2 枚のカードを挿す場合 (例えば、イーサネットとモデム、IBM イーサネットカードと 3Com イーサネットカード) には特別な設定は必要ありません。 もしあなたが 2 枚の同じカードを使用したい場合 (例えば IBM イー サネットカードを 2 枚)、あるいは同一のドライバに対応する異なっ た 2 枚のカードを使用したい場合 (例えば IBM イーサネットカード と Accton イーサネットカード) は、/etc/pccard.conf を変更する 必要があります。 (例 1) 2 枚の IBM PCMCIA Ethernet カード まず、"ed0" と "ed1" が使用可能でなければなりません。デフォル トのコンフィギュレーションファイル PAO_ALL には "ed1" が含まれ ています。また、"disabled" の状態で問題ありません。 次に、2 枚目の IBM カードに対応する /etc/pccard.conf 中の "config" 行を書く必要があります。1 つの "card" 定義は、2 つ以 上の "config" 行を含むことができます。例えば、IBM カードを card "IBM Corp\." "Ethernet" config default "ed0" any config default "ed1" any ether 0xff0 08:00:5a 00:04:ac insert logger -s IBM PCMCIA Ethernet inserted insert /etc/pccard_ether $device remove logger -s IBM PCMCIA Ethernet removed remove /etc/pccard_ether_remove $device と定義することで 2 枚目の IBM カードを使用することができます。 リソースは自動的に衝突しないように割り当てられます。もし config インデックスや IRQ を明示的に指定しているカードを使用し たい場合 (つまり、"auto", "default" や "any" のキーワードを 使用しない場合) は、互いに衝突しない別のインデックスや IRQ を 手動で指定する必要があります。 (例 2) IBM イーサネットカードと Accton イーサネットカード 片方のカードを "ed0"、もう片方を "ed1" と設定する必要がありま す。以下の例では IBM を "ed0"、Accton を "ed1" として設定して います。 card "IBM Corp\." "Ethernet" config default "ed0" any ether 0xff0 08:00:5a 00:04:ac insert logger -s IBM PCMCIA Ethernet inserted insert /etc/pccard_ether $device remove logger -s IBM PCMCIA Ethernet removed remove /etc/pccard_ether_remove $device card "ACCTON" "EN2212" config default "ed1" any 0x30 ether 0xff0 00:00:e8 insert logger -s Accton EN2212 inserted insert /etc/pccard_ether $device remove logger -s Accton EN2212 removed remove /etc/pccard_ether_remove $device もしカードが明示的な config インデックス指定を使用していた場合 は、「例 1」と同様の問題が起こるでしょう。 [511] /etc/pccard.conf のエントリーは正しく思えるのに、NE-2000 互換イー サネットカードのプローブに失敗します。なぜ? いくつかの NE-2000 互換イーサネットカード (Accton EN-2212 など) は、共有メモリの記述に関する不気味な CIS タプルを持っています。 /etc/pccard.conf 中の対応するエントリに flags 0x10 を追加して くだ さい。これによって、共有メモリの使用を抑制し、ドライバを プログラ ム I/O モードで動作するように強制できます。 card "PCMCIA" "UE2212" config default "ed0" any 0x10 ether 0xff0 00:00:e8 [512] 私の WaveLAN カードは正しくプローブされますが、使うことができま せん。 WaveLAN カードを使用する前に、DOS ユーティリティから初期化する 必要があります。特に、すべての通信したい WaveLAN カード (そし てもちろん WavePoint) と同じ NetID を指定してあげる必要があり ます。そして、ローミングプロトコルはまだサポートされていないと いうことに注意して下さい。 [513] 使用するドライバによってメッセージは多少異なりますが、イーサネッ トカードを挿入したとき、ed0: device timeout がでて機能しません。 この原因は多くの場合、PC Card に割り当てられた IRQ が、実際には 他のデバイスに使われていることにより、正常に割り込み処理が行えな いことにあります。 新たに PC Card がマシンに挿入されると、pccardd が未使用の IRQ を そのデバイスに割り当てようとしますが、FreeBSD がサポートしていな いサウンドカードなどは、使うべき IRQ がシステムに登録されていな いため未使用とマークされているため、結果的に重複して IRQ を割り 当ててしまうことになります。 この状況を確認するには、まず自分のマシンにどんなハードウェアが塔 載されていて、そのデバイスがどういう風にリソースを割り当てている のか正確に把握する必要があります。いくつか方法が考えられます。 a) マニュアル等でマシン仕様を確認します。 b) Windows などのシステムプロパティで確認します。 c) PCI デバイスは BIOS の認識メッセージや、 scanpci か pciconf などのコマンドでも判ります。 次に対策としては3つの方法が考えられます。 1. 認識されていないデバイスをなんとか FreeBSD に認識させる。 2. マシンの BIOS 設定でそのデバイスを無効にする。 3. pccardd にその問題の IRQ を使用しないよう指示する。 具体的には、 1. 認識されていないデバイスをなんとか FreeBSD に認識させる。 まず、そのデバイスを FreeBSD がサポートしているのかどうか調べ ます。例えば USB コントローラは PAO_ALL カーネルには含まれませ んが、LINT を参照すれば分かるように使用可能です。また、サウン ドカードなどもちょっと面倒かもしれませんがサポートしていること が多いでしょう。具体的な設定はここには書きませんので、その辺は 自力でなんとかしてください。 その結果、サポートされないデバイスであったり、使用予定が無いド ライバを削除した場合、次の対処法に移ります。 2. マシンの BIOS 設定でそのデバイスを無効にする。 全てのマシンで可能なわけでは無いのですが、BIOS 設定を確認して ください。そこで問題のデバイスが設定できれば無効に変更します。 ただ、最近の NOTE-PC 等ではこれらの設定が行えないものも多く、 運悪くそういうマシンに当ったときは最後の手段しか残されていませ ん。 3. pccardd にその問題の IRQ を使用しないよう指示する。 PAO を使っているか、使っていないかで、変更個所が異りますので注 意してください。また、最近の 3.3-R 以降か、それより前のリリー スでも異なります。 A) PAO および PAO3 PAO の pccardd は、**使用しない** IRQ を pccard.conf またはオ プションに指定します。詳しくは PAO に付属している man ページを 参照してください。日本語マニュアルも PAO 版では変更されていま すので注意してください。 i) /etc/pccard.conf の ignirq を設定する方法 /etc/pccard.conf の最初の数行に以下の様な定義がありますので、 使わないようにしたい IRQ を ignirq キーワードに追加します。 一般的に SoundBlaster が使うことの多い IRQ=5 はデフォルトで無 効にしてあります。また、PAO では irq キーワードは使用できませ んので注意してください。 # Unavailable IRQs #ignirq 9 # refrain from using SoundBlaster's IRQ, by default. ignirq 5 # it may be helful for most of notebook PCs #ignirq 15 ii) /etc/rc.conf で pccardd_flags を設定する方法 pccardd のオプションとして無効にしたい IRQ を指定することがで きます。pccardd は /etc/rc.pccard で起動されていますので、そこ を直接変更しても良いですが、/etc/rc.conf に pccardd_flags を定 義すると自動的に pccardd に渡すことができます。IRQ を無効にす るオプションは -i で、必要なだけ複数指定することができま す。例えば IRQ の 5 と 9 を無効にしたければ以下の様に記述しま す。 pccardd_flags="-i 5 -i 9" B) 3.3-R without PAO 比較の意味も兼ねて PAO を使わない場合も簡単に触れます。 PAO を組み込んでいない FreeBSD では、PAO とは逆に **使用する** IRQ を pccard.conf またはオプションに指定します。これより古い リリースでは、pccardd へのオプションは使えません。 i) /etc/pccard.conf の irq に指定する方法 /etc/pccard.conf の以下のリストを編集します。おそらく最近の NOTE-PC では空き IRQ はこんなに無いでしょうね。 # Generally available IRQs (Built-in sound-card owners remove 5) irq 3 5 10 11 13 15 ii) /etc/rc.conf で pccardd_flags に指定する方法 紛らわしいことに、3.3-R では pccardd へのオプション -i は PAO とは全く逆の意味で統合されました。というか今気付いた。(^^; これからいくと pccardd_flags に -i オプションをリストすれば良 いようです。そう言えばこの統合はインストールフロッピー対応でも あります。 pccardd_flags="-i 3 -i 10 -i 11" みたいな感じでしょうか。 これ以外の原因としては、PC カードコントローラ (PCIC) の IRQ が他 のデバイスとぶつかっていることが考えられますが、その場合 [402] や [403] などの症状が先に現れると思います。もし IRQ が何かとぶつ かっているのなら他のデバイス等と同様、カーネルコンフィギュレーショ ンファイルを変更してカーネルを再構築するか、UserConfig ("boot -c") で PCIC の IRQ を変更します。 5.2. FAX/モデム ~~~~~~~~~~~~~~~ [520] カーネルは私のモデムを "sio2" としてアタッチしたといっているが、 /dev/sio2 はない。なぜ? かわりに /dev/ttyd2 か /dev/cuaa2 を使って下さい (デスクトップ と同じ)。 [521] PCMCIA FAX/Modem カード (あるいは他のシリアルカード) のプローブ に失敗します。なぜ? /etc/pccard.conf 中の "function serial" の定義を読んで、 alternative definitions を試してみる。 5.3. Flash ATA/ATA HDD/ATAPI CD-ROM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [530] IDE コントローラ (wdc?) を利用する PC カードを使いたいのですが、 どのように設定すればいいですか? カーネルと /etc/pccard.conf で、それぞれ設定が必要です。 はじめに、カーネルコンフィギュレーションファイルで、内蔵ディスク に使用している以外の IDE コントローラ (wdc?) が含まれる事を確認 してください。無い場合には、PAO_ALL を参考に以下のようなエントリ を加えてカーネルを再構築する必要があります。 # Flash ATA / ATA HDD / ATAPI drive support controller wdc2 at isa? disable port 0x340 bio irq ? disk wd4 at wdc2 drive 0 #disk wd5 at wdc2 drive 1 controller wdc3 at isa? disable port 0x360 bio irq ? disk wd6 at wdc3 drive 0 #disk wd7 at wdc3 drive 1 PC カードに割り当てる wdc? は enable である必要はありません。 disable のままで良いです。また、wdc1 も避けた方が無難でしょう。 機種によっては、プライマリに HDD、セカンダリに CD-ROM を接続して いる場合があります。逆にシステムが SCSI ベースだったりすれば、 wdc0 を使っても良いわけです。一般的には他では使ってなさそうな、 wdc2 や wdc3 を PC カードに割り当てるのが無難でしょう。 次に /etc/pccard.conf の設定ですが、IRQ と I/O ポートの設定が重 要な意味を持ちます。IRQ は /etc/pccard.conf の該当エントリの記述、 # LK-RM120 card "Panasonic" "LMEK0406" config 0x22 "wdc1" any 0x1 ^^^ この例で言えば any ですが、ここの設定に従います。もし、ここに直 接数値を指定すれば、その番号の IRQ をこの PC カードに割り当てま す。any であればリソースプールから自動的に未使用の IRQ を割り当 てます。これはシステムによって異なりますし、ignirq キーワードの 記述にも左右されます。 I/O ポートは、カーネルコンフィギュレーションの設定と、pccard.conf の Config index の指定を一致させる必要があります。これはドライバ の構造上の問題であり wd/wdc ドライバ以外ではこの制限はありません。 他のドライバではカーネルコンフィギュレーションでの irq,port,flags などの指定は意味を持たず pccard.conf での設定のみに依存します。 カーネルコンフィギュレーションでの設定値については、上記の wdc2 及び wdc3 であれば、そこに書かれている数値が直接、IO_WD1, IO_WD2 は各々 sys/i386/isa/isa.h に #define されている数値に対応します。 % grep IO_WD PAO3/src/sys/i386/isa/isa.h #define IO_WD2 0x170 /* Secondary Fixed Disk Controller */ #define IO_WD1 0x1F0 /* Primary Fixed Disk Controller */ Config index の指定方法については、以下の順で試すと良いでしょう。 また、PAO3 (3.x用PAO) では PAO (2.2.x用PAO) と比べて、機能強化が 行なわれて、Single I/O window を利用できるかもしれません。 1. function fixed_disk を試す。[533] も読んでください。 function fixed_disk config default "wdc2" any cardio 0x340 16 # config default "wdc3" any cardio 0x360 16 2. Config index を調整してみる。PC カードによっては、Config index を default 以外に特定しなければならない場合があります。 # Hitachi Flash ATA card "HITACHI" ".*FLASH.*" config 0x01 "wdc2" any cardio 0x340 16 3. Single I/O window を諦めて、CIS タプルの以下の数値と、wdc? に 指定した I/O ポートが一致する Config index を探し出し、以下の 樣なエントリを作成します。もし、どれにも一致するものが無けれ ば、逆にカーネルコンフィギュレーションを変更します。 # FUJITSU FlashDiskCard ZEBO-ATA40 card "FUJITSU" "ZEBO-ATA" config 0x03 "wdc1" any -------CIS タプル------- Tuple #11, code = 0x1b (Configuration entry), length = 12 000: 83 41 18 ea 61 70 01 07 76 03 01 ee Config index = 0x3 Interface byte = 0x41 (I/O) +RDY/-BSY active Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x170 block length = 0x8 ^^^^^ I/O address # 2: block start = 0x376 block length = 0x2 IRQ modes: Level, Pulse, Shared IRQ level = 14 -------CIS タプル------- カードによってはフラグに 0x20000 が必要なものがありますが、こ れは PAO3 ではお薦めしません。もし、このフラグを付けて上手く 動作するようなら、おそらく Single I/O window で動作するものと 思われます。 # CitiDISK & Addonics PocketZIP card "Shining" "PMIDE-ASC" config default "wdc1" any 0x20000 4. 最後の手段として cardio を使ってみてください。cardio のパラメー タには、I/O ポートのアドレスとバイト数を指定します。必ずしも 上手くいくとは限りませんが、試す価値はあるでしょう。 # Microtech XpressDock card "Microtech International Inc\." "IDE PCCARD" config default "wdc1" any 0x20000 cardio 0x170 0x10 [531] Flash ATA ディスクをマウントするには? 私が思うに、FreeBSD ラップトップユーザのもっともポピュラーな Flash ATA ディスクの目的は FreeBSD マシンと HP-200LX のような MS-DOS パームトップとの間でのファイルの共有でしょう。例えば、 HP-200LX の MS-DOS ファイルシステムは、通常 Flash ATA ディスク の 1 番目の fdisk パーティションに位置しています。そこで、もし このパーティションをマウントしたい場合は (この例では、PAO_ALL config ファイル と pccard.conf.sample に定義されているのと同様 に Flash ATA ディスクコントローラが "wd4c" で Flash ATA ディス クが "wd4" とアタッチされたと仮定しています)、 # mount -t msdos /dev/wd4s1 /mnt と打ちましょう。もちろん必要なデバイスファイルが存在しなければ、 マウントするまえに作っておきましょう。もしこの作業をもっと簡単 に行ないたい場合は、この目的のためのディレクトリ /flash を作り、 /dev/wd4s1 /flash msdos rw,noauto 0 0 のような行を /etc/fstab に作ります ("noauto" オプションを追加 することを忘れずに)。このパーティションは単に # mount /flash と叩くだけでマウントできます。カードを抜く前にファイルシステム をアンマウントすることを忘れずに。 もしあなたのデジタルスチルカメラが Flash ATA カードをサポート する場合には、これらのカメラによってキャプチャされたデータを読 むことができます。特に、あなたのカメラが MS-DOS でフォーマット された Flash ATA ディスクや ATA HDD をサポートしており、画像ファ イルフォーマットが FreeBSD 上のグラフィックビューアによってサ ポートされているならば、キャプチャされた画像を見ることができま す。例えば、リコーの DC-2 は Flash ATA カードの 1 番目の fdisk スライスの MS-DOS ルートディレクトリに *.j6i と *.j6s のファイ ルを書き込みます。マニュアルには、*.j6i フォーマットは「JPEG 圧縮をベースにしている」と書いてありますが、ところが実は、最初 の 172 バイトを切りとれば、残りは標準 JPEG ファイルなのです。 例えば、j6i ファイルの名称が "/flash/r010001.j6i" の場合は、 % dd if=/flash/r010001.j6i of=foo.jpg skip=1 bs=172 % xv foo.jpg とすることで、xv を使ってこの画像を見ることができます。ただし、 アスペクト比を調整する必要があることに気をつけて下さい。これは cjpeg/djpeg と netpbm パッケージで行なうことができます。 [532] ATAPI CD-ROM, CD-R/RW をマウントするには? デスクトップと同じ。 # mount -t cd9660 /dev/acd0c /cdrom もし /etc/fstab に /dev/acd0c /cdrom cd9660 rw,noauto 0 0 を追加すれば、 # mount /cdrom を叩くだけでマウントすることができます。カードを抜く前にファイ ルシステムをアンマウントすることを忘れずに。 [533] function fixed_disk を試すのはどのようにすればいいのでしょうか? 以下 SunDisk Flash ATA を例に説明します。 適時お持ちのカードに読み換えてください。 /etc/pccard.conf の中ほどに、 # SunDisk Flash ATA card "SunDisk" ".*" config 0x03 "wdc1" any insert logger -s SunDisk Flash ATA inserted remove logger -s SunDisk Flash ATA removed というエントリがありますが、これを削除するか、 以下のように # 記号を行頭に挿入してコメントアウトします。 # SunDisk Flash ATA #card "SunDisk" ".*" # config 0x03 "wdc1" any # insert logger -s SunDisk Flash ATA inserted # remove logger -s SunDisk Flash ATA removed そうすると、SunDisk にマッチするエントリがなくなりますので、 /etc/pccard.conf の最後の方にある、 # GENERIC Flash ATA / ATA HDD function fixed_disk # config default "wdc1" 15 # config default "wdc1" any # config 0x03 "wdc1" 15 # config 0x03 "wdc1" any config default "wdc2" any cardio 0x340 16 # config default "wdc3" any cardio 0x360 16 insert logger -s Flash ATA / ATA HDD inserted remove logger -s Flash ATA / ATA HDD removed というエントリが使われます。デフォルトでは Single I/O window を 利用しようとします。必要に応じて wdc2 または wdc3 を有効にしてく ださい。これで動作すればカード専用のエントリを用意する必要もあり ません。ここで function fixed_disk というのは pccardc dumpcis で 以下のように表示されるカードに適用されます。 Tuple #7, code = 0x21 (Functional ID), length = 2 000: 04 01 Fixed disk card - POST initialize /etc/pccard.conf を変更したら、リブートするか、以下のように SIGHUP シグナルを pccardd に送って変更を有効にします。 # kill -HUP `ps ax | awk '/pccardd/ {print $1}'` 現在 function fixed_disk のエントリはテスト中で、もしカード ごとの専用エントリを用意しなくても動作確認がとれれば、未知の カードに対してもそのままで動作することが期待できます。他にも これらに該当するカードを持ってる人はテストに協力してください。 pccardc(8), pccardd(8), pccard.conf(5) も参照してください。 CVS リポジトリの PAO3/kit/ja-man か、リリースの PAO3/ja-man に日本語版もあります。 なお、関連情報として Single I/O window で bsd-nomads メーリング リストのアーカイブを検索してみてください。ほそかわさんのメールを 始め参考になると思います。 5.4. SCSI ~~~~~~~~~ [540] 以前は使えていた SCSI PC Card を PAO3 で認識しません。なぜ? SCSI サブシステムが FreeBSD 2.2.x と 3.x では全く別物になりまし た。さらに以前の Julian SCSI が削除されたため、それらでサポート していた SCSI controller 用に CAM 化したドライバを開発しなければ なりません。 5.5. ビデオキャプチャ ~~~~~~~~~~~~~~~~~~~~~ [550] どうやって / どこで IBM Smart Capture Card は入手できますか? 私はこのカードは日本 (とヨーロッパ?) のみで入手可能であると聞 いています。詳しくはあなたの国の IBM に尋ねて下さい。 [551] xscc 以外に IBM Smart Capture Card のアプリケーションはありますか? xfscc - xforms インターフェースを持った SCC のクライアント sccat - スナップショットキャプチャツール NV - ビデオカンファレンスアプリケーション VIC - ビデオカンファレンスアプリケーション 詳しくは "SCC on FreeBSD/Linux" ページをお読み下さい。このペー ジの URL は、 "http://www.mickey.ai.kyutech.ac.jp/~ohashi/scc/index.html" で す。 5.6. マルチファンクションカード ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [560] PAO はマルチファンクションカードをサポートしていますか? いいえ。 5.7. CardBus ~~~~~~~~~~~~ [570] PAO は CardBus をサポートしていますか? いいえ。 6. システムインストール ~~~~~~~~~~~~~~~~~~~~~~~ [600] PAO のサポートする PC Card 経由で FreeBSD のインストールがしたい のだけれども、どうすればいいの? PAO3 for 3.x-RELEASE においては FreeBSD 3.x-RELEASE と同様インス トールフロッピーが二枚組になりました。また、PAO boot.flp にカーネ ルパッチを詰め込む方式はやめて、FreeBSD の標準配布ファイルと同じ 形式で paobin, paosrc を用意しました。 - boot.flp : PAO ブートフロッピー (2.88MB)、CD-ROM boot や LS120, ZIP などで使用します。 - kern.flp : PAO カーネルフロッピー (1.44MB 一枚目) - mfsroot.flp : PAO MFS ルートフロッピー (1.44MB 二枚目)、普通の FDD を使うのであればこの二つを用意します。 - paobin : PAO バイナリ配布ファイル、PAO 対応のカーネル、 userland、man page などを含みます。 (install.sh, paobin.aa, paobin.ab, ...) - paosrc : PAO ソース配布ファイル、PAO で変更されたカーネル ソース、PAO-FAQ や SUPPORTED.CARDS などのドキュメ ントを含みます。カスタムカーネルを作るつもりなら、 カーネルソース ssys を同時に選択してください。 (install.sh, paosrc.aa, paosrc.ab, ...) - paodist.tar : paobin, paosrc を tar でまとめたもの。 PAO ホームページ (http://www.jp.FreeBSD.org/PAO/) からダウンロー ドしてください。また以下も参照してください。 ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/3.3-RELEASE/README.jp [601] FreeBSD がインストールされたシステムを PAO 化するにはどうしたらい いの? PAO バイナリ配布ファイル (paobin)、PAO ソース配布ファイル (paosrc) または、これをまとめた paodist.tar を展開して、各ディレクトリで ./install.sh を実行します。paosrc は必須ではありませんが、PAO-FAQ や SUPPORTED.CARDS 等のドキュメントを含みますので、目を通すように しましょう。 [602] PAO boot.flp を利用して、PC Card 経由で FreeBSD のインストールを 行ったのですが、インストール後 PC Card が利用出来なくなってしまい ました、なぜなんでしょう? PAO バイナリ配布ファイル (paobin) のインストールを忘れたり、/kernel の PAO 版への置き換えが行なわれないとその様になります。 単に /kernel の置き換えが失敗しているのが原因なら、 # chflags noschg /kernel # mv /kernel /kernel.old # install -c -m 555 -o root -g wheel -fschg /kernel.PAO /kernel そうでないなら、 PAO バイナリ配布ファイル (paobin)、PAO ソース配布ファイル (paosrc) を DOS パーティションや FTP サイトに用意して、distribution メニュー において paobin, paosrc のみを選択して追加インストールします。 paosrc は必須ではありませんが、カスタムカーネルを作成するためには 必要ですし、PAO-FAQ や SUPPORTED.CARDS 等のドキュメントを含みます ので、目を通すようにしましょう。また、PAO boot.flp の pccard.hlp も参考になります。 [603] 自分のマシンの /stand/sysinstall は古いので、 最新版に入れ換えたいのですがどうしたらいいの? 3.x-RELEASE では、mfsroot.flp から抜き出すのが簡単でしょう。 /var/tmp/mfsroot.flp に MFS ルートイメージがあるとして、 # vnconfig /dev/vn0 /var/tmp/mfsroot.flp # mount -o ro /dev/vn0c /mnt または既にフロッピーが用意してあるなら、 # mount -o ro /dev/fd0c /mnt として、 # zcat /mnt/mfsroot.gz > /var/tmp/mfsroot # umount /mnt # vnconfig -u /dev/vn0 # vnconfig /dev/vn0 /var/tmp/mfsroot # mount -o ro /dev/vn0c /mnt # rm -rf /stand # tar cf - -C /mnt stand | tar xvfp - -C / # umount /mnt # vnconfig -u /dev/vn0 注意点として、カーネルに pseudo-device vn 1 が必要です。 [604] /etc/rc.conf 中の変数の設定はどうするの? 1. apm_enable (BOOL) もしこの変数が YES に設定されていれば、ブート時に apmconf(8) が APM BIOS を有効化します。これによりカーネルは APM イベントをハン ドルすることができるようになり、apm(8) コマンドなどを使用するこ とが可能となります (デフォルト: YES)。 2. apmd_enable (BOOL) もしこの変数が YES に設定されていれば、APM イベント監視デーモン apmd(8) をブート時に起動します。(デフォルト: NO) 3. apmd_flags (文字列) この変数には apmd(8) に指定するフラグを設定します。もちろん apmd_enable="YES" の時だけ有効です。 4. pccard_enable (BOOL) もしこの変数が YES に設定されていれば、ブート時に PC Card コント ローラの設定 (pccard_mem, pccard_beep) を行うとともに、PC Card マネージャデーモン pccardd(8) を起動します (デフォルト: YES)。 5. pccardd_flags (文字列) この変数には pccardd(8) に指定するフラグを指定します。 pccard_enable="YES" の時だけ意味があります。 6. pccard_mem (文字列) PC Card コントローラ (PCIC) 用のスクラッチメモリとして DEFAULT (0xd0000) 以外を使用したい場合は、この変数を明示的に指定して下さ い。以下の 4 つのうちから指定します。(デフォルト: DEFAULT) 0xd0000 0xd0000-0xd3fff (default) 0xd4000 0xd4000-0xd7fff 0xd8000 0xd8000-0xdbfff 0xdc000 0xdc000-0xdffff 7. pccard_beep (文字列) この変数が 0 に設定されると、PC カードの抜き挿しはサイレントモー ドになります。もしこれが 1 または 2 に設定されると、カードが抜き 挿しされた際にマシンがビープ音を発生します。1 と 2 はそれぞれ、 シンプルビープモードとメロディモードに対応します (デフォルト: 2)。 8. pccard_ether (文字列) 使用予定のすべての PC Card イーサネットインターフェースをこの変 数にリストします。例えばルータとして ed ドライバで動作するカード を二枚使うのであれば pccard_ether="ed0 ed1" と指定し、更にインタ フェースごとのパラメタを設定します。(デフォルト: "ed0 ep0 fe0 sn0") pccard.conf(5) の次のような記述により、カード挿抜時にそれぞれの スクリプトが呼び出されます。 insert /etc/pccard_ether $device remove /etc/pccard_ether_remove $device カードを挿入すると /etc/pccard_ether が呼び出され、これ以降説明 する変数を使ってインタフェースを設定します。同じようにカードを引 き抜くと /etc/pccard_ether_remove が呼び出されます。 9. ifconfig_{interface} (文字列) pccard_ether にリストされた各インタフェースに対応する ifconfig(8) への引数を指定します。もしこの変数の値が "DHCP" にセットされてい たら、DHCP (Dynamic Host Configuration Protocol) クライアントが 自動的に対応するインタフェースに対して起動されます。標準設定では /sbin/dhclient が使われますが、変数 dhcp_program を変更すること で別のクライアントに切り換え可能です。なお "DHCP" を使用する場合 は、カーネルに BPF (Berkeley Packet Filter) が必要 (PAO_ALL には この定義が含まれている) で、また bpf? デバイスを MAKEDEV するの も忘れないようにします。 (例 1) pccard_ether="ed0 ed1" ifconfig_ed0="inet 192.168.1.100 netmask 255.255.255.0" ifconfig_ed1="inet 192.168.2.100 netmask 255.255.255.0" (例 2: デフォルト設定) pccard_ether="ed0 ep0 fe0 sn0" ifconfig_common="DHCP" ifconfig_ed0=$ifconfig_common ifconfig_ep0=$ifconfig_common ifconfig_fe0=$ifconfig_common ifconfig_sn0=$ifconfig_common 10. ifconfig_{interface}_alias{N} (文字列) この変数を用意すると一つのインタフェースに複数の IP アドレスを設 定できます。詳しくは ifconfig(8) の alias の項目を参照してくださ い。また変数 ifconfig_{interface} が "DHCP" に設定されてるとこの 変数は無視されます。 ifconfig_ed0_alias0="inet 192.168.1.101 netmask 0xffffffff" ifconfig_ed0_alias1="inet 192.168.1.102 netmask 0xffffffff" 11. dhcp_program (文字列) この変数には DHCP クライアントのパスを設定します。3.2-RELEASE か らは ISC-DHCP クライアントが標準で含まれますが、それ以外のクライ アントを使う場合この変数を書き換えます。(デフォルト: /sbin/dhclient) 例えば、ports/packages コレクション内の WIDE-DHCP パッケージを 使うのなら、 dhcp_program="/usr/local/sbin/dhcpc" の樣に変更します。 12. dhcp_flags (文字列) WIDE-DHCP を使用する場合、/etc/resolv.conf を自動的に書換えたい ときは "-r" オプションを指定します。また、ホスト名を自動的に変更 したいときは "-n" オプションを追加します。 13. route_flush (BOOL) PCMCIA Ethernet card を二枚以上挿して Gateway として使用する場合 "NO" に設定し、static_routes 及び defaultrouter は空とします。静 的 routing が必要ならstatic_routes_"インターフェース名" を代わり に使用します。route_flush を "YES" に設定した場合、カードを抜く ときに全ての route を削除します。(デフォルト: YES) 14. defaultrouter (文字列) もしこの変数をセットした場合は、デフォルトルータがカードを挿入し た時に自動的に登録され、カードを抜いた時に自動的に削除されます。 この変数は、対応するインタフェースの ifconfig のパラメータを "DHCP" に設定した場合には無視されます。 15. static_routes_{interface} (文字列) インタフェースごとの static route のリストを指定します。実際の route コマンドへの引数は route_{name} に記述します。また変数 ifconfig_{interface} が "DHCP" に設定されてるとこの変数は無視さ れます。 static_routes_ed0="wan0" static_routes_ed1="lan3 lan4" route_lan3="-net 192.168.3 192.168.2.101" route_lan4="-net 192.168.4 192.168.2.102" route_wan0="default 192.168.1.1" [605] IBM ThinkPad 3xx シリーズを使っていて、FreeBSD をインストールし たいのだけれども、FreeBSD のキーボードドライバが正しくキーボード をハンドルできません。というわけで、FreeBSD をインストールできま せん。なぜ? これは、これらのマシンが XT 互換キーボードを使用しているためです。 FreeBSD 3.1-RELEASE 以降では atkbd0 に flags 0x4 を与えると XT キーボードの設定になります。ただし、バグのため 3.3-RELEASE 以降 でないと UserConfig でのフラグ指定は反映されません。 詳しくは [bsd-nomads:11945] を参照してください。 http://home.jp.FreeBSD.org/cgi-bin/showmail/nomads/11945 また、TROUBLE.TXT にも記載があります。 ftp://ftp.jp.FreeBSD.org/pub/FreeBSD/releases/3.3-RELEASE/TROUBLE.TXT http://www.linkclub.or.jp/~clover/ja/TROUBLE.TXT [606] システム起動時にネットワーク系のデーモン (named,httpd,sambaなど) がうまく立ち上がりません。起動後に手動で実行すれば動くので、設定 は問題ないと思うのですが? まず、/etc/host.conf をチェックしてください。ホスト自身の名前解 決ができないときも、起動に失敗するアプリケーションがあります。こ の場合のお約束は hosts を始めにもってくる事です。 つぎに良くありがちな問題として、ネットワークインタフェースが初期 化される前にデーモンが起動される事があります。これは普通のデバイ スと異なり、PCカードの認識が pccardd(8) によっておこなわれるため、 イーサネットカードの設定がデーモンの実行に間に合わないのが原因で す。この問題はつぎのような方法で解決できます。 A1. pccardd を起動した直後、PCカードの認識及び設定が終るまでバッ クグラウンドに移行するのを待つ。rc.conf に pccardd_flags="-z" を追加して、pccardd に -z オプションを指定します。ただし、 PAO3-19991011 以前ではバグのため正常に動作しません。 A2. PCカードが認識されるまで sleep で待つ。rc.conf では起動しな いようにして、そのかわり /usr/local/etc/rc.d などに起動スクリ プトを置きます。chmod +x するのを忘れないように。待ち時間は調 整してください。 ------bind.sh----- #!/bin/sh ( sleep 30 && named -u bind -g bind && echo -n 'named' ) & ------bind.sh----- A3. /usr/local/etc/rc.d に起動スクリプトを置くのをやめて、 /etc/pccard.conf のエントリから起動や停止するようにします。 insert /usr/local/sbin/apachectl start remove /usr/local/sbin/apachectl stop この方法は他の方法と違ってカードの抜き挿しにも対応できますが、 二枚以上同じカードを使うと破綻します。 [607] PAO システムで "Gated" が動きません。なぜ? これは Gated が、PAO が提供する「動的なインターフェースの出現」 をサポートしないからです。逆に言えば [606] で紹介した方法を用い ればなんとかなるでしょう。 [608] PC カードの IRQ と I/O アドレスを UserConfig ("boot -c") を 使って変更しようとしたのですが、効果ありませんでした。なぜ? UserConfig ("boot -c") やカーネルコンフィギュレーションファイル 中の "device" や "controller" の引数 (at isa? 以降の irq, port, iomem, flags など) は PC カードには効果ありません。もしこれらの パラメータを変更したい場合は /etc/pccard.conf を編集して下さい。 唯一の例外が IDE コントローラ (wdc ドライバ) についてで、[530] を参照してください。 [609] カーネルコンフィギュレーションの I/O ポートの設定と、/etc/pccard.conf の config index での指定が食い違ってますが、なぜ? カーネル作成時に指定する sio2 とか sio3 の IO_COM3 等と、 pccard.conf に指定する config index のアドレスには、何ら関係は ありません。 PAO では、このアドレスを上書きします。だから、 device sio0 at isa? port "IO_COM1" tty irq 4 device sio1 at isa? port "IO_COM2" tty irq 3 device sio2 device sio3 と at 以降を指定しなくてもかまいません。実際、私はそうやって作っ たカーネルを使っています。(カーネル内に領域さえ確保されれば良い) なので、sio2 か sio3 かというのは、unit number の違い以外全く 意味がありません。アドレスを決めているのは、config index だけ です。 $Id: PAO-FAQ.jp,v 1.19 2000/06/14 08:11:59 toshi Exp $