一、环境

1、  开发板内核:linux kernel 2.6.14

2、  3G卡片:华为EC122

二、相关工具

1、  usb-modeswitch-1.0.2.tar.bz2

Usb_modeswitch是对USB设备的工作模式进行转换一种万能工具,在Linux下我们需要用usb_modeswitch这个工具来进行模式转换,设备模式依赖usbserial模式,所以,在开发板上需要有这种模块的支持,设备并能够正常工作于这两种模式下。

2、  libusb-0.1.12.tar.gz

libusb提供给usb_modeswitch一套系统API

三、交叉编译usb_modeswitch

1、交叉编译libusb

解压并进入libusb-0.1.12目录,建立子目录install用于存放最后生存的库文件与头文件。

[root@libusb-0.1.12]# mkdir install

配置并生成Makefile文件

[root@libusb-0.1.12]# ./configure  --host=arm-uclibc-linux --test=arm-uclibc-linux --prefix=/root/libusb-0.1.12/install

[root@libusb-0.1.12]# make

[root@libusb-0.1.12]# make install

这样生成一些lib 与include文件

2、 交叉编译usb_modeswitch

(1)、修改Makefile文件

STRIP     = arm-uclibc-linux-strip
CC          = arm-uclibc-linux-gcc
CCFLAGS     = -I /root/libusb-0.1.12/install/include -L  /root/libusb-0.1.12/install/lib -l usb

(2)、make

4、编辑usb_modeswitch-1.1.2目录下的usb_modeswitch.conf文件

# Huawei EC122

#

# Contributor: Anders Blomdell, Ahmed Soliman

DefaultVendor= 0x12d1

DefaultProduct= 0x1446

TargetVendor= 0x12d1

TargetProduct= 0x140c

MessageContent="55534243123456780000000000000011060000000000000000000000000000"

5、将上面生成的libusb动态库拷贝到开发板的库目录下,将上面生成的usb_modeswitch可执行程序和usb_modeswitch.conf拷贝到文件系统目录下。

四、交叉编译3G卡片驱动

在2.6.10内核源码中没有专门的3G驱动文件,我们在/driver/usb/serial/pl2303.c中加入3G卡片的ID信息:

{USB_DEVICE(HUAWEI_VENDOR_ID),HUAWEI_PRODUCT_ID)}

在/driver/usb/serial/pl2303.h中加入:

#define HUAWEI_VENDOR_ID 0x12d1

#define HUAWEI_PRODUCT_ID 0x140c

Make menuconfig 选中相关选项,可以选择成模块,也可以选择直接编译到内核里,

make内核即可。

五、利用usb_modeswitch进行模式转换

运行 ./usb_modeswitch -W 切换3G卡片的模式;或者 usb_modeswitch  -c  /etc/usb_modeswitch.conf 。此时会出现一些信息,这时到/dev/usb/tts/ 下面查看转换后的通道,在这下面会出现 0 1 2 3 4  ttyUSB通道。

如不行增加 mount  -t usbfs usbfs /proc/bus/usb 试试

六、交叉编译pppd拨号工具,并编写拨号脚本

由于板卡上已移植了pppd拨号工具,在内核里将相关的选项选上即可。下面介绍拨号脚本的编写:

vedo:

debug

nodetach

lock

/dev/usb/tts/0

115200

user "CARD"

password "CARD"

crtscts

show-password

usepeerdns

noauth

noipdefault

novj

novjccomp

noccp

defaultroute

ipcp-accept-local

ipcp-accept-remote

connect '/usr/sbin/chat -s -v -f /etc/ppp/evdo-connect-chat'

evdo-connect-chat:

TIMEOUT 5

ABORT 'NO CARRIER'

ABORT 'ERROR'

ABORT 'NO DIALTONE'

ABORT 'BUSY'

ABORT 'NO ANSWER'

'' /rATZ

OK-AT-OK ATD#777

CONNECT /d/c

ppp-off:

