4.1. ラップトップ機の IR ポートの情報を得るには

ラップトップ機で IrDA ポートを Linux/IrDA で動かすには、StandardInfraRed (SIR) モードか FastInfraRed (FIR) モードを使うことになります。

4.1.1. SIR

SIR モードの最大速度は 115,200bps で、赤外線ポートは 16550A UART を用いたシリアルポートをエミュレートします。 このポートはカーネルのシリアルドライバによって、起動時またはシリアルドライバモジュールをロードした時点で認識されます。 もし、赤外線ポートサポートが BIOS で有効になっていれば、殆どのラップトップ機で以下のようなカーネルメッセージを見ることができるでしょう。

Serial driver version 4.25 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A     #first serial port /dev/ttyS0
ttyS01 at 0x3000 (irq = 10) is a 16550A    #e.g. infrared port
ttyS02 at 0x0300 (irq = 3) is a 16550A     #e.g. PCMCIA modem port

4.1.2. FIR

4Mbps までの速度を使いたければ、あなたのマシンにはしかるべき FIR チップが搭載されている必要があります。また、このチップをサポートした Linux/IrDA ドライバも必要です。このため、使われている FIR チップの正確な情報を入手する必要があります。 この情報を得るには以下の方法があります。

  1. マシンの 説明書 を読んでください。 但し、必要なだけの、かつ信頼できる情報がここから得られることはまれです。

  2. FIR チップが PCI デバイスかどうか調べてください。 cat /proc/pci を実行してみてください。 カーネル 2.2.x の場合は /proc/bus/pci を見ます。 ただ PCI からの情報は不十分なことが多いです。PCI デバイスの最新情報とベンダ番号は /usr/src/linux/Documentation 以下のカーネル文書か、Craig Hurt さんのページ http://members.hyperlink.net.au/~chart で得られます。 カーネル 2.1.82 以降では、pci-utils パッケージの lspci コマンドを使うこともできます。

  3. DOS ツールCTPCI330.EXE を使うこともできます。このツールはドイツのコンピュータ誌 CT の CTPCI330.ZIP から入手できます。 このプログラムで得られる情報が、Linux 用のツールで得られるものより良質であることもよくあります。

  4. Plug-and-Play (PnP) デバイス情報を得る。 isapnp ツールが役に立つでしょう。 但し、私はこのツールをこの目的で使ったことはありません。

  5. もしすでに Linux/IrDA® ソフトウェア をインストール済みなら、FIR モジュールをロードして dmesg の出力を見て FIR が検出されるかどうかを見るという手もあります。

  6. 検出方法は他にもあります。以下は Thomas Davis さんによる説明です: (原注:多少編集しています) 「ベンダの FTP サイトを漁ってみて、Windows9x FIR drivers を探します。これには SMC チップなら、以下のものが含まれています。

    -rw-rw-r--   1 ratbert  ratbert       743 Apr  3  1997 smcirlap.inf
    -rw-rw-r--   1 ratbert  ratbert     17021 Mar 24  1997 smcirlap.vxd
    -rw-rw-r--   1 ratbert  ratbert      1903 Jul 18  1997 smcser.inf
    -rw-rw-r--   1 ratbert  ratbert     31350 Jun  7  1997 smcser.vxd

    よくわからないときは、まず Windows 95 向けのドライバの .inf/.vxd ファイルを見てください。 Windows95 の出荷版には FIR ドライバは*全く*含まれていませんので、 FIR ドライバは全てサードパーティ製で、多くは Counterpoint 製のものを ESI 社が移植したものです」

  7. Thomas Davis さんは SMC 社製の小さな DOS ユーティリティ も見つけました。以下を参照下さい。 http://www.smsc.com/ftppub/chips/appnote/ir_utils.zip このパッケージには FINDCHIP.EXE コマンドと FIRSETUP.EXE ユーティリティが含まれており、後者はチップアドレス以外の全設定値を変更するのに使えます。 さらに、このパッケージには BIOSDUMP.EXE が含まれており、 これを用いれば以下の出力が得られます。

    例1 (COMPAQ Armada 1592DT の場合)

    In current devNode:
               Size      = 78
               Handle    = 14
               ID        = 0x1105D041 = 'PNP0511' &- Generic IrDA SIR
    Types:  Base = 0x07, Sub = 0x00,  Interface = 0x02
    Comm. Device, RS-232, 16550-compatible
    Attribute = 0x80
                    CAN be disabled
                    CAN be configured
    BOTH Static & Dynamic configuration
    Allocated Resource Descriptor Block TAG's:
    TAG=0x47, Length=7 I/O Tag, 16-bit Decode
    Min=0x03E8, Max=0x03E8
    Align=0x00, Range=0x08
    TAG=0x22, Length=2 IRQ Tag, Mask=0x0010
    TAG=0x79, Length=1 END Tag, Data=0x2F

    結果 1

    Irq Tag, Mask に注目してください。

    Irq Tag, Mask (ビットマップ) = 0x0010 = 0000 0000 0000 0001 0000

    これは IRQ 4 だということです (0 からはじまって順に上がっていきます)。 またこれは SIR のみのデバイスで、IRQ 4 で、IO=0x03e8 に割り当てられています。

    例 2 (これを得たマシンの詳細は不明です)

    In current devNode:
              Size      = 529
              Handle    = 14
              ID        = 0x10F0A34D = 'SMCF010' -- SMC IrCC
    Types:  Base = 0x07, Sub = 0x00,  Interface = 0x02
    Comm. Device, RS-232, 16550-compatible
    Attribute = 0x80
                   CAN be disabled
                   CAN be configured
    BOTH Static & Dynamic configuration
    
    Allocated Resource Descriptor Block TAG's:
    TAG=0x47, Length=7 I/O Tag, 16-bit Decode
    Min=0x02F8, Max=0x02F8
    Align=0x00, Range=0x08
    TAG=0x22, Length=2 IRQ Tag, Mask=0x0008
    TAG=0x47, Length=7 I/O Tag, 16-bit Decode
    Min=0x02E8, Max=0x02E8
    Align=0x00, Range=0x08
    TAG=0x2A, Length=2 DMA Tag, Mask=0x02, Info=0x08
    TAG=0x79, Length=1 END Tag, Data=0x00

    結果 2

    a) これは SMC の IrCC チップで、

    b) 一部は 0x02f8 のアドレスにあり、8 byte 分のアドレスを占有し、irq は 3 で

    c) もう一方の部分は 0x02e8 のアドレスにあり、8 byte 分のアドレスを占有し、dma 1 番 (0x02 =0000 0010) に接続されています。

    Thomas Davis さんは得られたマシン情報の一部を http://www.jps.net/tadavis/irda/devids.txt に置いています。

    Warning

    このパッケージはエンドユーザ向けではなく、一部のユーティリティは危険なものになりえます。唯一の説明文書は Microsoft Word 形式でパッケージに同封されているため、Linux ユーザは必要に応じて catdoc などで読んでください。catdochttp://www.fe.msk.ru/~vitus/catdoc/ で入手できます。

  8. Microsoft Windows 9x/NT オペレーティングシステムの Device Manager を使う。

  9. 以下の章で記載する ハードウェアサーベィ が使えます。

  10. 最後の手段として、ラップトップ機をあけてチップセット上の印刷を見ることもできます。以下は、(多分不完全な) メーカリストです[1]。 Crystal Semiconductor, Agilent (HP または Agilent (通常表記はどちらもロゴ)。 チップ名は HSDL で始まる [2])、 日立 (Hitachi)、IBM、National Semiconductor Corporation (NSC。表記はロゴ)、 NEC、Philips、シャープ (Sharp)、Standard Micro Systems Corporation (SMC/SMCC [3])、 Texas Instruments (TI)、VLSI、Winbond。 例として、HSDL-7001 の回路例を挙げます (HP の小冊子により、原著者により修正)
        LEDs    Encode/Decode    SIR/FIR
    
       HSDL-1001    HSDL-7001      UART 16550/
                      MicroController
       ______      ______________      ____________
      |      |    |              |    |            |
    (||   TXD|<---|IR_TXD     TXD|<---|SOUT        |
      |      |    |              |    |            |
      |      |    |           RCV|--->|SIN         |
      |      |    |              |    |            |
    (||   RCV|--->|IR_RCV  16XCLK|<---|BAUDOUT     |
      |      |    |          NRST|-+  |            |
       ------      --------------  |   ------------
                                   V

Notes

[1]

訳注: メーカ名なので誤記は問答無用で直しました。

[2]

訳注: IrDA の光モジュール・トランシーバ

[3]

訳注: 印刷ロゴは SMCC