1 前言
最近因项目需要将3G
上网卡挂接到Linux的网关平台,经过一段时间的研究,基本将整个挂
接过程弄清,在此贴出来与大家共享  2 正文
首先,我们来了解一下3G上网卡的组成: USB+USB转串口芯片+3G无线模块
从这样的组成我们基本可以了解3G
无线模块对外提供的接口是串口,外部通过向此串口发送AT
指令控制其上网、发短信、打电话等操作。而我们要与其通讯则必须要驱动中间的
USB
转串口芯片。因为拆不开止网卡,看不到USB转串口芯片的型号,因此我只能猜测了,目前市面上比较通用的USB转串口芯片为PL2101、PL2303等,因此我进入menuconfig,进行如下配置:  Device Drivers ---> USB support ---> USB Serial Converter support ---> <M> USB Serial Converter support [*] USB Generic Serial Driver <M> USB CP2101 UART Bridge Controller <M> USB Prolific 2303 Single Port Serial Driver
配置好以后,我们需用要为此USB设备创建设备文件接点,因为TBS系统用的是ROM文件系统,不能动态创建,因此只能是预先在/dev/目录下将设备文件创建好。我们将其添加至tools/common_mkdev.sh文件中,让其在编译的过程中创建
 
mknod -m 600 ttyUSB0 c 188 0 (在PC的linux环境中自动挂载时发现它的主设备号始终为188) mknod -m 600 ttyUSB1 c 188 1
mknod -m 600 ttyUSB2 c 188 2
mknod -m 600 ttyUSB3 c 188 3 mknod -m 600 ttyUSB4 c 188 4 mknod -m 600 ttyUSB5 c 188 5 mknod -m 600 ttyUSB6 c 188 6 mknod -m 600 ttyUSB7 c 188 7 先进行编译,下载至目标板,此时在目标板上的 /lib/modules/2.6.18.8/kernel/drivers/usb/serial/应该可以看到有一个usbserial.ko
的内核模块。在/dev目录下也应该可以看到ttyUSB0~ttyUSB7,我们暂时先不加载 usbserial.ko模块,先插上3G modem,看看USB总线的挂载信息  # cat proc/bus/usb/devices T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2 B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 1.10
Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.18.8 ohci_hcd S: Product=AR7100
OHCI S: SerialNumber=ar7100_usb C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:
If#=
0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I)
Atr=03(Int.) MxPS= 2 Ivl=255ms T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01
Dev#= 3 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=02(comm.) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0e8d ProdID=0003 Rev= 1.00 S:
Manufacturer=MediaTek Inc S: Product=MT6225 S: SerialNumber=536663104082920 C:* #Ifs= 2
Cfg#= 1 Atr=80 MxPwr=500mA I: If#= 0 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00
Prot=00
Driver=(none) E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I: If#= 1 Alt= 0 #EPs= 1 Cls=02(comm.)
Sub=02 Prot=01 Driver=(none) E: Ad=83(I) Atr=03(Int.) MxPS= 16 Ivl=3ms T:
Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 2 B: Alloc= 0/800
us ( 0%), #Int= 0, #Iso= 0 D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01
MxPS=64
#Cfgs= 1 P: Vendor=0000 ProdID=0000 Rev= 2.06 S: Manufacturer=Linux 2.6.18.8 ehci_hcd S: Product=AR7100 EHCI S: SerialNumber=AR7100_usb
C:*
#Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms
以上信息中除开两个hub信息,中间的应该就是我插入的3G模块的信息了,从信息中可以看
到Driver=(none),目前它还没找到合适的驱动,Vendor=0e8d ProdID=0003,我们需用要用这两个值做为
usbserial.ko的加载参数,现在开始加载usbserial.ko了 #modprobe usbserial
vendor=0x0e8d product=0x0003
usbcore: registered
new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial support registered for generic usbserial_generic 2-2:1.0: generic converter detected usb 2-2: generic converter now attached to ttyUSB0
usbserial_generic 2-2:1.1: generic converter detected usbserial_generic 2-2:1.1: Generic device with no
bulk out,
not allowed.
usbserial_generic: probe of 2-2:1.1 failed with error -5 usbcore: registered new driver
usbserial_generic drivers/usb/serial/usb-serial.c: USB Serial Driver core 从以上信息可以看到驱动已经准确加载,并且将设备依附到了ttyUSB0上面,这就是我们后面需要的usb转换成的串口了。
  完成以上工作就可以开始进行拨号操作了,预先在/etc/ppp/
