------------------------------- PAO-FAQ ------------------------------- 細川 達己 Tatsumi Hosokawa BSD-nomads Team, Japan hosokawa@jp.FreeBSD.org PAO は FreeBSD によるモーバイルコンピューティングユーザたちのための総 合的なパッケージです。PAO には FreeBSD PC カードドライバ、FreeBSD APM ドライバの拡張、そしてその他諸々のユーティリティやデーモンが含まれてい ます。PAO は Andrew McRae による FreeBSD PCMCIA ドライバの初期の仕事と、 Tatsumi Hosokawa による FreeBSD APM ドライバをベースにしており、現在で は BSD-nomads team (bsd-nomads@clave.gr.jp) が開発と保守を行い、Nate Williams が本家への反映を行っています。 目次 --------------------------------------------------------------------- *New* 新しい Q&A *Upd* 更新された情報 1. 総合情報 * PAO ってどういう意味? *New* * PAO ホームページの URL は? *New* * 最新版の PAO の取得方法は? 2. サポートハードウェア *Upd* * PAO はどのようなカードをサポートしているの? *Upd* * PAO はどのようなラップトップをサポートしているの? 3. APM BIOS * APM ってどういう意味? * APM BIOS を使用するとカーネルがハングする。なぜ? * apm(8) や zzz(8) が使用できません。なぜ? * xbatt(1) を使用できません。なぜ? * システムクロックが、マシンが眠っていた間の時間だけ遅れてしま い、レジュームしても元に戻りません。なぜ? * 私のラップトップはサスペンドから復帰した時にハングします。な ぜ? 4. PC-card * カーネルブートメッセージは私のカードが見つからなかったといっ ている。なぜ? 4.1. PC-card コントローラ * カードを抜くとフリーズしてしまいます。どうやってこのトラブル を回避できますか? * PAO を私のマシンにインストールしたのですが、なにもカードを入 れてない時でもマシンが頻繁にカードが挿入された、あるいは抜か れたと報告してきます。なぜ? * PAO を私のマシンにインストールしましたが、カードの挿入、抜き だしを一切マシンは報告してくれません。なぜ? * カードを入れても、システムは「CIS code read: Cannot allocate memory」というだけです。なぜ? * 私のラップトップは「Slot ?, unfielded interrupt (?)」といっ ています。なぜ? *Upd* * 私のラップトップは I/O アドレスの 0x240 を他のデバイスが使用 しているのですが、config ファイル中の対応するデバイスの I/O アドレスの記述を 書き変えたにもかかわらず、I/O アドレスを変 更できません。どうやったら I/O ポートの変更が可能なのでしょ うか? * 私のラップトップは IRQ 10 を他のデバイスで使用しています。と ころが、config ファイル中の "device" 宣言を変更しても IRQ を 変更することがで きません。どうしたら IRQ を変更できるでしょ う? *New* * ノートパソコンで FreeBSD を使っており, PAO のインストールフロ ッピーを使ってインストールしています. 2.2.6-RELEASE までは, 問題なくインストールでき使えていました. しかし, 2.2.7-RELEASE 以降では, PC-Card コントローラを認識できず, インストール出来 ず困っています. 4.2. Ethernet *Upd* * 2 枚のネットワークカードを一つのラップトップに挿して、ゲート ウェイとして使用するにはどうしたらいいのですか? * /etc/pccard.conf のエントリーは正しく思えるのに、NE-2000 互 換イーサネットカードのプローブに失敗します。なぜ? * WaveLAN カードを全く使用できません。なぜ? * 私の WaveLAN カードは正しくプローブされますが、使うことがで きません。 4.3. FAX/モデム * カーネルは私のモデムを "sio2" としてアタッチしたといっている が、/dev/sio2 はない。なぜ? * PCMCIA FAX/Modem カー ド (あるいは他のシリアルカード) のプロー ブに失敗します。なぜ? 4.4. Flash ATA/ATA HDD/ATAPI CD-ROM *New* * IDE interface card は認識されるにもかかわらず、ディスクの割 当てに失敗します。なぜ? * Flash ATA ディスクをマウントするには? *Upd* * ATAPI CD-ROM, CD-R/RW をマウントするには? 4.5. SCSI *Upd* * SCSI CD-ROM, HDD, MO をマウントするには? * ポータプル CD-ROM ドライブを使用したいのですが、動作しません。 なぜ? 4.6. ビデオキャプチャ * どうやって / どこで IBM Smart Capture Card は入手できますか? * xscc 以外に IBM Smart Capture Card のアプリケーションはあり ますか? 4.7 マルチファンクションカード * PAO はマルチファンクションカードをサポートしていますか? 5. システムインストール *Upd* * PAO のサポートする PC カードで FreeBSD のインストールがした いのだけれども、どうすればいいの? *Upd* * /etc/rc.conf 中の変数の設定はどうするの? * IBM ThinkPad 3xx シリーズを使っていて、FreeBSD をインストー ルしたいのだけれども、FreeBSD のキーボードドライバが正しくキー ボードをハンドルできません。というわけで、FreeBSD をインストー ルできません。なぜ? * PAO システムで "gated" が動きません。なぜ? * PCMCIA カードの IRQ と I/O アドレスを UserConfig ("kernel -c") を使って変更しようとしたのですが、効果ありませ んでした。なぜ? *New* * カーネルコンフィギュレーションの I/O ポートの設定と、 /etc/pccard.conf の config index での指定が食い違ってますが、 なぜ? -------------------------------------------------------------------------- 1. 総合情報 ~~~~~~~~~~~ * PAO ってどういう意味? PAO は遊牧の民のためにたっています (笑)。 * PAO ホームページの URL は? http://www.jp.freebsd.org/PAO/ です。 * 最新版の PAO の取得方法は? PAO は home.jp.FreeBSD.org の cvs repository で保守されています。 home にアカウントがあれば適切に CVSROOT を設定して cvs でアクセ スできます。 より一般には CVSup を使用します。cvsup のインストール方法は、 http://www.jp.FreeBSD.org/www.freebsd.org/ja/handbook/ handbook257.html#512 を参照してください。設定ファイルは以下の 様に記述します。 *default host=cvsup.jp.FreeBSD.org *default base=/somewhere/you/want/to/put *default prefix=/somewhere/you/want/to/put *default release=cvs tag=pao228 *default delete use-rel-suffix *default compress # collections jp-pao-sys jp-pao-kit PAO-199xxxxx.tar.gz 等のリリース版は、 ftp://daemon.jp.freebsd.org/pub/FreeBSD-jp/PAO/ PAO-freebsd22x-xxxxxx-snap.tar.gz 等の snapshot は、 ftp://daemon.jp.freebsd.org/pub/FreeBSD-jp/PAO/snap/ PAO 版のブートフロッピー boot-pao.flp は、 ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/I18N-flp/ に FreeBSD のリリースと対応言語に応じて、 ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/I18N-flp/2.2.8-RELEASE/ja/ 等にあります。 また cvsweb で各 revision との差分などを確認できます。 http://www.jp.freebsd.org/cgi/cvsweb.cgi/PAO/?cvsroot=freebsd-jp 2. サポートハードウェア ~~~~~~~~~~~~~~~~~~~~~~~ * PAO はどのようなカードをサポートしているの? パッケージ中の SUPPORTED.CARDS.jp をお読み下さい。 最新版は、 http://www.jp.freebsd.org/cgi/cvsweb.cgi/PAO/kit/ SUPPORTED.CARDS.jp?cvsroot=freebsd-jp で参照できます。 また、カードデータベース /etc/pccard.conf の最新版は、 http://www.jp.freebsd.org/cgi/cvsweb.cgi/PAO/kit/release/etc/ pccard.conf.sample?cvsroot=freebsd-jp から取得できます。 * PAO はどのようなラップトップをサポートしているの? PAO の APM ドライバは APM BIOS 1.0, 1.1 及び 1.2 をサポート しています。APM BIOS はしばしば、深刻なバグを持っています。我々 はこれらのバグに対処することに挑戦していますが、また、いくつか のイカレた APM BIOS に対してはサポートすることをあきらめました。 いくつかのラップトップのベンダは、彼らの BIOS を「Windows 95」 用にアップデートしたというアナウンスを行ないました。これはおそ らく「彼らは APM BIOS のプロテクトモードインターフェースのバグ を直した」ということを意味しています。そこで、もしあなたのラッ プトップのベンダがより新しい BIOS をアナウンスしている場合は、 PAO をインストールする前に、最新の BIOS にアップデートして下さ い。 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 ブリッジであった場合) 3. APM BIOS ~~~~~~~~~~~ * APM ってどういう意味? マイクロソフトとインテルの "Advanced Power Management" (先進的 な電源管理) のことです。詳しくは、 http://www.intel.com/IAL/powermgm/powermgm.htm をお読み下さい。 * APM BIOS を使用するとカーネルがハングする。なぜ? いくつかのプロテクトモード APM BIOS の実装は、深刻なバグを含ん でいます。まずはあなたのラップトップの BIOS が最新版となってい るかどうかを調べましょう。Windows 95 がプロテクトモード APM BIOS を使用するため、最近のラップトップではこの APM BIOS のバ グを直すために BIOS がアップデートされている場合があります。も し最新の BIOS でなければ、すぐに最新のものに入れ換えましょう。 たとえこれが最新のものであったとしても、カーネルのソースを書き 換えることによってこれらの問題と「共存して」いくことができます。 もし問題が解決できたら、その解決 (そしてもちろんあなたの環境) について、我々にレポートを送って下さい。もしあなたがハッカーで ないなら、UserConfig ("kernel -c") でカーネルを立ちあげ、単に "disable apm0" と叩きましょう :-)。 PAO の APM BIOS ドライバは、UserConfig からいくつかの非互換性 問題に対処するための設定が可能です。デバイス apm0 は 1 つの "flags" マスクをこの目的のために持っています (0x01 に対応して いた問題 -- APM データセグメントの値 -- は現在のバージョンでは 根本的に解決されました)。 0x02: いくつかの APM 1.1 と呼ばれている APM BIOS は不完全な APM 1.1 規格の実装となっています。このフラグは APM BIOS が報告 したバージョン番号に関わらず、1.0 互換モードで APM BIOS をドラ イブします。 * 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' グループとして登 録して下さい。 * xbatt(1) を使用できません。なぜ? xbatt(1) は電池と AC ラインの状態を X 上に表示する X クライア ントです。2.1.5-RELEASE ports/packages コレクション中の xbatt(1) は現在の PAO システム中では動作しません。このバージョ ンの xbattt(1) は APM デバイスファイル /dev/apm0 を使用します。 現在の APM デバイスは /dev/apm (apm0 ではない) です。間に合わ せの解決方は以下の通りです。 # cd /dev # ln -s apm apm0 * システムクロックが、マシンが眠っていた間の時間だけ遅れてしまい、レジュー ムしても元に戻りません。なぜ? 多分、/etc/rc.conf の apm_enable 変数に YES を設定し忘れたので しょう。 * 私のラップトップはサスペンドから復帰した時にハングします。なぜ? もちろん多くの理由があります。例えば、私は以下の問題を経験しま した。 o APM BIOS 自身が不安定 :-)。 o サポートされていないサウンドカードがシステムがレジュームする 際に割り込みを起こしている。現在のコードでは PC カードに割り 当てられる IRQ は、明示されない限りフリー IRQ プールから割り 当てられます。したがって、サポートされていないサウンドカード は PC カードに割り当てられた IRQ と同じ IRQ を持つことがあり 得ます。このようなマシンでは、次のような方法でこの問題を避け ることが可能です。 - あきらめず、もう一度そのサウンドカードを FreeBSD か ら使うことを試みる :-)。 - サウンドカードを BIOS setup から無効化する。しかし、 これを行なうと、Windows からもサウンドカードを使用す ることができなくなります。 - /etc/pccard.conf で問題の IRQ をフリー IRQ プールか ら除外する。詳しくは pccard.conf の ignirq を参照し てください。 o たとえあなたのサウンドカードが FreeBSD によってサポートされ ていたとしても、同様の理由で、サウンドドライバを設定するか、 BIOS setup からサウンドカードを無効化する必要があります。サ ウンドカードを未使用の状態で放置しないようにして下さい。 4. PC-card ~~~~~~~~~~ * カーネルブートメッセージは私のカードが見つからなかったといっている。 なぜ? 問題ありません。カーネルは pccardd デーモンと /etc/pccard.conf に記録されたカードデータベースなしにはカードを発見することはで きません。PC カードはブート時には検出されません。pccardd によっ て後に発見され、登録されます。 4.1. PC-card コントローラ ~~~~~~~~~~~~~~~~~~~~~~~~~ * カードを抜くとフリーズしてしまいます。どうやってこのトラブルを回避で きますか? 現在のバージョンでは、特定のシリアルカード (あるいは特定のマシ ン) を動作している状態で抜くことが不安定です。'xpccard' (この パッケージの utils/ サブディレクトリ下にある) か、'pccardc' の 'power' サブコマンドを使用して、まずカードを休眠状態にすること によって、これらのカードを安全に抜くことができます。 * PAO を私のマシンにインストールしたのですが、なにもカードを入れてない 時でもマシンが頻繁にカードが挿入された、あるいは抜かれたと報告してき ます。なぜ? おそらくあなたのマシンには、FreeBSD によって検出も登録もされな かった内蔵デバイスがあるのでしょう (例えばサポートされていない サウンドカードなど)。もしこれらのデバイスを BIOS setup スクリー ンから無効化できるのであれば、無効化してテストして下さい。 二度とこのような問題がおこらなければ、PC カードコントローラと サポートされていない内蔵デバイスがトラブルの原因でしょう。 PC カードコントローラの IRQ は config ファイルの device pcic0 に irq オプションで以下のように指定されています。 device pcic0 at isa? port 0x3e0 irq 11 vector pcicintr これを変更するには、UserConfig ("kernel -c") で "irq pcic0 7" とするか、config ファイルを変更してカーネルを生成します。例え ば、 device pcic0 at isa? port 0x3e0 irq 7 vector pcicintr のようにです。 この際、以下のことを気をつけて下さい。 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 を自由に使用するこ とができます。 * PAO を私のマシンにインストールしましたが、カードの挿入、抜きだしを一 切マシンは報告してくれません。なぜ? おそらく一つ前の質問と同じ原因でしょう。 * カードを入れても、システムは「CIS code read: Cannot allocate memory」 というだけです。なぜ? おそらく /etc/rc.conf 中の "pccard_enable" パラメータの有効化 を忘れているのでしょう。 * 私のラップトップは「Slot ?, unfielded interrupt (?)」といっています。 なぜ? 問題ありません。気にしない (笑)。 * 私のラップトップは 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 #16, code = 0x1b (Configuration entry), length = 8 000: 08 08 ea 60 00 01 1f ff Config index = 0x8 Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x100 block length = 0x20 Tuple #17, code = 0x1b (Configuration entry), length = 8 000: 09 08 ea 60 20 01 1f ff Config index = 0x9 Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x120 block length = 0x20 Tuple #18, code = 0x1b (Configuration entry), length = 8 000: 0a 08 ea 60 40 01 1f ff Config index = 0xa Card decodes 10 address lines, full 8/16 Bit I/O I/O address # 1: block start = 0x140 block length = 0x20 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 を指定しなければなりません。 私は pccardd を拡張してこのようなカードを自動的に扱うことがで きるようにするつもりですが、現在のバージョンでは手動で行なう必 要があります。 * 私のラップトップは 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 とします。 薦めはしませんが古い形式もまだ使えます。まず pccardd に -I フ ラグを渡し (/etc/rc.conf に pccardd_flags="-I" を追加)、 /etc/pccard.conf の以下の行を有効にします。 irq 10 11 * ノートパソコンで FreeBSD を使っており, PAO のインストールフロッピー を使ってインストールしています. 2.2.6-RELEASE までは, 問題なくインス トールでき使えていました. しかし, 2.2.7-RELEASE 以降では, PC-Card コ ントローラを認識できず, インストール出来ず困っています. 2.2.7-RELEASE の PAO から, Cirrus Logic PD6729 などの PC-Card コントローラ(以下 PCIC)に対する初期化部分のコードが変 更になりました. そのため PC-Card の 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: のプロンプットで -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 以前と同じよう にインストールできると思います. 4.2. Ethernet ~~~~~~~~~~~~~ * 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 echo IBM PCMCIA Ethernet inserted insert /etc/pccard_ether $device remove echo IBM PCMCIA Ethernet removed remove /etc/pccard_ether_remove $device と定義することで 2 枚目の IBM カードを使用することができます。 リソースは自動的に衝突しないように割り当てられます。もし config インデックスや IRQ を明示的に指定しているカードを使用し たい場合 (つまり、"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 echo IBM PCMCIA Ethernet inserted insert /etc/pccard_ether $device remove echo IBM PCMCIA Ethernet removed remove /etc/pccard_ether_remove $device card "ACCTON" "EN2212" config default "ed1" any 0x30 ether 0xff0 00:00:e8 insert echo Accton EN2212 inserted insert /etc/pccard_ether $device remove echo Accton EN2212 removed remove /etc/pccard_ether_remove $device もしカードが明示的な config インデックス指定を使用していた場合 は、「例 1」と同様の問題が起こるでしょう。 我々はこの明示的インデックス指定に関する問題を解決することに挑 戦しています。将来のリリースにご期待下さい。 * /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 * WaveLAN カードを全く使用できません。なぜ? WaveLAN ドライバは 2.2-SNAP だけのために提供されます。もし 2.1.5-RELEASE を使用している場合は、WaveLAN を使用することはで きません。たとえ 2.2-SNAP を使用していたとしても、pccardd をコ ンパイルする際の cc の引数に -DWAVELAN を指定しなくてはいけま せん。詳しくは pccardd の Makefile をご覧下さい。 * 私の WaveLAN カードは正しくプローブされますが、使うことができません。 WaveLAN カードを使用する前に、DOS ユーティリティから初期化する 必要があります。特に、すべての通信したい WaveLAN カード (そし てもちろん WavePoint) と同じ NetID を指定してあげる必要があり ます。そして、ローミングプロトコルはまだサポートされていないと いうことに注意して下さい。 PAO-960911 以前の PAO パッケージには、日本版 WaveLAN に関する 問題がありました。US 版の 915MHz 帯のかわりに日本版は 2.4GHz 帯を使用しているのです。このバグは現在のバージョンでは修正され ています。 4.3. FAX/モデム ~~~~~~~~~~~~~~~ * カーネルは私のモデムを "sio2" としてアタッチしたといっているが、 /dev/sio2 はない。なぜ? かわりに /dev/ttyd2 か /dev/cuaa2 を使って下さい (デスクトップ と同じ)。 * PCMCIA FAX/Modem カー ド (あるいは他のシリアルカード) のプローブに失 敗します。なぜ? /etc/pccard.conf 中の "function serial" の定義を読んで、 alternative definitions を試してみる。 4.4. Flash ATA/ATA HDD/ATAPI CD-ROM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * IDE interface card は認識されるにもかかわらず、ディスクの割当てに失 敗します。なぜ? Config index で指定される I/O ポートと、カーネルコンフィギュレー ションにおける wdc のポート番号を一致させる必要があります。 CIS tuple が以下のとき、 ---- Tuple #7, code = 0x1b (Configuration entry), length = 7 000: 01 08 ca 60 00 03 1f Config index = 0x1 Card decodes 10 address lines, limited 8/16 Bit I/O I/O address # 1: block start = 0x240 block length = 0x10 ---- /etc/pccard.conf のエントリでは、 config 0x1 "wdc2" any と指定します。このとき config ファイルを以下の様に設定して、カー ネルを再構成する必要があります。 controller wdc2 at isa? disable port "0x240" vector wdintr disk wd2 at wdc2 drive 0 CIS tuple で適当な I/O address が無いものや、明示的に指定され ない場合は、pccard.conf で強制的に cardio で指定すると動作する ものもあります。 * Flash ATA ディスクをマウントするには? 私が思うに、FreeBSD ラップトップユーザのもっともポピュラーな Flash ATA ディスクの目的は FreeBSD マシンと HP-200LX のような MS-DOS パームトップとの間でのファイルの共有でしょう。例えば、 HP-200LX の MS-DOS ファイルシステムは、通常 Flash ATA ディスク の 1 番目の fdisk パーティションに位置しています。そこで、もし このパーティションをマウントしたい場合は (この例では、PAO config ファイル と pccard.conf.sample に定義されているのと同様 に Flash ATA ディスクコントローラが "wd1c" で Flash ATA ディス クが "wd1" とアタッチされたと仮定しています)、 # mount -t msdos /dev/wd1s1 /mnt と打ちましょう。もしこの作業をもっと簡単に行ないたい場合は、こ の目的のためのディレクトリ /flash を作り、 /dev/wd1s1 /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 パッケージで行なうことができます。 * ATAPI CD-ROM, CD-R/RW をマウントするには? デスクトップと同じ。 # mount -t cd9660 /dev/wcd0c /cdrom FreeBSD 2.2.8R では acd device が連装 CD-ROM に対応しています。 以下の様にカーネルコンフィギュレーションで、wcd device の代り に acd を有効にし、/dev/acd? を MAKEDEV します。 # Use either the acd or the wcd device, not both! #device wcd0 #IDE CD-ROM device acd0 #IDE CD-ROM & CD-R/RW このカーネルでは以下の様にして CD-ROM をマウントします。 # mount -t cd9660 /dev/acd0c /cd0 # mount -t cd9660 /dev/acd1c /cd1 # ... もし /etc/fstab に /dev/acd0c /cdrom cd9660 rw,noauto 0 0 を追加すれば、 # mount /cdrom を叩くだけでマウントすることができます。カードを抜く前にファイ ルシステムをアンマウントすることを忘れずに。 4.5. SCSI ~~~~~~~~~ * SCSI CD-ROM, HDD, MO をマウントするには? デスクトップと同じ。 # mount -t cd9660 /dev/cd0a /cdrom ; CD-ROM # mount -t ufs /dev/sd0s1e /u2 ; HDD ufs # mount -t msdos /dev/sd0s2 /dos ; HDD msdos # mount -t ufs /dev/od0c /u3 ; MO ufs # mount -t msdos /dev/od0 /mo ; MO msdos もし /etc/fstab に /dev/cd0a /cdrom cd9660 rw,noauto 0 0 を追加すれば、 # mount /cdrom を叩くだけでマウントすることができます。カードを抜く前にファイ ルシステムをアンマウントすることを忘れずに。 * ポータプル CD-ROM ドライブを使用したいのですが、動作しません。なぜ? いくつかのポータプル CD-ROM ドライブは、Windows 上で非標準のド ライバを使用します。私はこれらの非標準ドライバはドライブの電源 を制御しているのだと思います。これらのうちいくつかのドライブは、 SCSI PC カードがホストに挿入された時にプローブされません。この トラブルは、カードをホストに挿入した時に手動で CD-ROM ドライブ の電源をオンにすることによって回避できると聞いています。 4.6. ビデオキャプチャ ~~~~~~~~~~~~~~~~~~~~~ * どうやって / どこで IBM Smart Capture Card は入手できますか? 私はこのカードは日本 (とヨーロッパ?) のみで入手可能であると聞 いています。詳しくはあなたの国の IBM に尋ねて下さい。 * 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" で す。 4.7. マルチファンクションカード ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * PAO はマルチファンクションカードをサポートしていますか? いいえ。しかし現在、私は pccardd とカーネルをマルチファンクショ ンカードを使用するために変更しています (私は、Megahertz XJEM1144 Ethernet / Modem card をテストベッドとして使用してい ます)。 5. システムインストール ~~~~~~~~~~~~~~~~~~~~~~~ * PAO のサポートする PC カードで FreeBSD のインストールがしたいのだけ れども、どうすればいいの? 現在、私はマルチリンガル boot.flp のプロジェクト (現在、英語、 日本語、中国語をサポートしている) にも参加しています。この boot.flp は PAO のサポートもしており、このフロッピーを使えば PC カード経由のインストールが行なえます。 PC カードが正常に認識されれば、その後は普通に CD-ROM やネット ワークを使ってインストール出来ます。注意する点としては、最低限 カーネルのソース (ssys) を選択に加えてください。 インストール終了でリブート後、ルートでログインして、 /stand/sysinstall -> [設定] -> [PC カード] と実行すると PAO 対応の kernel をインストールできます。インス トール直後は GENERIC カーネルのままですので、PC カードを使用 するには必須の作業です。 PAO 版のブートフロッピー boot-pao.flp は、 ftp://ryukyu.mt.cs.keio.ac.jp/pub/FreeBSD/bootasia-PAO/ ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/I18N-flp/ から入手可能です。 * /etc/rc.conf 中の変数の設定はどうするの? FreeBSD 2.2.8R 用の PAO で機能追加がありました。9.以降が追加さ れたもので、これと同時に /etc/pccard_ether(_remove) も変更され ています。 1. apm_enable もしこの変数が YES に設定されていれば、/dev/apm アプリ ケーションインターフェースを使用することが可能となり、 カーネルは APM イベントをハンドルすることができるよう になります (デフォルト: NO)。 2. pccard_enable もしこの変数が YES にセットされていれば、PC-card マネー ジャデーモンがブートストラップ時に起動されます (デフォ ルト: NO)。 3. pccard_mem もし PCIC 用のスクラッチメモリとして DEFAULT (0xd0000) 以外を使用したい場合は、この変数を明示的に指定して下さ い (デフォルト: DEFAULT)。 4. pccard_ether カーネル中に configure されたすべてのイーサネットイン ターフェースをリストします。例えばもし PAO を config ファイルとして使用した場合は、この変数の適切な値は、 pccard_ether="ed0 ep0 fe0 sn0"となります (デフォルト: NO)。 5. pccard_beep pccard_beep が 0 に設定されると、PC カードの抜き差しは サイレントモードになります。もしこれが 1 または 2 に設 定されると、カードが抜き差しされた際にマシンがビープ音 を発生します。1 と 2 はそれぞれ、シンプルビープモード とメロディモードに対応します (デフォルト: 2)。 6. ifconfig_"インターフェース名" "pccard_ether" にリストされたすべてのインターフェース に対応する ifconfig の引数を指定する。もしこの変数の値 が "DHCP" にセットされていたら、DHCP (Dynamic Host Configuration Protocol) クライアントが自動的に対応する インターフェースに対して起動される。もし "DHCP" を使用 したい場合は、ports/packages コレクション内の WIDE-DHCP パッケージをインストールし、かつカーネルに BPF (Berkeley Packet Filter) を configure しなければな らない (PAO config ファイルにはこの定義が含まれている)。 また bpf? デバイスを MAKEDEV するのも忘れないように。 (例 1) pccard_ether="ed0 ep0 fe0 sn0" ifconfig_common="10.0.0.1 netmask 0xffffff00" ifconfig_ed0=$ifconfig_common ifconfig_ep0=$ifconfig_common ifconfig_fe0=$ifconfig_common ifconfig_sn0=$ifconfig_common (例 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 7. defaultrouter もしこの変数をセットした場合は、デフォルトルータがカー ドを挿入した時に自動的に登録され、カードを抜いた時に自 動的に削除されます。この変数は、対応するインターフェー スの ifconfig のパラメータを "DHCP" に設定した場合には 無視されます。 8. dhcp_flags WIDE-DHCP を使用する場合、/etc/resolv.conf を自動的に 書換えたいときは "-r" オプションを指定します。また、ホ スト名を自動的に変更したいときは "-n" オプションを追加 します。 9. ifconfig_"インターフェース名"_alias インターフェース名に対応する alias の ifconfig への引 数を指定します。複数定義することも出来ます。 ifconfig_"インターフェース名" が "DHCP" に設定されてい ればこの変数は無視されます。 ifconfig_common_alias0="10.0.0.101 netmask 0xffffffff" ifconfig_ed0_alias0=$ifconfig_common_alias0 ifconfig_ep0_alias0=$ifconfig_common_alias0 ifconfig_fe0_alias0=$ifconfig_common_alias0 ifconfig_sn0_alias0=$ifconfig_common_alias0 10. static_routes_"インターフェース名" インタフェースごとの static route のリストを指定します。 実際の route コマンドへの引数は route_ に記述し ます。ifconfig_"インターフェース名" が "DHCP" に設定さ れていればこの変数は無視されます。 static_routes_common="name0 ..." static_routes_ed0=$static_routes_common static_routes_ep0=$static_routes_common static_routes_fe0=$static_routes_common static_routes_sn0=$static_routes_common route_name0="-net 192.168.0 10.0.0.2" route_name1=... 11. route_flush PCMCIA Ethernet card を二枚以上挿して Gateway として使 用する場合 "NO" に設定し、static_routes 及び defaultrouter は空とします。静的 routing が必要なら static_routes_"インターフェース名" を代わりに使用しま す。route_flush を "YES" に設定した場合、カードを抜く ときに全ての route を削除します。 * IBM ThinkPad 3xx シリーズを使っていて、FreeBSD をインストールしたい のだけれども、FreeBSD のキーボードドライバが正しくキーボードをハンド ルできません。というわけで、FreeBSD をインストールできません。なぜ? これは、これらのマシンが XT 互換キーボードを使用しているためで す。昔のバージョンの PAO にはこの機能を UserConfig から設定す るためのパッチが入っていましたが、2.2-ALPHA からこのパッチは FreeBSD に取り込まれました。インストールフロッピーから "kernel -c" オプションをつけてブートし、UserConfig のプロンプトから flags sc0 0x10 と打って下さい。これで syscons ドライバの XT 互換キーボードモー ドが有効となります。 * PAO システムで "gated" が動きません。なぜ? これは gated が、PAO が提供する「動的なインターフェースの出現」 をサポートしないからです。 * PCMCIA カードの IRQ と I/O アドレスを UserConfig ("kernel -c") を使っ て変更しようとしたのですが、効果ありませんでした。なぜ? UserConfig ("kernel -c") や config ファイル中の "device" や "controller" の引数は (xxxintr の定義を除いて) PCMCIA カードに は効果を持ちません。もしこれらのパラメータを変更したい場合は /etc/pccard.conf を編集して下さい。 * カーネルコンフィギュレーションの 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 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device sio2 device sio3 と at 以降を指定しなくてもかまいません。実際、私はそうやって作っ たカーネルを使っています。(カーネル内に領域さえ確保されれば良い) なので、sio2 か sio3 かというのは、unit number の違い以外全く 意味がありません。アドレスを決めているのは、config index だけ です。 $Id: PAO-FAQ.jp,v 1.1.1.1.8.1.2.3 1999/03/31 15:07:44 toshi Exp $