博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3G网卡PPP拨号
阅读量:7262 次
发布时间:2019-06-29

本文共 6149 字,大约阅读时间需要 20 分钟。

1.USB_ModeSwitch

1.1简介

USB_ModeSwitch is (surprise!) a mode switching tool for controlling 'multi-mode' USB devices.

USB工作模式:USB存储模式,USB Serial模式。现在3G,无线网卡模块使用USB接口,其工作模式是usb serial模式。

具体说明见:

1.2 内核配置

1.2.1 USB驱动

Device Drivers>>USB support>><*>USB SerialConverter support    [*]USBGeneric Serial Driver     <*>USBdriver for GSM and CDMA modems

1.2.2 PPP协议支持

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_modeswitch工具

2.1下载源文件与解压

2.1.1

mkdir usbmodeswitchcd usbmodeswitchwget http://pkgs.fedoraproject.org/repo/pkgs/libusb1/libusb-1.0.0.tar.bz2/df2447c23750ef2b4a314200feacc2ee/libusb-1.0.0.tar.bz2wget http://jaist.dl.sourceforge.net/project/libusb/libusb-compat-0.1/libusb-compat-0.1.5/libusb-compat-0.1.5.tar.bz2wget http://pkgs.fedoraproject.org/repo/pkgs/usb_modeswitch/usb-modeswitch-1.2.4.tar.bz2/dbd4ce7966d7b4a5a0604a8280f7164d/usb-modeswitch-1.2.4.tar.bz2wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20170205.tar.bz2

2.1.2 解压

tar xjf libusb-1.0.0.tar.bz2tar xjf libusb-compat-0.1.5.tar.bz2 tar xjf usb-modeswitch-1.2.4.tar.bz2tar xjf usb-modeswitch-data-20170205.tar.bz2

2.2编译工具(ARM架构)

mkdir install

2.2.1编译libusb

cd libusb-1.0.0./configure CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc(自己的目录) --prefix=xxx/install(自己的目录) --disable-shared --enable-static --build=i686 --host=arm-linuxmake make install

用命令查看ls ../install,有以下文件

include  lib

2.2.2编译libusb-compat

cd ../libusb-compat-0.1.5export PKG_CONFIG_PATH=xxx/install/lib/pkgconfig(自己的目录):$PKG_CONFIG_PATH./configure CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc(自己的目录) --prefix=xxx/install(自己的目录) --disable-shared --enable-static --build=i686 --host=arm-linuxmakemake install

2.2.3编译usbmodeswitch

cd usb-modeswitch-1.2.4

修改Makefile,vim Makefile如下:

#CC          = gcc#CFLAGS      += -Wall#LIBS        = -l usbCC          = /usr/local/arm/4.3.2/bin/arm-linux-gccCFLAGS      += -Wall -I ../install/include -staticLIBS        = -L ../install/lib -l usb -l usb-1.0 -l pthread -lrt

或者通过如下命令修改

sed -i -e "s|^CC.*|CC = /usr/local/arm/4.3.2/bin/arm-linux-gcc |g" Makefilesed -i -e "s|^CFLAGS.*|CFLAGS      += -Wall -I../install/include -static|g" Makefilesed -i -e "s|^LIBS.*|LIBS        = -L../install/lib/ -l usb -l usb-1.0 -l pthread -lrt|g" Makefile

file usb_modeswitch查看生成的usb_modeswitch

usb_modeswitch: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, not stripped

2.3复制usb_modeswitch

  1. 将usb-modeswitch-data-20170205下的usb_modeswitch.d中的所有文件都打包

    tar -cjf usb_modeswitch.d.tar.bz2 usb_modeswitch.d

    拷贝到开发板的etc/usb_modeswitch.d/目录,并解压

    tar -xjf usb_modeswitch.d.tar.bz2
  2. 把usb_modeswitch下载到开发板的/usr/sbin目录下。

具体方法不在这里阐述了,可以根据自己情况!

3.编译PPP

3.1配置ppp

mkdir pppcd ppp/wget https://www.samba.org/ftp/ppp/ppp-2.4.4.tar.gztar -xzf ppp-2.4.4.tar.gzcd ppp-2.4.4./configure

3.2修改chat.c

cd chat/

修改chat.c文件如下:

