2.2. カーネル

2.2.1. はじめに

まず、Kernel-HOWTO を呼んでコンパイル手順について情報を得ておいてください。 また、http://irda.sourceforge.net および Linux/IrDA メーリングリストアーカイブを調べて最新のパッチを入手してください。

IrDA のコードは

/usr/src/linux/net/irda (protocol 関連)

/usr/src/linux/drivers/net/irda (デバイスドライバ)

/usr/src/linux/include/net/irda (ヘッダファイル)

の各場所にあります。

一般的なパラメータ カーネル 2.4.x ソースを使っているか確認してください。カーネルのバージョンに自信がなければ uname -r コマンドを使ってください。

Linux/IrDA プロジェクトから最新のカーネルパッチを入手してください。 または Alan Cox 氏のカーネルシリーズを使ってください。これを /usr/src か、カーネルソースを普段置いている場所に置きます。 このとき、以下の patch-2_2.0-irdaXXX を実際のファイル名に読み替えてください。
cd /usr/src
tar xvzf patch-2_2.0-irdaXXX.tar.gz
cd linux
patch -p1 -l < ../patch-2_2.0-irdaXXX
最新のドライバでは、カーネルの実験的機能のサポート (CONFIG_EXPERIMENTAL) を有効にする必要があるでしょう。 【訳注: 2.4.17 あたりではほぼ統合が済んでいるそうです。】

"General Setup" の項で、sysctl を CONFIG_SYSCTL で有効にします。

CONFIG_PROC_FS で proc ファイルシステムサポートを有効にすべきです。

CONFIG_SERIAL で SIR 機能のシリアルサポートを有効にします。

Linux/IrDA でプリンタを使う際に CONFIG_PRINTER を有効にする必要があるかどうかについては、私はよく知りません。多分不要ではないかと思います。

CONFIG_NET によるネットワークサポートは必須です。

モジュールサポートの CONFIG_MODULES をカーネルに含めるよう確認してください。 lsmodを用いるなどしてテストしておいてください。

CONFIG_KERNELD で kerneld のサポートを含めてください。但し、これについては kmod (CONFIG_KMOD) でも動作します。モジュールではなく全部組み込むようにしても動くようですが、モジュールを使うことを強く強くお勧めします。

irdadump を使うには、おそらく CONFIG_PACKET を有効にする必要があるでしょう。

Linux/IrDA パッチを当てただけの修正ですむなら、多分 make clean を行う必要はなく、多少時間の節約になります。以下のようにすることがお勧めです。

make dep && make all && make modules && make install && make modules_install

これで変なエラーが出るようなら、make clean を行って最初から作成し直してください。

2.2.2. IrDA 固有のパラメータ

以下は ../linux-2.4.3/Documentation/Configure.help から引いてきたものです。現状と新しいドライバについては最新のカーネル文書に当たってください。

【訳注: 混乱を避けるため、2001/12/13 付けのカーネルの Configure.help 日本語訳の訳文+αを用いました。ただし、他と口調をあわせるためかなり手を入れています。】

2.2.2.1. IrDA subsystem support (IrDA サブシステムサポート)

IrDA subsystem support (IrDA サブシステムサポート)

CONFIG_IRDA

IrDA (TM) プロトコルを有効にしたいなら、ここで Y と答えてください。 The Infrared Data Associations (tm) は無線赤外線通信の規格 を策定する団体で、その規格はほとんどのラップトップと PDA でサポートされています。

IrDA (tm) プロトコルを有効とした Linux を使用するには、irmanager と、 それに加えて恐らく irattach のようないくつかのユーザ側のユーティリティ も必要になるでしょう。詳しくは Documentation/networking/irda.txt をご覧ください。Infrared-HOWTO も参照したい場合は、 http://www.linuxdoc.org/docs.html#howto から入手できます。

この機能はモジュールとしても利用できます。モジュール名は irda.o です。モジュールとしてコンパイルしたいなら、ここで M と答え、 Documentation/modules.txt をお読みください。