#/etc/ppp/ppp-off
#!/bin/sh
######################################################################
#
# Determine the device to be terminated.
#
if [ "$1" = "" ]; then
 DEVICE=ppp0
 else
  DEVICE=$1
  fi
  ######################################################################
  #
  # If the ppp0 pid file is present then the program is running. Stop it.
  if [ -r /var/run/$DEVICE.pid ]; then
          kill -INT `cat /var/run/$DEVICE.pid`
          #
          # If the kill did not work then there is no process running for this
          # pid. It may also mean that the lock file will be left. You may wish
          # to delete the lock file at the same time.
                  if [ ! "$?" = "0" ]; then
                                  rm -f /var/run/$DEVICE.pid
                                                  echo "ERROR: Removed stale pid file"
                                                                  exit 1
                                                                          fi
                                                                          #
                                                                          # Success. Let pppd clean up its own junk.
                                                                                  echo "PPP link to $DEVICE terminated."
                                                                                          exit 0
                                                                                          fi
                                                                                          #
                                                                                          # The ppp process is not running for ppp0
                                                                                          echo "ERROR: PPP link is not active on $DEVICE"
                                                                                          exit 1

将vedo 文件拷贝到文件系统/etc/ppp/peer/目录下vedo-connect-chat、ppp-off两个个文件拷贝到

文件系统/etc/ppp/目录下,在/etc/resolv.conf中添加DNS号

nameserver 219.141.136.10

由于所用的开发板,文件系统挂载在一个服务器上,其所用的网关,被当做了默认的网关,故拨号后会ping不通网络。

终端查看路由:

# route

Kernel IP routing table

Destination  Gateway       Genmask     Flags  Metric Ref   Use  Iface

192.168.1.0     *        255.255.255.0   U     0      0      0   eth0

default    192.168.1.3      0.0.0.0        UG    0      0      0   eth0

修改默认网关

# route del default

#route add default ppp0

拨号后可查看

# route

Kernel IP routing table

Destination   Gateway     Genmask     Flags  Metric  Ref  Use  Iface

localhost       *       255.255.255.255 UH      0      0    0    ppp0

192.168.1.0    *        255.255.255.0   U      0      0    0    eth0

default        localhost      0.0.0.0      UG     0      0    0    ppp0

开始拨号

# pppd call evdo&

拨号成功后会获得自动分配的IP地址

查看拨号是否成功

#ifconfig ppp0

如果能分配到IP地址,则拨号成功。

ping www.baidu.com 如能ping通,则说明移植成功。

注:挂在usb设备mount -t usbfs none /proc/bus/usb

在这过程中,感谢一个哥们的大力支持,

参考了叶磊的华为E1750在MD6440上移植文章,http://blog.csdn.net/yel617/archive/2010/05/18/5602934.aspx

根据这个方法 华为 E1750 在HS3110E我也成功了。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liuming_3385/archive/2011/02/24/6206306.aspx

