开发板 3G 网卡拨号上网

注意,其中的/dev/ttyACM0 是串口设备,后面描述。

/etc/ppp/chat-wcdma

#!/bin/sh

#

# This is part 2 of the ppp-on script. It will perform the connection

# protocol for the desired connection.

#

exec /usr/sbin/chat -v \

ECHO ON \

ABORT ‘BUSY‘ \

ABORT ‘NO ANSWER‘ \

ABORT ‘ERROR‘ \

TIMEOUT 20 \

‘‘ ‘AT‘ \

OK AT+CFUN=6 \

OK              ‘AT+CGDCONT=1,"IP","3gnet",,0,0‘ \

OK ‘ATDT*99#‘ \

CONNECT

其中的3gnet 就是联通WCDMA上网需要的APN啦。 CFUN=6是让索爱MD-400只工作在WCDMA网络下。相应地CFUN=5就只工作再GSM/GPRS/EDGE下, CFUN=1就是全自动选择

拨号连接时,用

pppd call wcdma

即可。你可以自己设置IP伪装NAT等等事宜。

以上是用索尼爱立信MD-400上网卡设置的,如果你用的是华为E1750, 那么设备名就换成/dev/ttyUSB0 即可。

无论是索爱MD400还是华为E1750, 都需要小工具 usb_modeswitch 1.0.2 切换其倒霉的USB工作状态,详细的介绍和下载可以去这里看看: http://www.draisberghof.de/usb_modeswitch/

如果是电信的天翼CDMA2000 EV-DO 3G, 测试了一下华为EC1260,基本区别不大,注意以下几点:

1, 2.6.19之后的核心有专门对付EC1260的代码, 插进去直接就令其工作在Modem模式,你会看到有/dev/ttyUSB0设备,可以不需要usb_modeswitch的帮助。低版本核心可能还离不开。

2, EVDO没有APN的概念,上面的/etc/ppp/chat-wcdma 脚本改成这样即可:

[[email protected] ppp]# cat chat-evdo

#!/bin/sh

#

# This is part 2 of the ppp-on script. It will perform the connection

# protocol for the desired connection.

#

exec /usr/sbin/chat -v \

ECHO ON \

ABORT ‘BUSY‘ \

ABORT ‘NO ANSWER‘ \

ABORT ‘ERROR‘ \

TIMEOUT 20 \

‘‘ ‘AT‘ \

OK ‘ATDT#777‘ \

CONNECT

也就是说,直接拨特殊号码#777即可。 peers/wcdma文件可以不改。


3G卡片在开发板上的详细解决方法(适用于大多数3G卡片)

Anson Luo(罗国辉)

一. 环境

1. 开发板内核:linux kernel 2.6.14

2. 3G卡片:HUAWEI E1750

二. 相关工具与库文件下载