IrDA Cache last LSAP (IrDA で最終 LSAP をキャッシュする)

CONFIG_IRDA_CACHE_LAST_LSAP

IrLMP で最後に使った LSAP をキャッシュしておきたいなら、 ここで Y と答えてください。これは、ほとんどのフレーム が同じ接続で送信/受信されるようになるので、意味があります。 このオプションを有効にすると一フレーム当り一回の ハッシュ検索の実行を節約できます。

よくわからなければ Y と答えてください。

IrDA Fast RR's (IrDA 高速 RR)

CONFIG_IRDA_FAST_RR

第一ステーションとして稼働させるとき、IrLAP に高速 RR (受信準備) フレームを送るようにさせたいならここで Y と答えてください。 このオプションを有効にすると、フレームの受信後送信キューが空なら ただちに IrLAP が RR フレームを送信するようになります。 こうすることで第二ステーションは、大量のデータを受信するとき、 次回の送信を許可する前に、最大の turn around time まで待つ必要がなくなり、 速度が大きく向上します。 第二ステーションの送信キューも空なら、第一ステーションは、タイムアウトが 通常値に達するまで RR フレームを送信するために長時間待つ 処理をやめます。このオプションを有効にすると、IR ダイオードの電力消費が増え、その結果バッテリの寿命が縮まります。

よくわからなければ N と答えてください。

IrDA デバッグ

CONFIG_IRDA_DEBUG

IrDA サブシステムが syslog にデバッグ情報を書き込むようにしたいなら、 ここで Y と答えてください。デバッグ・レベルは /proc/sys/net/irda/debug で変更できます。

よくわからなければ (バグをみつけるのが容易になるので) Y と答えてください。

IrLAP 圧縮サポート

CONFIG_IRDA_COMPRESSION

圧縮は IrDA (tm) プロトコルの仕様の一部では「ありません」 が、でもすばらしくうまく動いています。 Linux が初めて IrLAP 層での圧縮のサポートを試みました。したがって Linux <-> Linux 間で通信する場合に限り、圧縮による利益を受ける ことができます。

ここで Y とした場合は、以下の圧縮プロトコルのところでも Y または M とする必要があります。

IrLAP Deflate 圧縮プロトコル (試験的)

CONFIG_IRDA_DEFLATE

Deflate 圧縮プロトコルを有効にしたければ、ここで Y と答え てください。 deflate 圧縮 (GZIP) は PPP プロトコルで使われ ている方法と全く同じものです。

モジュールとしてコンパイルしたければ、ここでは M と答え、 Documentation/modules.txt を読んでください。モジュールの 名前は irda_deflate.o になります。

IrLAN プロトコル

CONFIG_IRLAN

IrLAN プロトコルを有効にしたいなら、ここで Y と答えてください。 モジュール (irlan.o) としてコンパイルしたいなら、ここで M と答え、Documentation/modules.txt をお読みください。 IrLAN は Ethernet をエミュレートし、赤外線を用いた無線 LAN を提供できるようになります。

IrLAN プロトコルは HP 製 NetbeamIR や ESI 製 JetEye NET の 赤外線アクセスポイントと通信できます。LrLAN を使用した他の Linux マシンと接続してお手軽なネットワーキングもできます。

IrCOMM プロトコル

CONFIG_IRCOMM

IrCOMM プロトコルを有効にしたいなら、ここで Y と答えてください。 モジュールとしてコンパイルしたいなら、ここで M と答え、 Documentation/modules.txt をお読みください (ircomm.o と ircomm-tty.o がモジュールです)。IrCOMM はシリアルポート ・エミュレーションを実装しており、TTY を認識する既存の 全アプリケーションを赤外線リンク経由で使用可能になります。従って PPP、minicom などの TTY を用いるアプリケーションを利用できるようになります。 このオプションを有効にするとircomm と ircomm_tty と呼ばれるふたつのモジュールが生成されます。

2.2.2.2. デバイスドライバ

IrTTY IrDA デバイス・ドライバ

CONFIG_IRTTY_SIR