目录下建立两个文件内容分别如
下:
  #ppp-on exec /usr/sbin/pppd debug lock nodetach crtscts modem
/dev/ttyUSB0 115200 usepeerdns noauth noipdefault defaultroute user "" 0.0.0.0:0.0.0.0 lcp-echo-interval 120 asyncmap 0xa0000 connect /etc/ppp/ppp-on-chat &
  以上内容为启动
PPP
拨号进程,具体参数可参见帮助文档。在此不再敖述。  #ppp-on-chat /usr/sbin/chat -v \ TIMEOUT 25 \ ABORT '\nBUSY\r' \ ABORT '\nNO ANSWER\r' \ ABORT '\nNO CARRIER\r' \ ABORT
'\nRINGING\r\n\r\nRINGING\r' \ ABORT '\nUsername/Password Incorrect\r'\ SAY "Beginning...\n" \ ' ' AT \ 'OK-+++\c-OK' ATH0 \ ' ' AT \ OK
AT+CGDCONT=1,"IP","cmnet" \ OK ATD*99# \ CONNECT ' ' \ 此处的"cmnet"
是网络提供商提供的无线网络接入点,"cmnet"是中国移动提供的GPRS的公共接入点,
不同的网络代应商和不同的网络服务类型,接入点也各不相同。 此处的*99#
为拨号上网所需拨打的号码,类似于以前电话拨上网的
163/169  以上是PPPD拨号进程所需用要的PPP协商程序。  建立好后,启动
CPE,执行/etc/ppp/ppp-on:  # Beginning... Serial connection established. using channel 2 Using interface ppp0 Connect: ppp0 <--> /dev/ttyUSB0 sent [LCP ConfReq id=0x1
<asyncmap 0xa0000>
<magic 0xf7223fa9> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0xa0000> <magic 0xf7223fa9> <pcomp>
<accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0xa0000> <auth pap> <pcomp> <accomp>] No auth is possible sent [LCP
ConfRej
id=0x1 <auth
pap>] rcvd [LCP
ConfReq id=0x2 <asyncmap 0xa0000> <pcomp> <accomp>] sent [LCP ConfAck
id=0x2 <asyncmap 0xa0000> <pcomp> <accomp>] sent [LCP EchoReq id=0x0 magic=0xf7223fa9] sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>] sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>] rcvd [LCP EchoRep id=0x0 magic=0x0] rcvd [LCP ProtRej id=0x0
80
fd 01 01
00 0c 1a 04 78 00 18 04 78 00] rcvd
[IPCP ConfReq id=0x1] sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>] rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>] sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>] rcvd
[IPCP ConfReq id=0x2 <addr 0.0.0.0>] sent [IPCP ConfRej id=0x2 <addr
0.0.0.0>]
rcvd [IPCP ConfReq id=0x3] sent [IPCP ConfAck id=0x3] sent [IPCP
ConfReq id=0x2
<addr
0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>] sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns3 0.0.0.0>]
rcvd [IPCP ConfNak id=0x2 <addr 10.8.169.249> <ms-dns1 211.136.20.203> <ms-dns3 211.136.20.203>] sent [IPCP ConfReq

3G上网卡在Liunx系统上实现上网的过程相关推荐

  1. 3G模块在WinCE系统上拨号上网配置过程描述

    DTM6211使用Wince下默认的unimodem稍加修改即可实现拨号上网. 一. 内核添加   图1 二. 注册表修改   图2 大唐的DTM6211的一些地方与unimodem的默认注册表配置不 ...

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

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

  3. aix 安装oracle smit install_latest,Oracle 9i在AIX5L系统上的详细安装过程

    在AIX5L系统上安装Oracle 9i数据库时,首先需要考虑系统的资源问题,包括硬盘空间等,其次还要安装Oracle 9i安装介质,比如说JDK环境的安装和环境变量的设置等,本文详细介绍了这一过程, ...

  4. 笔记本用联通3G上网卡上网掉线

    昨天刚买个一个3G上网卡,华为E180+B套餐,昨天上网一切正常,今天上的时候老是掉线,平均一.两分钟掉一次,网络信号也挺好的,很是郁闷. 后来上网查了一下,开始没有查到什么原因.后来看到有人说可能是 ...

  5. 电信天翼3G上网卡在Lenovo笔记本电脑windows7系统正常运行方法

    A,升级电信天翼3G上网卡软件/固件 1)找一台干净无毒正常运行能上网winxp电脑,正常安装电信天翼3G上网卡自带软件:确保能正常拨号上网. 2)在winxp电脑访问http://www.huawe ...

  6. Android 上网本上使用3G上网卡的可行性

    今天我们就来探讨下使用电信3G上网卡的可能性: 1)首先,插上3G卡后,系统 必须能够正确识别出ttyUSB 0设备,这是数据通信端口 2)3G拨号 程序主要是调用pppd和chat程序,并执行相关脚 ...

  7. FL2440 3G上网卡拨号上网,并实现mdev自动挂载

    ___________________________________ 主机操作系统:Centos 6.5 交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台: FL2440     ...

  8. 做完系统回来计算机连接不上网络,电脑重装win7系统后连不上网怎么办_win7重装系统连不上网如何解决...

    我们要知道,重装win7系统之后也是会遇到一些小问题,旧版本的的一些设置和程序有时已经满足不了新的系统了,比如我们会经常遇到的win7重装完系统之后连接不上网络的问题,这其中就包括了设置以及驱动的问题 ...

  9. win10重装系统后连不上公司服务器,Win10电脑重装系统后不能上网怎么办?

    如今很多用户为了"尝鲜"都使用上了Win10系统,不过在使用的过程中有用户发现一个问题,那就是Win10电脑重装系统后不能上网,然而这个问题只针对浏览器网页,诸如迅雷.QQ等软件则 ...