1. usb_modeswitch-1.0.6.tar.bz2(http://www.draisberghof.de/usb_modeswitch/)

建议下载较新版本,如果怕麻烦就下载与我一样的版本,下同。

Usb_modeswitch是对USB设备的工作模式进行转换一种万能工具,当然这种宝贝,只有在linux下才能体现其巨大的作用。随着移动通信,无线通信的发展,越来越多的设备被制作成USB接口,像一些无线网卡,3G数据卡等等。这些设备的厂家一般都会提供windows 下驱动,这些设备在第一次插上机子的时候,它们处于CDROM+闪存模式,可以从中提供驱动程序安装驱动,在驱动程序安装完成后,驱动会转换成3G模式,此时就会出现usb
modem设备,目前的3G卡片全都是这样,这就是所谓的“ZeroCD”。

而在linux下我们可没有那么好的待遇,厂家一般不会给我们提供linux下面的驱动,而目前的内核还不能自动识别并驱动。所以我们需要用usb_modeswitch这个工具来进行模式转换,设备模式依赖usb-storage和usbserial模式,所以,在开发板上需要有这两种模块的支持,设备并能够正常工作于这两种模式下。

2.usb_modeswitch-current_data.tar.bz2(http://www.draisberghof.de/usb_modeswitch/)

这个包里包括提供给UDEV的驱动设备信息,和很多设备使用usb_mdoeswitch进行转换模式时需要配置的参数。下载它用于参考。

3. libusb-1.0.6.tar.bz2 (http://sourceforge.net/projects/libusb/files/libusb-1.0/)

Libusb才是我们的真正骨干力量,提供给usb_modeswitch一套系统API,所以,自然usb_modeswitch这个包工头要想工作,肯定不能离开libusb这个工人为其服务。

4.libusb-compat-0.1.3.tar.bz2 (http://www.linuxfromscratch.org/blfs/view/svn/general/libusb-compat.html

libusb分为0.1和1.0两年版本,而1.0版本与0.1有较大的不同,并不向下兼容,必须依赖libusb-compat。

三. 交叉编译usb_modeswitch

1. 交叉编译 libusb

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

[[email protected]]# mkdir install

B. 配置并生成Makefile文件

[[email protected]]#./configure --build=i686-linux --host=arm-linux --prefix=/home/Anson/libusb-1.0.6/install

C. [[email protected]]#make

D. [[email protected]]# make install

2. 设置PKG_CONFIG_PATH环境变量,以使我们后面的编译能够顺利找到libusb库

A.设置环境变量

[[email protected]]# export PKG_CONFIG_PATH=/home/Anson/libusb-1.0.6/install/lib/pkgconfig:$PKG_CONFIG_PATH

B.查看是否设置正确

[[email protected]]#echo $PKG_CONFIG_PATH

3. 交叉编译lib_compat

与上面编译libusb的方法类似:

A.[[email protected]]#.mkdir install

B . [[email protected]]#./configure --build=i686-linux --host=arm-linux --prefix=/home/Anson/libusb-compat-0.1.3/install

C. [[email protected]]#make

D. [[email protected]]#make install

说明:如果此时出现"-Wno-pointer-sign"、"-fvisibility=hidden"这类错误,则是由于编译器版本过低不支持导致的,可以直接在Makefile和libusb/Makefile文件中删除这些编译选项即可。

4. 交叉编译usb_modeswitch

A.修改Makefile文件

修改STRIP和CC选项为:

STRIP = arm-xxx-linux-strip

CC = arm-xxx-linux-gcc

B. 可以将上面的libusb和libusb-compat的库和头文件拷贝到交叉编译器的lib和include目录下,或者直接加上编译选项指令库的路径即可如下:

INCLUDEDIR = /home/anson//libusb-1.0.6/install/include/libusb-1.0

LIBDIR = /home/anson/libusb-1.0.6/install/lib

$(PROG): $(OBJS)

$(CC) $(CCFLAGS) -I $(INCLUDEDIR) -L $(LIBDIR) -o $(PROG) $(OBJS)

这里的usb.h就是libusb-compat目录下的,如果没有usb.h,usb_modeswitch是编译不过去的。

C. make

5. 编辑usb_modeswitch目录下的usb_modeswitch.conf文件,加入以下内容:

DefaultVendor= 0x12d1

DefaultProduct= 0x1446

TargetVendor = 0x12d1

TargetProduct= 0x1001

MessageContent="55534243000000000000000000000011060000000000000000000000000000"

MessageEndpoint=0x01

CheckSuccess=5

HuaweiMode=0 (特别注意这个参数,我在开发板上的麻烦就出在这个参数上面)

6. 将上面生成的libusb动态库拷贝到开发板的库目录下,将上面生成的usb_modeswitch可执行程序和usb_modeswitch.conf配置文件下载到开发板某目录下。

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

1. 编译 3G模块的驱动option.ko

在内核源码包中找到usb的3G驱动文件 driver//usb/serial/option.c在其中加入3G卡片的 HUAWEI_VENDOR_ID 0x12D1和HUAWEI_PRODUCT_E1750 0x1446。然后修改Kconfig将option编译成模块。将编译生成的option.ko下载到开发板中并使用insmod加载。

五. 加载驱动

1. 挂载usb虚拟文件系统:mount -t usbfs usbfs /proc/bus/usb/

2. 弹出3G卡片的cdrom: eject /dev/cdroms/cdrom0

3. 现在就可以使用usb_modeswitch –W –c ~/usb_modeswitch.conf切换3G卡片的模式了。此时会出现一些信息,你会看到转换成3G模式后的几个串口信息,ttyUSB0, ttyUSB1, ttyUSB2,如下:

option 1-1:1.0: Option 3G data card converter detected

usb 1-1: Option 3G data card converter now attached to ttyUSB0

option 1-1:1.1: Option 3G data card converter detected

usb 1-1: Option 3G data card converter now attached to ttyUSB1

option 1-1:1.2: Option 3G data card converter detected

usb 1-1: Option 3G data card converter now attached to ttyUSB2

如果没有使用udev,就不会自动生成这些结点,所以需要手动创建这些字符节点。

mknod /dev/usb/ttyUSB0 c 188 0

mknod /dev/usb/ttyUSB1 c 188 1

mknod /dev/usb/ttyUSB2 c 188 2

此时你可以在/dev/usb/tts下面找到生成了3个节点1,2,3.如果在PC上面使用发行版,一般都会使用udev做/dev下面的节点,这样子就可以直接在/etc/udev/rules.d/下面添加相应的设备信息和处理就可以了,但是由于开发板上并没有udev,它会生态太多设备节点,对嵌入式开发资源有较大浪费,这里,根据提示信息说明driver在X1地址处找到了Y1设备,它在/dev下面的节点叫Z1,所以此时我们需要手动创建。我的意思就是说这个节点本身已经注册了相应的ioctl了,只是设备节点没有生成而以,所以这时手动创建是完全没有问题的。

4. 使用串口的测试工具发送AT指令测试几个串口是否可用。

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

1. 交叉编译pppd拨号工具(这里不详细讲解,可参考后续文章的详细说明)

2. 编写拨号脚本,与GPRS的拨号脚本类似。

A. 联通WCDMA-HSDPA:

(1)wcdma: debug

nodetach

lock

/dev/ttyUSB0

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 chat-wcdma-connect‘

disconnect ‘/usr/sbin/chat -s -v -f chat-wcdma-disconnect‘

(2) chat-wcdma-connect: TIMEOUT 5

ABORT ‘NO CARRIER‘

ABORT ‘ERROR‘

ABORT ‘NO DIALTONE‘

ABORT ‘BUSY‘

ABORT ‘NO ANSWER‘

‘‘ \rAT

OK \rATZ

OK \rAT+CGDCONT=1,"IP","3gnet",,0,0

OK-AT-OK ATDT*99#

CONNECT \d\c

(3) chat-wcdma-disconnect ABORT "BUSY"

ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\nSending break to the modem\n"

‘‘ "\K"

‘‘ "+++ATH"

SAY "\nGoodbay\n"

B. 移动TD-CDMA

(1)td: debug

logfile /var/log/pppd.log

lock

/dev/ttyUSB0

115200

user "card"

password "card"

crtscts

connect ‘/usr/sbin/chat -v -t3 -f td-connect-chat‘

disconnect ‘/usr/sbin/chat -s -v -f td-disconnect-chat‘

show-password

usepeerdns

noauth

noipdefault

novj

novjccomp

noccp

defaultroute

ipcp-accept-local

ipcp-accept-remote

(2) td-connect-chat: ABORT ‘NO CARRIER‘

ABORT ‘ERROR‘

ABORT ‘NO DIALTONE‘

ABORT ‘BUSY‘

ABORT ‘NO ANSWER‘

‘‘ \rATZ

OK-AT-OK ATD#777

CONNECT \d\c

(3) td-disconnect-chat: ABORT "BUSY"

ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\nSending break to the modem\n"

‘‘ "\K"

‘‘ "+++ATH"

SAY "\nGoodbay\n"

C. 电信CDMA1x

(1) cdma1x: debug

nodetach

lock

/dev/ttyUSB0

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 cdma1x-connect-chat‘

disconnect ‘/usr/sbin/chat -s -v -f cdma1x-disconnect-chat‘

(2) cdma1x-connect-chat: TIMEOUT 5

ABORT ‘NO CARRIER‘

ABORT ‘ERROR‘

ABORT ‘NO DIALTONE‘

ABORT ‘BUSY‘

ABORT ‘NO ANSWER‘

‘‘ \rATZ

OK \rAT\^PREFMODE=2

OK-AT-OK ATD#777

CONNECT \d\c

(3) cdma1x-disconnect-chat: ABORT "BUSY"

ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\nSending break to the modem\n"

‘‘ "\K"

‘‘ "+++ATH"

SAY "\nGoodbay\n"

D. 电信CDMA2000-EVDO

(1) evdo: debug

nodetach

lock

/dev/ttyUSB0

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 evdo-connect-chat‘

disconnect ‘/usr/sbin/chat -s -v -f evdo-disconnect-chat‘

(2)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

(3)evdo-disconnect-chat: ABORT "BUSY"

ABORT "ERROR"

ABORT "NO DIALTONE"

SAY "\nSending break to the modem\n"

‘‘ "\K"

‘‘ "+++ATH"

SAY "\nGoodbay\n"

3. 使用pppd拨号 :pppd file td(wcdma/evdo/cdma1x)

4. 此时将会使用脚本中设置的端口进行拨号,如果成功后会获得IP地址,电信的3G卡片获取的是外网IP地址,而其它则是获取的一个内网IP,将获取到的DNS添加到/etc/resolv.conf.中,并使用route添加一条默认路由,ping一下外网的地址,如果能够ping通,则说明完成了本篇的工作了,电信,移动,联通有的网络会禁ping,所以ping不通,所以这果,就需要使用自己的测试工具,发送tcp/udp包,确定是否成功完成本篇工作。

七. 可参考文章:

1. http://blog.chinaunix.net/u3/106318/showart_2110454.html

2. http://blog.chinaunix.net/u3/106318/showart_2102540.html

3.http://topic.csdn.net/u/20100513/15/dd3a4f01-e361-4e78-837e-c158b70b0214.html

4.http://blog.csdn.net/seven407/archive/2009/12/01/4904877.aspx

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ipromiseu/archive/2010/01/07/5154004.aspx

开发板 3G 网卡拨号上网

时间: 2024-10-11 13:21:35

开发板 3G 网卡拨号上网的相关文章

Linux下3G脚本拨号上网(转)

Linux下3G脚本拨号上网 (2010-7-5 13:08) 既然是拨号上网,就不能不提到ppp(point-to-point protocol)协议.ppp协议提供了一种通过串行点对点联接传输数据报的方式.它由三部份组成:一种在串行封装数据报的方式,扩展联接控制协议LCP,和用来建立和配置不同网络层协议的家族网络控制协议NCP.封装方案由内核驱动代码来提供.pppd(ppp daemon)提供基本的LCP,认证支持,和建立和配置IP的网络控制协议NCP.一个ppp会话分为四个步骤:连接建立.

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

___________________________________ 主机操作系统:Centos 6.5 交叉编译器环境:arm-linux-gcc-4.5.4 开发板平台: FL2440 Linux内核版本: 3.0 作者:songyong<[email protected]> ___________________________________ 一.配置内核支持3G驱动以及PPP协议 打开ppp相关配置: Device Drivers  ---> [*] Network devi

华为3G模块拨号上网

一 开发环境简介 内核版本 3.19.5.3.15(这2个我都试过) 编译环境  Ubuntu 12.04 3g模块      华为MU709s SIM卡        联通 二 主要步骤 向linux内核中添加3G模块驱动(USB转串口的option驱动)和ppp网络协议的支持 交叉编译ppp-2.4.2源代码 将拨号上网所需的两个应用程序pppd和chat拷贝到开发板/usr/sbin文件夹下, 编写ppp拨号脚本wcdma.wcdma-chat-connect.wcdma-chat-dis

ARM+llinux系统移植3G拨号上网收发短信(一)【转】

本文转载自:http://blog.csdn.net/hanmengaidudu/article/details/17099737 一.      PPP移植 各项工作具体说明 向Linux内核添加3G模块的驱动(USB转串口驱动)和PPP协议的支持,然后编译内核并下载到开发板.当然如果之前已经移植好内核,那么只需要增加几个选项就可以,然后在编译内核就可以了,这个文档默认内核已经移植过,所以只讲与USB转串口驱动和PPP协议支持的几个选项. [[email protected] linux-3.

必看教程--基于am335开发板网卡直连电脑网卡

将开发板的网卡和电脑的网卡用网线直接连接起来,然后将开发板启动,在超级终端执行命令root,接着执行命令:ifconfig eth0 192.168.254.14,接着执行命令:ifconfig结果如图所示: 按照开发板的网卡配置电脑,如图所示:单击"本地连接",如图所示:单击"属性",如图所示:接着单击"Internet 协议版本4(TCP/IPv4)",再单击"属性",如图所示:选择"使用下面的IP地址(S)&q

关于x210开发板和主机、虚拟机ping通问题

关于x210开发板和主机.虚拟机ping通问题: 步骤: 1.关闭 Ubuntu.关闭VMware软件: 2.打开 网络连接,设置 以太网 IP地址,并确认使用的网卡 3.以管理员身份打开VMware软件,然后打开虚拟网络编辑器: 4.还原默认设置.并选择桥接模式,然后桥接到 以太网 所用到的网卡: 5.打开虚拟机,设置虚拟机的网址,然后重启网卡,注意:开发板.虚拟机.主机三者的IP地址必须处于同一网段: 6.设置开发板IP.子网掩码.网关.服务器地址(Ubuntu的IP): 7.开发板和Ubu

荣品电子2代三星六核5260开发板支持GPS+北斗4G上网蓝牙4.0

荣品2代三星六核Exynos5260开发板搭配Android4.4.2+10.1寸IPS液晶屏(1920*1200),运行主频1300MHz~1700MHz:2G DDR3内存+16G EMMC存储,800W自动对焦摄像头,支持UBS3.0.GPS+北斗.4G上网(包括移动.联通.电信),蓝牙4.0 产品名称:RP5260开发板(4G全功能版) 产品型号:RP5260-4G 核心板型号:RP5260核心板(2G内存+16G存储) RP-Exynos5260开发板评估板是荣品电子于15年初发布的一

关于用网线连开发板和电脑网卡问题

关于用网线连开发板和电脑网卡问题 关于用网线连接开发板和电脑网卡使用tftp下载内核问题,提供一些个人解决方案已提供需要之人. 我的情况是:用无线上网,网线连接开发板和电脑网卡,想使用tftp下载内核和根文件系统 开发板ip:192.168.111.100 电脑本地连接设置ip:192.168.111.120 Linux服务器ip:192.168.111.128 (ip根据个人所需设置同一网段即可) 1.    设置虚拟机网络连接模式 首先在VMware中的Edit下virtual networ

【3G开发板】低功耗支持WCDMA 3G通信模块开发板

iTOP-Exynos4412开发板采用 Exynos4412的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储,具有稳定性强.可靠性高,能适用于对性能和处理能力有更高要求的嵌入式系统应用场合. iTOP-Exynos4412开发板内置有无线 WIFI 模块.Bluetooth.GPS.Camera.3G等模组,支持 HDMI1.4(1080P/60Hz)显示,客户可以直接从开发平台中汲取完整的产品信息,甚至可以直接用于后续的产品开发中,完全不同于一般意