IrTTY ライン・ディシプリンを有効にしたいなら、ここで Y と答えてください。モジュール (irtty.o) としてコンパイルしたいなら、 ここで M と答え、Documentation/modules.txt をお読みください。 IrTTY により Linux のシリアル・ドライバーを 16550 互換な IrDA の全ポートで使用できるようになります。ほとんどの IrDA チップは 16550 互換なので、このオプションには恐らく Y と答えることになるでしょう。しかしながら IrTTY を用いた場合には このドライバでは接続速度が 115200 bps (IrDA SIR モード) に制限されます。

よくわからなければ Y と答えてください。

IrPORT IrDA デバイスドライバ

CONFIG_IRPORT_SIR

IrPORT IrDA のデバイスドライバを有効にするには、ここで Y と答えてください。モジュール (irport.o) としてコンパイルしたいなら M と答え、Documentation/modules.txt を読んでください。 IrPORT は IrTTY の代わりに使用することができますが、 場合によっては IrPORT の方が都合がいいこともあります。一例を あげると、あなたのコンピュータの IrDA ポートにエコー・キャンセルの機能がない場合で、この種のポートでは IrPORT を使うとうまく動きます。というのは、このドライバは半二重 モードでのみ動作するからです。IrPORT では irattach を使わなくても、"insmod irport io=0x3e8 irq=11" のように FIR ドライバと同じ方法で組み込むことができます。

もし自信がないなら、Y と答えてください。

Winbond W83977AF IrDA デバイス・ドライバ

CONFIG_WINBOND_FIR

Winbond W83977AF super-io チップセット用に IrDA を有効にしたいなら、ここで Y と答えてください。Corel NetWinder の IrDA チップセット用にはこのドライバを使うべきです。ドライバが サポートしている速度は SIR、MIR、FIR (4Mbps) です。

モジュールとしてコンパイルしたいなら、ここで M と答え、 Documentation/modules.txt をお読みください。モジュール名は w83977af_ir.o になります。

NS PC87108 IrDA デバイス・ドライバ

CONFIG_NSC_FIR

NS 社 PC87108 と PC87338 IrDA チップセットのサポートを有効にしたいなら、 ここで Y と答えてください。このドライバは SIR、MIR、FIR (4Mbps) をサポートしています。

モジュールとしてコンパイルしたいなら、ここで M と答え、 Documentation/modules.txt をお読みください。モジュール名は nsc-ircc.o になります。

Toshiba Type-O IR ポートのデバイスドライバ

CONFIG_TOSHIBA_FIR

Toshiba Type-O IR チップセットを有効にするには、ここで Y と答えてください。このチップセットは、Toshiba Libretto 100CT や多くのラップトップ・コンピュータで使用されています。 モジュールとしてコンパイルしたいなら M と答え、 Documentation/modules.txt を読んでください。モジュール名は toshoboe.o になります。

SMC IrCC (試験的)

CONFIG_SMC_IRCC_FIR

SMC 社の赤外線通信コントローラのサポートを有効にしたいならここで Y と答えてください。これは富士通 Lifebook 635t と Sony VAIO PCG-505TX で使われています。モジュールとしてコンパイルしたいなら M と答え、 Documentation/modules.txt を読んでください。モジュール名は smc-ircc.o になります。

ALi M5123 FIR コントローラ向けドライバ (試験的)

CONFIG_ALI_FIR

ALi 社の M5123 赤外線通信コントローラのサポートを有効にしたいならここで Y と答えてください。この ALi M5123 FIR コントローラは ALi の M1543C、 M1535、M1535D、M1535+、M1535D の各サウスブリッジの内蔵コントローラでもあります。このドライバは SIR、 MIR、FIR (4Mbps) をサポートしています。

モジュールとしてコンパイルしたいなら M と答え、 Documentation/modules.txt を読んでください。モジュール名は ali-ircc.o になります。

シリアルドングルサポート

CONFIG_DONGLE

