Chinaunix首页 | 论坛 | 博客
  • 博客访问: 84065
  • 博文数量: 21
  • 博客积分: 766
  • 博客等级: 军士长
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-29 10:27
文章分类

全部博文(21)

文章存档

2012年(5)

2010年(10)

2009年(6)

我的朋友

分类: LINUX

2010-05-18 15:25:22

为mini2440上的android添加电话模块

Modem on the Zoom platform

来源:

打算在mini2440上,运行android拨通电话,找了些参考资料!看过这篇文章后很有启发,不敢独享:

The LDP/Zoom platforms come with an onboard Enfora EDG308 GSM/GPRS/EGPRS modem or an optional 3G modem for the Zoom2.
 
Data sheets on the Enfora EDG308 module can be found here:
 
The Radio Interface Layer (RIL) is the interface between the modem and the Telephony framework in Android. The source code of the Enfora EDG308 RIL can be found in the /hardware/enfora/ directory.
 
The Android Telephony Framework uses two channels to talk to the modem – one control channel where AT commands are exchanged between the RIL and modem and a data channel for PPP traffic. To accomplish this with the UART based EDG308 modem a 3GPP 27.010 multiplexer (/hardware/ti/omap3/gsm0710muxd) is used.
 
The 3GPP 27.010 spec can be found here: \ftp\Specs\html-info\27010.htm
 
The OMAP platform supports other modems as well. The important part is to have the right RIL that corresponds to the modem and its way of communicating whether it is AT commands or something else.
 
To substitute the standard RIL with a new one find the following lines in /vendor/ti/ldp1/ init.omapldpboard.rc and exchange it with the path to your RIL.
 
service ril-daemon /system/bin/rild -l /system/lib/libenforaedg308-ril.so -- -d /dev/pts/0
    socket rild stream 660 root radio
    socket rild-debug stream 660 radio system
    user root
    group radio cache inet misc
 
If your modem is not using serial UART to connect to the OMAP platform, but e.g. USB or SPI you just need to substitute the tty interface that the 27.010 Multiplexer connects to. Find the following lines and correct to your needs:
 
service mux /system/bin/gsm0710muxd -v -s /dev/ttyS0 -b 460800 -n 3 -m advanced
    user radio      
    group radio cache inet misc
    oneshot
 
Be sure to know the baud rate your modem and if it supports 3GPP 27.010 “basic” or “advanced” mode.
 
If your modem connects to the OMAP platform with a solution that has inbuilt multiplexing e.g. two USB or SPI channels, the 3GPP 27.010 multiplexer (gsm0710muxd) is not needed and you can remove it from the init file. Now you need to ensure that PPP connects to that second multiplexed device. Find the following lines and correct the path to the new device:
 
service pppd_gprs /etc/init.gprs-pppd /dev/pts/1
   user root
   group radio cache inet misc
   disabled
 
You also need to ensure that the modem know which channel the PPP data will go trough in this case. For the Enfora EDG308 Modem a proprietary AT command is used to tell which channel is the control channel and which is the data channel.
 
e.g.:
AT%DATA=2,\"UART\",0,2,\"SER\",\"UART\",0,1"
 
You will need to tell the modem the same thing with an AT command suited for that modem.
 
One important thing when adding new modems and tty devices that the 3GPP 27.010 multiplexer or RIL/PPP connects to… is to give the right permissions to the device. Find the following lines in the init file:
 
    # change permissions for modem
    chmod 0660 /dev/ttyS0
    chown radio radio /dev/ttyS0
 
Now do the same for you new device, e.g. a two channel USB device:
 
    # change permissions for modem
    chmod 0660 /dev/ttyUSB0
    chown radio radio /dev/ttyUSB0
    chmod 0660 /dev/ttyUSB1
    chown radio radio /dev/ttyUSB1
 
 
If PPP is used it is important to compile the Linux Kernel with PPP support. Enable this at “Device Drivers” -> “Networking Support” -> “PPP”.
阅读(1449) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~