让Android也支持华为EM770模块

本文介绍了如何让Android系统支持华为EM770 WCDMA模块,包括编译内核、修改RIL源码以适配EM770的AT和URC接口,并提供了解决方案以实现模块的正常工作,但目前存在无声音的问题。
摘要由CSDN通过智能技术生成

硬件:

Devkit8000 256M+256M

HuaWei EM770  WCDMA模块

Option ICON7.2 mini-pci转USB卡座

EM770ICON7.2

 

软件版本:

0xdroid beagle-eclair

0xkernel 2.6.32

 

源码下载与编译,参考0xlab官方wiki:http://code.google.com/p/0xdroid/wiki/Source

 


 

     Android中负责与Modem交互的模块是RIL,位于源码的hardware目录之下。这部份代码自发布以来基本上没怎么更新过,主要都是各个基带厂商根据自己的芯片去实现这部份代码。

 

     前不久在Google上网卡的时候,看到HUAWEI EM770支持语音电话,所以就萌生了一个想法,将它更到Android上来玩。在淘宝上入手了一块拿来研究,在windows上只要修改下Mobile Partner的configure文件就可以打接电话了,下载链接:

 

一、编译内核 

    弄到Android上,首先得让Linux内核认识EM770才行,所以第一步理所当然的就是配置kernel.

    make menuconfig:

    Device Drivers  --->

                 [*] USB support  --->

                            <*>   USB Serial Converter support  --->

 

                                                    [*]   USB Serial Console device support

                                                    [ ]   Functions for loading firmware on EZUSB chips

                                                    [*]   USB Generic Serial Driver

                                                   <*>   USB FTDI Single Port Serial Driver

                                                   <*>   USB driver for GSM and CDMA modems

     make uImage

    好像直接用官方编好的0xkernel镜像也行。

 

 

二、进入Linux,检查驱动是否正常工作。

    我调试Android的是先进入普通Linux再chroot到Android,自己怎样玩看个人喜好。

    配置好usb转串口的驱动后,插入上网卡,会在dev下生成ttyUSB0、ttyUSB1、ttyUSB2三个设备。通过先前在X86下测试这三个串口可以得知ttyUSB0是AT口,ttyUSB2是URC口,ttyUSB1谷狗告诉我是trace log用的没找到Linux下可用的软件进行验证,先不管它。

 

三、修改RIL源码

    RIL默认下访问Modem是打开的/dev/ttySx结点,而且URC与AT都是一个口子,显然EM770就不能工作了。修改的思路就是让收发AT的线程打开/dev/ttyUSB0,同时创建一个新的线程来收URC就行了。

1、在ril/reference-ril/Android.mk添加一行:

 

    LOCAL_CFLAGS += -DHUAWEI_EM770

2、在ril/reference-ril/atchannel.c中添加下面两个函数:

 

#ifdef HUAWEI_EM770

#include <termios.h>

static int urc_fd = -1;    /* fd of the URC channel */

static char s_URCBuffer[MAX_AT_RESPONSE+1];

static char *s_URCBufferCur = s_URCBuffer;

static pthread_t s_tid_reader_urc;

#endif

 

 

 

#ifdef HUAWEI_EM770

static const char *urc_readline()

{

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值