3G上网卡在Liunx系统上实现上网的过程
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系统上实现上网的过程相关推荐
- 3G模块在WinCE系统上拨号上网配置过程描述
DTM6211使用Wince下默认的unimodem稍加修改即可实现拨号上网. 一. 内核添加 图1 二. 注册表修改 图2 大唐的DTM6211的一些地方与unimodem的默认注册表配置不 ...
- 华为3g网卡 linux,华为 3G上网卡 E1750 在DM6446上移植的有关问题
华为 3G上网卡 E1750 在DM6446上移植的有关问题 华为 3G上网卡 E1750 在DM6446上移植的有关问题 日期:2014-05-16 浏览次数:20322 次 华为 3G上网卡 E1 ...
- aix 安装oracle smit install_latest,Oracle 9i在AIX5L系统上的详细安装过程
在AIX5L系统上安装Oracle 9i数据库时,首先需要考虑系统的资源问题,包括硬盘空间等,其次还要安装Oracle 9i安装介质,比如说JDK环境的安装和环境变量的设置等,本文详细介绍了这一过程, ...
- 笔记本用联通3G上网卡上网掉线
昨天刚买个一个3G上网卡,华为E180+B套餐,昨天上网一切正常,今天上的时候老是掉线,平均一.两分钟掉一次,网络信号也挺好的,很是郁闷. 后来上网查了一下,开始没有查到什么原因.后来看到有人说可能是 ...
- 电信天翼3G上网卡在Lenovo笔记本电脑windows7系统正常运行方法
A,升级电信天翼3G上网卡软件/固件 1)找一台干净无毒正常运行能上网winxp电脑,正常安装电信天翼3G上网卡自带软件:确保能正常拨号上网. 2)在winxp电脑访问http://www.huawe ...
- Android 上网本上使用3G上网卡的可行性
今天我们就来探讨下使用电信3G上网卡的可能性: 1)首先,插上3G卡后,系统 必须能够正确识别出ttyUSB 0设备,这是数据通信端口 2)3G拨号 程序主要是调用pppd和chat程序,并执行相关脚 ...
- FL2440 3G上网卡拨号上网,并实现mdev自动挂载
___________________________________ 主机操作系统:Centos 6.5 交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台: FL2440 ...
- 做完系统回来计算机连接不上网络,电脑重装win7系统后连不上网怎么办_win7重装系统连不上网如何解决...
我们要知道,重装win7系统之后也是会遇到一些小问题,旧版本的的一些设置和程序有时已经满足不了新的系统了,比如我们会经常遇到的win7重装完系统之后连接不上网络的问题,这其中就包括了设置以及驱动的问题 ...
- win10重装系统后连不上公司服务器,Win10电脑重装系统后不能上网怎么办?
如今很多用户为了"尝鲜"都使用上了Win10系统,不过在使用的过程中有用户发现一个问题,那就是Win10电脑重装系统后不能上网,然而这个问题只针对浏览器网页,诸如迅雷.QQ等软件则 ...
最新文章
- Java Web——文件下载getResourceAsStream()返回NULL解决方案
- 正则表达式的20个小应用
- Java 平台调试架构JPDA
- poj3335 半平面交
- Java 注解学习笔记
- 代码编辑器Sublime Text 可以跨平台(linux,window,os x)
- 国产游戏版号时隔8个月重启 游戏公司董事长喜极而泣
- html表格宽度拖拽,原生js实现 拖拽改变 table表格列宽
- Linux命令大全完整版
- 三级网络技术无纸化模拟软件 (未来)教育
- iOS 小项目--小费计算器
- Windows查找文件内容
- cad等比例缩放快捷键_CAD比例缩放怎么用,快捷键命令SCALE
- 穷举字符串c语言,穷举密码算法
- python图像切割成多边形_python opencv在图像中裁剪任意形状多边形,裁剪镂空多边形, 裁剪多个多边形...
- 经常使用网页播放器代码
- [译]Veil-Pillage
- CADD之分子对接二:简单autodockvina对接流程——redocking
- 蓝桥杯省一经验分享-2020
- k8s进阶篇-云原生存储ceph
热门文章
- 太强了!阿里大牛撸出来32W字Java面试手册,GitHub已标星72
- Apollo的启动步骤和客户端调用
- Hadoop-HDFS的数据读写过程(详细过程与图解)
- GORM 基础 -- Associations
- 耐看娱乐更新招股书:前4个月营收降40% 阿里影业是股东
- ssm鹊巢大连分公司分销商管理系统
- Facebook的预填问题默认可以设定哪些类型。
- 「镁客早报」库克抨击高通,表明不可能在法律纠纷中达成和解;传闻无人驾驶公司Aurora融资20亿美元...
- 截至到2022年12月12日,知网最新改进 YOLO 核心论文合集 | 22篇创新点速览
- 【转】python获取计算股票技术指标DIF/DEA/MACD