i.max6 e9 android系统添加3G模块支持 上
分類:?android定制2014-01-23 12:15?151人閱讀?評論(0)?收藏?舉報 imax6e9freescale3G
目錄(?)[+]
? ? ? ? 本文為中興MG3732為例,介紹3G模塊在android系統上的移植過程。
? ? ? ? ?大部分3G模塊廠商已經提供了3G模塊的移植方法和需要的相關庫,只需要按照手冊中的步驟一步一步操作即可,下面一部分摘抄自中興提供的說明,一部分是個人移植過程中遇到問題的一些解決方法,供大家參考。
? ? ? ??MG3732是ZTEMT的一款移動終端,可以通過usb接口接入具備usb主機控制器功能的PC或AndroidPAD等其他終端設備。基于WCDMA無線通信技術,實現語音、短信、無線數據業務。
? ? ? ? ? ?作為一個USB設備,它包括了幾個接口。
-
接口0:實現了一個modem,?用于AT控制指令的發送和接收,完成撥號上網功能。
-
接口1:實現的串口用做serviceport,用于發送和接收終端服務,短信、電話等控制指令(DM/AT)的響應。
-
接口2:實現的串口作為接收和發送pcm語音數據。
-
接口3,4:(如果有)則作為diagnosticsport或GPSport,目前基本不使用該串口。
對應Linux串口設備文件分別是:/dev/ttyUSB0、/dev/ttyUSB1、/dev/ttyUSB2、/dev/ttyUSB3。
MG3732在我電腦上的顯示如下:
[html]?view plaincopy
? ? ?1、使用內核默認option驅動(推薦)
? ? ? ? ? 我們推薦的最方便簡單的方法是,使用(Android)Linux內核自帶的option.c模塊;其中已經支持了不少usb3G模塊設備。為了支持本公司新的模塊,只需在option.c文件中添加對應的設備IDS就行了。
? ? ? ? ? ?查詢模塊設備IDS的方法很簡單,只需要lsusb命令就能列出Linux系統下的所有USB設備IDS了。
[html]?view plaincopy[html]?view plaincopy
? ??加入ID后,重新編譯內核即可。新的內核就能支持這些模塊了。
2、無線接口層介紹
當模塊驅動被內核加載并正確驅動后,該3G模塊才能進行無線通信功能的應用開發。這在Android系統下稱為無線接口層——RIL。即該文檔所要說明的RIL驅動。? ? ? ? android的ril位于應用程序框架與內核之間,分成了兩個部分,一個部分是rild,它負責socket與應用程序框架進行通信。另外一個部分是Vendor RIL,這個部分負責向下是通過兩種方式與radio進行通信,它們是直接與radio通信的AT指令通道和用于傳輸數據包的通道,數據通道用于手機的上網功能。
也就是我們所提供的RIL驅動,是實現通信業務的核心功能模塊。
? ? ? ? 對于RIL的java框架部分,也被分成了兩個部分,一個是RIL模塊,這個模塊主要用于與下層的rild進行通信,另外一個是Phone模塊,這個模塊直接暴露電話功能接口給應用開發用戶,供他們調用以進行電話功能的實現。這是屬于Android應用程序的開發部分,簡單了解即可。
所以RIL驅動模塊,必需是針對不同的3G模塊(模塊)指令和通信業務功能定制的,以支不同應用需求。建議開發人員在使用我們的RIL驅動前,先了解下“3G模塊的特點和構造”。
3、模塊RIL驅動使用說明
??? ?3.1、目錄結構說明? ? ? ? ? ? ? 在我們提供的附件壓縮包中,一般包含如下文件和目錄:
ppp 目錄為pppd撥號腳本目錄(該目錄文件為測試腳本,可能不提供) ril目錄為啟動ril所需的相關文件(文件名可能會根據版本不同進行修改),主要包括以下幾個: libzteevdo-ril.so:支持evdo制式的ril動態鏈接庫 libztewcdma-ril.so:支持wcdma制式的ril動態鏈接庫 zterilPara:參數配置文件 ip-up:pppd連接之后調用的腳本文件 注:libzteevdo-ril.so和libztewcdma-ril.so并不一定會同時提供,根據模塊的制式通常只會單獨提供其中一個。
? ??3.2、RIL驅動使用說明?
1、拷貝libzteevdo-ril.so (libztewcdma-ril.so)以及zterilPara到 /system/lib目錄下。
確保/system/bin 目錄下有pppd 和chat 兩個程序,且具有執行權限。
添加ip-up到/system/etc/ppp/目錄下。
2、修改系統初始化配置init.rc,將原本的rild服務 ? ? ? ? service ril-daemon /system/bin/rild
class main
socket rild stream 660 root radio
socket rild-debug stream 660 radio system
socket rild-ppp stream 660 radio system
user root
group radio cache inet misc audio sdcard_rw log ? ? ? 修改為 ? ? ? ?service ril-daemon /system/bin/rild -l /system/lib/libztewcdma-ril.so?
class main
?socket rild stream 0660 root radio
?socket rild-debug stream 0660 radio system
?user root
?group radio cache inet misc audio sdcard_rw log
? ? ? ? ? ?3.3、修改相應的設備讀寫權限
? ? ? ? ? ? 包括/dev/ttyUSB0~/dev/ttyUSB3,有時會包括/dev/ttyUSB4和/dev/ttyUSB5,因此我們建議將所有的ttyUSB設備修改為radio用戶可讀寫權限。修改init.freescale.rc文件,添加如下:
? ? chmod 0777 /dev/ttyUSB0? ? chmod 0777 /dev/ttyUSB1
? ? chmod 0777 /dev/ttyUSB2
? ? chmod 0777 /dev/ttyUSB3
? ? chmod 0755 /system/lib/usiuna-ril.so
? ? chmod 0644 /system/lib/zterilPara
? ? chmod 0755 /system/lib/libztewcdma-ril.so
? ? chmod 0755 /system/lib/libzteevdo-ril.so
? ? chown root /system/bin/pppd
? ? chmod 4755 /system/bin/pppd
? ? chown root /system/bin/chat
? ? chmod 4755 /system/bin/chat
? ? chmod 755 /system/etc/ppp/ip-up
? ? setprop gsm.ril.delay 15
? ? setprop ro.ril.wake_lock_timeout 300 ? ? ? ? ??3.4、 ?修改hardware/ril/rild/rild.c文件,以加載zte庫,源碼就不列了,等下以附件的形式供下載。 ? ? ? ? ? ? ? ? ? ? ? ?下載鏈接
總結
以上是生活随笔為你收集整理的i.max6 e9 android系统添加3G模块支持 上的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝扫码转账到银行卡/飞行模式
- 下一篇: 18个Windows应该有却没有具有的服