34.3. 紅外線資料傳輸

IrDA (紅外線資料關聯) 是以紅外線進行無線通訊的產業標準。目前販售的許多膝上型電腦均配備有 IrDA 相容接收器,可與其他設備 (如印表機、數據機、LAN 或其他膝上型電腦) 通訊。傳輸速率範圍從 2400 bps 到 4 Mbps。

IrDA 操作模式有兩種。標準模式 SIR 透過序列介面存取紅外線連接埠。此模式幾乎可在所有系統上使用,而且對於大部份需求已經夠用。較快的模式 FIR 必須要有 IrDA 晶片的特殊驅動程式。FIR 模式並不支援所有晶片類型,因為缺乏適當的驅動程式。請在電腦的 BIOS 中設定想要的 IrDA 模式。BIOS 也會顯示 SIR 模式所使用的序列介面。

您可以在 Werner Heuser 的 IrDA how-to 中找到的 IrDA 相關訊息,網址為 http://tuxmobil.org/Infrared-HOWTO/Infrared-HOWTO.html。除此之外,您可以參考 Linux IrDA Project 網站 http://irda.sourceforge.net/

34.3.1. 軟體

所需的核心模組包括在核心套件中。irda 套件提供所需協助程式應用程式以支援紅外線介面。安裝套件之後,可在 /usr/share/doc/packages/irda/README 找到文件。

34.3.2. 組態

當系統啟動時,IrDA 系統服務不會自動啟動。請使用 YaST IrDA 模組以啟動。在此模組中僅可修改一個設定:紅外線設備的序列介面。測試視窗會顯示兩個輸出。一個是 irdadump 的輸出,記錄所有傳送和接收的 IrDA 封包。此輸出應包含電腦名稱和傳輸範圍中所有紅外線設備的名稱。這些訊息的範例顯示在 節 34.3.4, "疑難排解" 中。有 IrDA 連線存在的所有設備列示於視窗下方。

IrDA 消耗相當可觀的電池電量,它每隔幾秒便傳送探索封包以偵測其他週邊設備。因此,如果您依賴電池電力,則應該僅在需要時啟動 IrDA。輸入 rcirdastart 指令以啟用,或 rcirdastop 指令以停用。在介面啟動時會自動載入需要的所有核心模組。

可在 /etc/sysconfig/irda 檔案中執行手動組態。此檔案僅包含一個變數 IRDA_PORT,它可以決定 SIR 模式所使用的介面。

34.3.3. 使用方式

資料可傳送到設備檔案 /dev/irlpt0 以列印。設備檔案 /dev/irlpt0 功能與一般 /dev/lp0 有線介面類似,除了列印資料是以紅外線無線傳送之外。對於列印,請確認印表機在電腦紅外線介面的視覺範圍之內,以及紅外線支援已啟動。

透過紅外線介面操作的印表機可使用「YaST 印表機」模組加以設定。因為不會自動偵測它,可以按一下 其他 (未偵測到者) 以手動設定它。在下列對話方塊中,選取 IrDA 印表機。通常,irlpt0 是正確連線。在 章 11, 印表機操作 中,可取得在 Linux 中操作印表機的詳細資訊。

與其他主機和行動電話或其他類似設備的通訊,是透過設備檔案 /dev/ircomm0 所指導。例如,Siemens S25 和 Nokia 6210 行動電話可以使用紅外線介面,以 wvdial 應用程式撥號並連線到網際網路。假使對應應用程式的設備設定已設定為 /dev/ircomm0,也可以與 Palm Pilot 同步化資料。

如果您想要,可以僅處理支援印表機或 IrCOMM 通訊協定的設備。支援 IROBEX 通訊協定的設備 (如 3Com Palm Pilot) 可使用特殊應用程式 (如 irobexpalm 和 irobexreceive) 來存取。如需詳細資訊,請參考 IR-HOWTO (http://tldp.org/HOWTO/Infrared-HOWTO/)。設備所支援的通訊協定是列在 irdadump 輸出中設備名稱之後的括號內。IrLAN 通訊協定支援仍然是「進行中的工作」。

34.3.4. 疑難排解

如果連線到紅外線連接埠的設備沒有回應,請使用指令 irdadump (以 root 的身份) 來檢查電腦是否辨識到其他設備。當 Canon BJC-80 印表機在電腦的可見範圍中時,會固定出現類似 範例 34.1, "irdadump 的輸出" 的現象:

範例 34.1. irdadump 的輸出

21:41:38.435239 xid:cmd 5b62bed5 > ffffffff S=6 s=0 (14) 
21:41:38.525167 xid:cmd 5b62bed5 > ffffffff S=6 s=1 (14)
21:41:38.615159 xid:cmd 5b62bed5 > ffffffff S=6 s=2 (14)
21:41:38.705178 xid:cmd 5b62bed5 > ffffffff S=6 s=3 (14)
21:41:38.795198 xid:cmd 5b62bed5 > ffffffff S=6 s=4 (14)
21:41:38.885163 xid:cmd 5b62bed5 > ffffffff S=6 s=5 (14)
21:41:38.965133 xid:rsp 5b62bed5 < 6cac38dc S=6 s=5 BJC-80 
                        hint=8804 [Printer IrCOMM ] (23) 
21:41:38.975176 xid:cmd 5b62bed5 > ffffffff S=6 s=* earth 
                        hint=0500 [ PnP Computer ] (21)

檢查介面的組態,是否沒有輸出或是其他設備沒有回覆。確認所使用的介面是正確的。紅外線介面有時候位在 /dev/ttyS2 或在 /dev/ttyS3,而有時候會使用 IRQ 3 以外的中斷。這些設定幾乎可以在所有膝上型電腦的 BIOS 設定功能表中檢查和修改。

簡單的視訊攝影機也可協助判斷紅外線 LED 燈號是否全部都亮。大部份視訊攝影機可以看到紅外線;但是人眼卻不能。