1168 if (timeout_next) {
1169 timeout_next = 0;
1170 s = clean(s,0); //添加
1171 timeout = atoi(s);
1172 free(s); //添加
1173 if (timeout <= 0)

3.3修改chat中的Makefile

INSTALL= installCC=/usr/local/arm/4.3.2/bin/arm-linux-gcc  #增加all:    chatchat:   chat.o     $(CC) -static -o chat chat.o               #增加静态编译

3.4修改PPPD目录下的auth.c

cd ../pppd

修改如下:

1316     //ao->neg_upap = !refuse_pap && (passwd[0] != 0 || get_pap_passwd(NULL));1317     ao->neg_upap = !refuse_pap;      //modified

3.5修改PPPD中的Makefile

33 CC = /usr/local/arm/4.3.2/bin/arm-linux-gcc34 # CC = gcc47 # MPPE=y52 # FILTER=y69 # PLUGIN=y

3.6编译PPPD-2.4.4

cd ../make

用file chat/chat pppd/pppd查看

chat/chat: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.14, not strippedpppd/pppd: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped

3.7复制chat和pppd到开发板

将交叉编译出来的这两个应用程序chat和pppd拷贝到开发板 /usr/sbin目录下

4.配置拨号上网的脚本

4.1配置文件——wcdma

vim wcdmadebugnodetachlock/dev/ttyUSB0115200user "card"password "card"crtsctsshow-passwordusepeerdnsnoauthnoipdefaultnovjnovjccompnoccpdefaultrouteipcp-accept-localipcp-accept-remoteconnect '/usr/sbin/chat -s -v -f wcdma-chat-connect'disconnect '/usr/sbin/chat -s -v -f wcdma-chat-disconnect'

4.2配置文件——wcdma-chat-connect

vim wcdma-chat-connect

TIMEOUT 5ABORT 'NO CARRIER'ABORT 'ERROR'ABORT 'NO DIALTONE'ABORT 'BUSY'ABORT 'NO ANSWER''' /rATOK /rATZOK /rAT+CGDCONT=1,"IP","3gnet",,0,0OK-AT-OK ATDT*99#CONNECT /d/c

4.3配置文件——wcdma-chat-disconnect

vim wcdma-chat-disconnect

ABORT "BUSY"ABORT "ERROR"ABORT "NO DIALTONE"SAY "/nSending break to the modem/n"'' "/K"'' "+++ATH"SAY "/nGoodbay/n"

4.4下载配置文件

mkdir -p /etc/ppp/peers/mkdir /var/run -p  mkdir /var/lock -p

将wcdma、wcdma-chat-connect、wcdma-chat-disconnect三个文件下载到此目录下。

此外,
将/etc/resolv.conf下的resolv.conf下载到开发板/etc

5.增加3G网卡的配置文件

当插上3G网卡时,我们可以发现

OZS606k.png
在这找到自己的3G网卡对应的配置文件,并下载到开发板相应目录

######################################################### Huawei E1550# Huawei E1750## Contributor: Anders Blomdell, Ahmed SolimanDefaultVendor=  0x12d1DefaultProduct= 0x1446TargetVendor=   0x12d1TargetProduct=  0x1001MessageContent="55534243123456780000000000000011060000000000000000000000000000"MessageEndpoint=0x01CheckSuccess=5HuaweiMode=0

6.使用usb_modeswitch

6.1挂载usbfs文件系统

  1. 临时挂载

    mount -t usbfs usbfs /proc/bus/usb/

查看一下

dCPaJ08.png

  1. 自动挂载usbfs文件系统

    vi /etc/fstab加上

    usbfs /proc/bus/usb usbfs defaults 0 0

6.2切换到串口设备工作

usb_modeswitch -c xxx.conf(自己的3G网卡配置文件)

cat /proc/bus/usb/devices

rPAUd1f.png

7.测试——AT指令

进入AT命令界面模式:

microcom -s 115200 /dev/ttyUSB0(自己的USB号)
  • 查看模块制造商:at+cgmi
  • 查看模块版本信息:at+cgmr
  • 查看GPRS模块型号:at+cgmm
  • 查看SIM卡是否在位:at+cpin? (Ready表示在位)
  • 查看GPRS模块信号强度,其中”,”前的数字为信号强度,at+csq
  • 查SIM卡是否注册上网络,其中”,”后的值为SIM卡的注册状态。如果状态值为0,表示未注册;如果为1表示本地号码注册上;如果为2,表示正在搜索运营商注册,但没注册上;如果为3表示拒绝注册;如果为4,未知状态;如果为5, 漫游号码注册上。at+creg?
  • 查SIM卡运营商,at+cops?

8.测试-PPP拨号

进入/etc/ppp/peers/目录执行

pppd call wcdma&

在/etc目录下新建resolv.conf,设置域名。

之后可以ping www.baidu.com

注:此外根据相关文献,有时还要编辑option.c,添加自己的3G网卡ID

vim drivers/usb/serial/option.c

YdTBFxv.png


参考文献:


转载于:https://www.cnblogs.com/boyiliushui/p/6701077.html

你可能感兴趣的文章
memcached全面剖析
查看>>
阿里腾讯争相入局企业社交市场,班聊的胜算在哪里?
查看>>
巨头组团竞购东芝闪存业务 胜算谁最大?
查看>>
《认知设计:提升学习体验的艺术》——什么是速度分层
查看>>
BAT的云服务“三国杀”,谁将成为大赢家
查看>>
IoT时代 云知声助力家电企业智能化升级
查看>>
晶科能源多项电池组件技术通过鉴衡“领跑者”先进技术认证
查看>>
高效组件将引领"十三五"光伏市场
查看>>
芯片工艺制造:现实远比理想残酷
查看>>
2020年全球SDDC市场将达到1390亿美元
查看>>
三星第二季半导体市场份额全球第二 紧追英特尔
查看>>
提高数据中心空调制冷效果的几个措施
查看>>
部分微软粉转黑,是真的不爱了吗?
查看>>
跨平台开源虚拟化软件VirtualBox 5.1.10发布
查看>>
历史上的今天:Sun差点38.9亿美元收购苹果
查看>>
可穿戴大革命 柔性塑料存储芯片现身
查看>>
山东光伏市场重点在哪?2GW的市场如何分?
查看>>
五种手段抵御社会工程攻击
查看>>
云端SaaS大舞台 百家齐争鸣
查看>>
golang 开发gui,还真有gui的框架,就是做个简单的行
查看>>