あなたのコンピュータのシリアルポートに接続する赤外線デバイスを使っている場合 Y と答えてください。これらのデバイスを総称してドングルと呼びます。 次に、使っているドングルの機種にあわせて以下で Y または M と答えてドライバを選択してください。

この質問に対する答えは、直接にはカーネルには影響しません。 N と答えることによって以下のシリアルドングルについての質問がすべて スキップされるだけです。

ESI JetEye PC ドングル

CONFIG_ESI_DONGLE

Extended Systems 社の JetEye PC dongle のサポートを有効にしたいなら、 ここで Y と答えてください。モジュールとしてコンパイルしたいなら、ここで M と答え、Documentation/modules.txt をお読みください。 ESI dongle は通常の 9 ピン・シリアル・ポート・コネクターに接続され、現在 IrTTY で使われるだけです。ESI ドングルを有効にするには、"irattach -d esi" として irattach をスタートさせる必要があります。

ACTiSYS 社 IR-220L 及び IR220L+ ドングル

CONFIG_ACTISYS_DONGLE

ACTiSYS IR-220L, IR220L+ ドングルのサポートを有効にしたいなら、ここで Y と答えてください。モジュールとしてコンパイルしたいなら、ここで M と答え、Documentation/modules.txt をお読みください。 ACTiSYS dongle は通常の 9 ピン・シリアル・ポート・ コネクターに接続され、現在 IrTTY で使われるだけです。 ACTiSYS ドングルを有効にするには、"irattach -d actisys" または "irattach -d actisys+" として irattach をスタート する必要があります。

Tekram IrMate 210B ドングル

CONFIG_TEKRAM_DONGLE

Tekram IrMate 210B ドングルのサポートを有効にしたいなら、ここで Y と答えてください。モジュールとしてコンパイルしたいなら、ここで M と答え、Documentation/modules.txt をお読みください。 Tekram ドングルは通常の 9 ピン・シリアル・ポート・コネクター に接続され、現在 IrTTY で使われるだけです。Tekram ドングル を有効にするには、"irattach -d tekram" として irattach を スタートする必要があります。

Greenwich 社の GIrBIL ドングル

CONFIG_GIRBIL_DONGLE

Greenwich 社の GIrBIL ドングルのサポートを有効にするには、ここで Y と答えてください。モジュールとしてコンパイルしたいなら M と答え、Documentation/modules.txt を読んでください。 Greenwich ドングルは通常の 9 ピン シリアル・ポート・コネクタに接続し、 現時点では IrTTY のみで使用できます。 /etc/irda/drivers スクリプトに "irattach -d girbil" と記述することで、Greenwich ドングルを利用可能にするこ とができます。

Parallax Litelink ドングル

CONFIG_LITELINK_DONGLE

Parallax Litelink ドングルのサポートを有効にするには、ここで Y と答えてください。モジュールとしてコンパイルしたいなら M と答え、Documentation/modules.txt を読んでください。 Parallax ドングルは通常の 9 ピン シリアル・ポート・コネクタに接続し、 現時点では IrTTY のみで使用できます。Parallax ドングルを使うためには、 "irattach -d litelink" として irattach をスタートさせる 必要があります。

旧 Belkin ドングル

CONFIG_OLD_BELKIN_DONGLE

Adaptec 社の Airport 1000 と 2000 ドングルのサポートを有効にしたいなら Y と答えてください。モジュールとしてコンパイルしたいなら M と答え、Documentation/modules.txt を読んでください。 このモジュールは old_belkin.o という名前になります。 多少の情報がドライバ drivers/net/irda/old_belkin.c の頭の部分のコメントに書かれています。

【訳注:Berkin ドングルには新旧有り、旧のみサポートと以前のカーネル Configure.help にはある。外見で見分けはつかず、ばらしてみる必要ある由。】

2.2.3. 現在のカーネルパッチ

特記項目: donauoboetoshoboe の新版で、FIR サポートが改良され、Donauoboe チップのサポートが追加され ています。http://libxg.free.fr/lib-irda.html をご覧下さい。

USB ドングルパッチについては Linux/IrDA メーリングリストアーカイブを調べてください。