在转华为EC122在HiSi3110E上移植相关推荐

  1. 华为EC122在HiSi3110E上移植

    一.环境 1.  开发板内核:linux kernel 2.6.14 2.  3G卡片:华为EC122 二.相关工具 1.  usb-modeswitch-1.0.2.tar.bz2 Usb_mode ...

  2. 华为单片机操作系统_STM32Fxxx 上移植 Huawei LiteOS

    1.LiteOS 简介 华为的 LiteOS 以轻量级(内核小于10k).低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为开发者提供 "一站式" 完整 ...

  3. 7405 平台移植华为EC122上网卡

    一. 开发环境 板子:海思3716C  dongle:华为EC122 虚拟机:ubuntu10.10 在这里参照了一篇博文,由于所移植的上网卡是一个型号,省去了找资料的很多麻烦,苍天啊,大地啊,感动. ...

  4. 华为3g网卡 linux,华为 3G上网卡 E1750 在DM6446上移植的有关问题

    华为 3G上网卡 E1750 在DM6446上移植的有关问题 华为 3G上网卡 E1750 在DM6446上移植的有关问题 日期:2014-05-16 浏览次数:20322 次 华为 3G上网卡 E1 ...

  5. 基于华为鲲鹏云的c语言程序设计,华为DevRun第四讲,华为云鲲鹏云服务移植快速入门与实践...

    6月23日,华为DevRun开发者沙龙系列活动在线上举行,"华为云和TA的朋友们公开课"第四次直播课程顺利结束,本次公开课的主题是<华为云鲲鹏云服务移植快速入门及实践> ...

  6. 华为EC122(电信) 树莓派3G电信上网总结

    树莓派3G上网,因为没有经验弄了好长时间,也走了很多的冤枉路,总结一下以免以后忘了 实际树莓派用华为EC122 树莓派3G上网配置过程还是很简单的,因为开始想得太复杂了,在网上找了一些例程千奇百样,让 ...

  7. 解决3G上网卡与VM7冲突的方法(华为EC122 3G上网卡)

    解决3G上网卡与VM7冲突的方法(华为EC122 3G上网卡) 故障描述: 我的笔记本一直使用电信的华为EC122 3G上网卡,最近安装了VM 7,再插上上网卡,本地电脑直接无法发现该硬件,在虚拟机中 ...

  8. 华为鲲鹏云服务器发布win项目,华为DevRun第四讲,华为云鲲鹏云服务移植快速入门与实践...

    6月23日,华为DevRun开发者沙龙系列活动在线上举行,"华为云和TA的朋友们公开课"第四次直播课程顺利结束,本次公开课的主题是<华为云鲲鹏云服务移植快速入门及实践> ...

  9. 在android上移植ios

    2019独角兽企业重金招聘Python工程师标准>>> Android与IOS是最受人们欢迎的两大移动平台,Android与IOS之争是一个永久的话题.接下来笔者就结合自己的知识和网 ...

最新文章

  1. 他是清华姚班高材生,选择从谷歌辞职回山西教书,张昆玮说「不想像成功学那样生活」...
  2. 杭州内推 | 阿里云开发者社区招聘计算机视觉算法工程师(2022年毕业生)
  3. 详谈Windows消息循环机制
  4. 我的世界java加入更多床_《我的世界》床的N种玩法,教你如何更快地入眠
  5. PHP采集程序中的常用函数
  6. 51nod 1013快速幂 + 费马小定理
  7. mybatis的详解
  8. Address already in use: bind JVM端口被占用解决方法
  9. python str 换行_一步一步学Python3(小学生也适用) 第八篇: 字符串(str)类型(上)...
  10. linux下个性配置命令提示符
  11. 时钟指针角度。【问题描述】普通时钟都有时针和分针。在任意时刻,时针和分针都有一个夹角,并且假设时针和分针都是连续移动的。现已知当前的时刻,试求出在该时刻时针和分针的夹角A(0≤A≤180)。
  12. win10休眠_Win10关机后一动键盘就开机怎么解决
  13. regedit 命令行参数
  14. 光立方原理讲解_漯河放大镜原理,车灯透镜_晶亮光电
  15. 信捷PLC以太网通讯数据采集解决方案
  16. 从零开始学习opencv——在虚拟环境下安装opencv环境
  17. Android 屏幕适配方案(七)
  18. Python练手----字符串的密钥加密
  19. Web-big、html、css、JavaScript、vue、webpack、git、微信小程序、uni-app、性能优化、兼容性、网络请求、web安全、其他
  20. 注册表中修改桌面背景

热门文章

  1. Win10自带微软输入法的全拼双拼一键切换
  2. 陈彦萍 西安邮电大学 计算机学院,西安邮电大学计算机学院
  3. 只有程序员看的懂面试圣经
  4. 移动前端不得不了解的html5 head 头标签
  5. 建筑物提取 Building Extraction 算法论文
  6. XQuartz总是打不出“.”这个符号(MAC版)(For Mac: XQuartz cannot output this notion .)
  7. 会议通知 | 南方临床质谱第一届多组学学术论坛
  8. BugTags简单集成
  9. 绘画app android,PicsArt美易绘画
  10. 【渝粤题库】陕西师范大学151108 会计信息化 作业(高起专)