JF Linux Kernel 3.x/2.6 Documentation: /usr/src/linux/Documentation/networking/ltpc.txt

networking/ltpc.txt

Apple または Farallon の LocalTalk PC カードのドライバの説明 [プレインテキスト版]


ltpc ドライバのアルファ版です。

このドライバを使用するには、netatalk パッケージのバージョン 1.3.3 もし
くはそれ以降と Apple か Farallon の LocalTalk PC カードが必要になりま
す。PC 向けに様々な LocalTalk 用のカードがありますが、このドライバでは
65c02 プロセッサ・チップが搭載してあるカードだけしか動作しません。

カーネルにこのドライバを組み込むには、カーネルの設定ダイアログで
CONFIG_LTPC スイッチを選んでください。またドライバはモジュールとしてコ
ンパイルすることもできます。

ドライバはカードの I/O ポートアドレスや IRQ、DMA チャネルを自動的に読
み取り設定しようとしますが、必ずしもうまくいくわけではありません。つま
り、手動で設定を行う覚悟をしておく必要があります (下記の「カードの設定」
を参照してください。どのようにカードの設定を決め、変更するかについて述
べています)。

ドライバをカーネル内にコンパイルした時は、/etc/lilo.conf へ次に示すよ
うな行を追加できます。

 append="ltpc=0x240,9,1"

この引き数は (順番に) ポートアドレス、IRQ、DMA チャネルです。二番目と
三番目の値は省略できます。省略した場合、ドライバ自身で決められた値を適
用しようとします。

ドライバをモジュールとしてロードするなら、insmod か modprobe のコマン
ドラインあるいは /etc/modules.conf のオプションとして、引き数 "io=",
"irq=", "dma=" を渡すことができます。

 alias lt0 ltpc # autoload the module when the interface is configured
 options ltpc io=0x240 irq=9 dma=1

netatalk デーモンの起動の前に、(たぶん rc.local に) 次のような行を追加
する必要があります。

 /sbin/ifconfig lt0 127.0.0.42

大切なのはアドレスの部分ではなく、Netatalk にカードを認識させるには
ifconfig を使って設定しておく必要がある、ということです。

netatalk を正しく設定するには、所属しているネットワークに AppleTalk ルー
タがあるかどうかによって決まります。私と同様に、単純に家庭の Macintosh
やプリンタを接続しているなら、netatalk を "シード(seed)" に設定する必
要があります。私は、次の行を atalkd.conf に設定し、これを行っています。

 dummy -seed -phase 2 -net 2000 -addr 2000.26 -zone "1033"
 lt0 -seed -phase 1 -net 1033 -addr 1033.27 -zone "1033"

この設定では netatalk をだまして、あたかも AppleTalk のインタフェース
が 2 つあるかのように思わせています。こうしないとシード・ルータにはな
れません。間に合わせなやり方なので、もっときちんとした解決方法は
netatalk のプログラムを修正することでしょう。また、ダミーインターフェー
スの正しい名前を確認してください - モジュールとしてコンパイルされてい
るなら、"dummy0" か類似の名前で参照する必要があるでしょう。

ルータを伴った大きな AppleTalk ネットワークに所属しているなら、この対
処で netatalk をだます必要はありません - atalk.conf の適切な行は

 lt0 -phase 1

になります。

--------------------------------------

カードの設定 -

割込みなどはボード上のディップスイッチにより設定されます。他のハードウェ
アと競合しないように設定してください。

    割込み -- どれか一つをセット (オンに) します。何もセットしなければ
    ドライバは polled mode を使います。カードは XT 時代に開発されたの
    で、その元々の文書は IRQ2 にふれています。あなたは AT (もしくはそ
    れ以降の) クラスのマシン上で実行するでしょうから、実際には IRQ9 を
    意味します。


    SW1     IRQ 4
    SW2     IRQ 3
    SW3     IRQ 9 (元々のカードの文書にある 2 は XT にだけ適用されます)


    DMA -- DMA 1 か 3 を選んで、対応するスイッチの両方をセットします。

    SW4     DMA 3
    SW5     DMA 1
    SW6     DMA 3
    SW7     DMA 1


    I/O アドレス -- 一方を選んでください。

    SW8     220 / 240

--------------------------------------

IP -

はい、IP over LocalTalk を行うことが可能です。しかし、LocalTalk デバイ
スを普通のイーサネットデバイスと全く同じように扱うことは、たとえ
netatalk で同じように見えたとしても、できません。

その代わりに、EtherTalk 内で IP を実行するのと同じ手順に従います。カー
ネルドライバやユーザ空間のツールが必要となることについての追加情報に関
しては Documentation/networking/ipddp.txt を見てください。

--------------------------------------

バグ -

IRQ の自動探査はコールドブート時に時々動作しません。この対処には、モ
ジュールとしてドライバをコンパイルするか、上記で述べたようにカード用の
引き数をカーネルに渡すかのどちらかです。

さらに、例によって、自動探査はドライバをモジュールとして使う場合推奨さ
れません (だけど、少なくとも、ブート時だけは普通に動作します)。

時々 polled mode は *本当に* 遅くなりますが、これはネットワークの設定
に依存するようです。 

同じマシン上で二枚の LTPC カードを使うことは理論的に可能ですが、これは
サポートされないので、本気で二枚使いたいのなら、たぶん初期化のプログラ
ムをちょっとだけ修正する必要があるでしょう。

______________________________________

謝辞 -
    この作業の早くから有益な議論をしていただいた Alan Cox と
    検証試験を行っていただいた Denis Hainsworth に感謝します。

-- 初版:Bradford Johnson <bradford@math.umn.edu>

-- 更新:11/09/1998 David Huggins-Daines <dhd@debian.org>

-- 日本語訳:野本浩一 <hng@ps.ksky.ne.jp>
       校正:高橋聡さん <hisai@din.or.jp>

Linux カーネル 3.x/2.6 付属文書一覧へ戻る