华为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
·
一、硬件平台:友善之臂的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等工具,文件系统中已经自带,不需要移植了。
二、软件平台 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等工具,文件系统中已经自带,不需要移植了。
更多推荐
已为社区贡献2条内容
所有评论(0)