前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【专业技术】linux下实现3G拨号上网

【专业技术】linux下实现3G拨号上网

作者头像
程序员互动联盟
发布2018-03-12 11:41:48
2.5K0
发布2018-03-12 11:41:48
举报

linux下要实现3G拨号上网,除了3G网卡和对应的3G卡外,软件上需要对应的网卡驱动和pppd拨号程序,pppd拨号程序一般较容易得到,如果是嵌入式平台,交叉编译即可,编译过程中可能会遇到一些错误,但都不是大问题,一般很容易解决。而3G网卡驱动对于刚接触的人来说可能稍微难一点,大部分的3G模块内核中已经得到支持。如果不幸内核中没有得到支持,那么自己添加支持也是很容易的。下面介绍两种驱动3G网卡的方法。

linux内核中USB-GSM模块的驱动主要是drivers/usb/serial/options.c文件。看了此文件会非常明了,对一个3G网卡的支持主要就是两个参数,一个是厂商ID,一个是设备ID,只要3G网卡可以被USB识别,那么我们很容易得到这个USB设备的设备ID和厂商ID,得到之后,我们把这两个参数添加进option.c文件重新编译得到option.ko,那么这个3G网卡一般就能正常工作了。

第二种方法是使用usb-modeswitch来是3G网卡正常工作。这种方法我没有实际使用过,下面是从网上看到的一篇文章,可以作位参考。

我的3G上网卡是华为 E1750,操作系统是openSUSE 11.2,之前只能在虚拟机运行的Windows里上3G,感觉这样实在不方便,于是想到了直接在Linux里连接3G网络。 1. software http://www.draisberghof.de/usb_modeswitch/

usb-modeswitch

usb-modeswitch-data libusb

2. install

安装软件 root# tar jxvf usb-modeswitch-1.1.3.tar.bz2 root# cd usb-modeswitch-1.1.3/ root# make install

root# tar jxvf usb-modeswitch-data-20100707.tar.bz2

root# cd usb-modeswitch-data-20100707/ root# make install then upgrade libusb to the lastest version. root# cp /usr/share/doc/packages/ppp/scripts/pon /usr/local/sbin root# cp /usr/share/doc/packages/ppp/scripts/poff /usr/local/sbin root# chmod ug+x /usr/local/sbin/pon /usr/local/sbin/poff

接下来,接上3G上网卡,可以看到 lsusb 输出的结果多了"USB Modem"字样。

root# lsusb ... Bus 002 Device 010: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem ... 3. configure 建立3个PPP配置文件。 root# cat /etc/ppp/peers/wcdma nodetach lock /dev/gsmmodem 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/peers/wcdma-chat-connect' disconnect '/usr/sbin/chat -s -v -f /etc/ppp/peers/wcdma-chat-disconnect'

root# cat /etc/ppp/peers/wcdma-chat-connect

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 root# cat /etc/ppp/peers/wcdma-chat-disconnect ABORT "ERROR" ABORT "NO DIALTONE" SAY "\nSending break to the modem\n" '' "\K" '' "+++ATH" SAY "\nGoodbay\n"

4. connect 拔号连接 root# pppd call wcdma & ...... Serial connection established. Using interface ppp0 Connect: ppp0 <--> /dev/gsmmodem CHAP authentication succeeded CHAP authentication succeeded Could not determine remote IP address: defaulting to 10.64.64.64 not replacing default route to eth0 [10.217.15.1] local IP address 172.27.25.133 remote IP address 10.64.64.64 primary DNS address 202.106.195.68 secondary DNS address 202.106.46.151 Script /etc/ppp/ip-up finished (pid 10543), status = 0x0 手工添加DNS root# echo "nameserver 202.106.46.151" >> /etc/resolv.conf 手工指定默认网关 root# route add default gw 172.27.25.133 测试网络是否可用 root# ping -c 5 www.sina.com.cn PING libra.sina.com.cn (202.108.33.80) 56(84) bytes of data. 64 bytes from 202.108.33.80: icmp_seq=1 ttl=56 time=39.6 ms 64 bytes from 202.108.33.80: icmp_seq=2 ttl=56 time=48.3 ms 64 bytes from 202.108.33.80: icmp_seq=3 ttl=56 time=46.8 ms 64 bytes from 202.108.33.80: icmp_seq=4 ttl=56 time=44.6 ms 64 bytes from 202.108.33.80: icmp_seq=5 ttl=56 time=44.1 ms --- libra.sina.com.cn ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 39.670/44.739/48.330/2.957 ms

5. disconnect root# poff

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档