最新文章

  1. Java Web——文件下载getResourceAsStream()返回NULL解决方案
  2. 正则表达式的20个小应用
  3. Java 平台调试架构JPDA
  4. poj3335 半平面交
  5. Java 注解学习笔记
  6. 代码编辑器Sublime Text 可以跨平台(linux,window,os x)
  7. 国产游戏版号时隔8个月重启 游戏公司董事长喜极而泣
  8. html表格宽度拖拽,原生js实现 拖拽改变 table表格列宽
  9. Linux命令大全完整版
  10. 三级网络技术无纸化模拟软件 (未来)教育
  11. iOS 小项目--小费计算器
  12. Windows查找文件内容
  13. cad等比例缩放快捷键_CAD比例缩放怎么用,快捷键命令SCALE
  14. 穷举字符串c语言,穷举密码算法
  15. python图像切割成多边形_python opencv在图像中裁剪任意形状多边形,裁剪镂空多边形, 裁剪多个多边形...
  16. 经常使用网页播放器代码
  17. [译]Veil-Pillage
  18. CADD之分子对接二:简单autodockvina对接流程——redocking
  19. 蓝桥杯省一经验分享-2020
  20. k8s进阶篇-云原生存储ceph

热门文章

  1. 太强了!阿里大牛撸出来32W字Java面试手册,GitHub已标星72
  2. Apollo的启动步骤和客户端调用
  3. Hadoop-HDFS的数据读写过程(详细过程与图解)
  4. GORM 基础 -- Associations
  5. 耐看娱乐更新招股书:前4个月营收降40% 阿里影业是股东
  6. ssm鹊巢大连分公司分销商管理系统
  7. Facebook的预填问题默认可以设定哪些类型。
  8. 「镁客早报」库克抨击高通,表明不可能在法律纠纷中达成和解;传闻无人驾驶公司Aurora融资20亿美元...
  9. 截至到2022年12月12日,知网最新改进 YOLO 核心论文合集 | 22篇创新点速览
  10. 【转】python获取计算股票技术指标DIF/DEA/MACD