华为3GE261在Android4.0、linux3.0.8内核上的移植记录1

一、硬件平台:友善之臂的Tiny210(cortexTM-A8/S5PV210)、华为HUAWEI E261 3G上网卡(WCDMA制式)


二、软件平台 linux-3.0.8-20121030内核、boot为Superboot210、文件系统android-4.0.3_r1。


三、移植所需做的工作:
1、修改内核
2、移植usb-modeswitch-1.2.4


四、详细步骤:
1、按照Tiny210的用户手册,将基本的环境搭建好
1)用光盘里提供的Superboot210.bin 作为boot镜像,不需自己再手动编译。
2)用光盘里提供的内核源码,编译出内核镜像
3) 用光盘里提供的文件系统源码,编译出文件系统镜像镜像
注意:①此板子用的是电容屏要将image文件夹下的FriendlyARM-电容触摸.ini中的
Android-CommandLine = root=/dev/mtdblock4 rootfstype=yaffs2 console=ttySAC0,115200 init=/linuxrc androidboot.console=ttySAC0 skipcali=yes ctp=3,
里的ctp=3要变成ctp=2,然后将FriendlyARM-电容触摸.ini变成FriendlyARM.ini,
而将原来的FriendlyARM.ini删掉、
     ②文件系统修改:..\android-4.0.3_r1\vendor\friendly-arm\mini210\device-mini210.mk
修改:PRODUCT_COPY_FILES列表中注释掉掉下述语句
$(LOCAL_PATH)/proprietary/sensors.mini210.so:system/lib/hw/sensors.mini210.so \
修改后:
#$(LOCAL_PATH)/proprietary/sensors.mini210.so:system/lib/hw/sensors.mini210.so \
修改后要删除
rm android-4.0.3_r1/out/target/product/mini210/system/* -fr
然后再
#./build-android
#./genrootfs.sh


2、配置内核
1)make menuconfig
确保如下选项被选上
Device Drivers---→
USB support---→
<*>USB SerialConverter support--→
[*]USB Generic Serial Driver
<*>USB driver for GSM and CDMA modems





Device Drivers--→
Network device support---→
<*> PPP (point-to-point protocol) support   
[*]   PPP multilink support (EXPERIMENTAL)     
<*>   PPP support for async serial ports      
<*>   PPP support for sync tty ports          
<*>   PPP Deflate compression                 
<*>   PPP BSD-Compress compression 


2)修改内核
 在内核源码包中找到usb的3G驱动文件 driver/usb/serial/option.c
 在其中加入
 HUAWEI_VENDOR_ID 0x12D1(已有)
 HUAWEI_PRODUCT_E1750 0x1446
 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1750) },


3、移植usb-modeswitch
1)编译环境
①pc机里的虚拟机里的ubuntu10.10
②交叉编译工具:arm-linux-gcc-4.5.1


2)软件准备
①libusb-0.1.12.tar.gz
②usb-modeswitch-1.2.4.tar.bz2


3)编译步骤
3.1) libusb的安装
将其随意解压到虚拟机中一目录,按后进入解压后的目录
mkdir install
./configure --build=i686-linux --host=arm-linux --prefix=$PWD/install
make
make -n install  (确定安装目录)
make install


至此,libusb编译完毕。
说明一下:--build=i686-linux表示该软件在x86平台上被编译
--host=arm-linux表示该软件编译完成后在arm平台上运行
--prefix后面为软件安装目录


3.2)usb-modeswitch的移植
     ①usb_modeswitch目录下的usb_modeswitch.conf文件,加入以下内容:

DefaultVendor= 0x12d1
DefaultProduct=0x1446


TargetVendor=  0x12d1
TargetProductList="1001,1406,140b,140c,1412,141b,1436,14ac"


CheckSuccess=20


MessageContent="55534243123456780000000000000011062000000100000000000000000000"

注:(其他的不需要修改,其他的也就两句话
DisableSwitching=0
EnableLogging=0 
     )


②修改Makefile,加上以下几句即可


CC=/opt/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc
    
INCLUDEDIR =/home/wen/new_disk/3Gdriver/libusb-0.1.12/install/include
LIBDIR =/home/wen/new_disk/3Gdriver/libusb-0.1.12/install/lib
$(PROG): $(OBJS) usb_modeswitch.h
$(CC) -I $(INCLUDEDIR) -L $(LIBDIR) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS) -static


注:CC=/opt/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc为修改交叉工具链,原来为CC=gcc
$(PROG): $(OBJS) usb_modeswitch.h
$(CC) -I $(INCLUDEDIR) -L $(LIBDIR) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS) -static
为在原来的基础上修改的
原来为:$(PROG): $(OBJS) usb_modeswitch.h
$(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS)



3.3)将usb-modeswitch移到开发板上
将usb_switchmode移到/system/bin下,然后将usb_switchmode.conf文件夹复制进arm linux中的/etc/目录下
注意要修改usb_switchmode的权限


4、拨号上网
1)通过串口登陆开发板
插入3G上网卡前后通过lsusb命令比较
会生成Bus 001 Device 004: ID 12d1:1446
在/dev/下面会生成ttyUSB0和ttyUSB1

2)执行usb_modeswitch -W -c /etc/usb_modeswitch.conf后
执行lsusb命令发现
Bus 001 Device 004: ID 12d1:1446
变成
Bus 001 Device 004: ID 12d1:1436
说明转换成功


3)拨号上网
执行pppd call wcdma&
然后打开浏览器,可以上网了
注意:pppd chat等工具,文件系统中已经自带,不需要移植了。








      








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值