Linux 手機是 Embedded Linux 的重要應用項目之一,要能具備「手機」的功能,GSM Modem最基本的規格之一當然就是要支援 GSM(Global System for Mobile Communications)標準,也就是我們稱之為 2G 的行動電話標準。
GSM 系統使用一種稱之為 GSM modem 的裝置(也就是我們耳熟能詳的「數據機」)來做電話的「外撥(dial out)」與「接聽(answer)」功能。因此,Linux 手機要能打電話與接聽電話,必須將 target device 外接 GSM modem,並透過 GSM modem 的指令集(AT command)來對 GSM modem 下撥號或接聽指令。
GSM modem 與 target device 是以 UART(RS-232)介面連接,因此需要一個與 GSM modem 溝通的 RS-232 通訊程式。在此次 OpenMoko 所釋出的原始碼裡頭,就包含了一個 GSM modem 的通訊管理程式,稱為 gsmd(GSM daemon);此外,gsmd 也包含一個 libgsmd 的 API 程式庫供開發者使用。
OpenMoko 也提供一個 ' libgsmd-tool' 的展示範例,此程式可執行 Power On/Off、answer incoming call、dial out 與 hangup call(掛斷)的基本功能。同時,'libgsmd-tool' 也提供 AT 指令集模式(atcmd mode),讓我們可以「直接」對 GSM modem 下達 GSM 07.07 標準的指令集。
gsmd 的使用說明,已出現在 OpenMoko 的 wiki 裡了,可參考 [OpenMoko's Wiki] 有關 [Gsmd] 的部份。