来源:自学PHP网 时间:2015-04-14 10:28 作者: 阅读:次
[导读] 一 ARM-LinuxARM-Linux-2 6 173G USB Modem:huaweiE220(WCDMA),huaweiEC156(EVDO)arm-linux至少需要支持usb host,usb storage,usbfs,usb serial二 Linux驱动option clinux中option c就是针对3G modem的驱动...
一.ARM-Linux
ARM-Linux-2.6.17 3G USB Modem:huaweiE220(WCDMA),huaweiEC156(EVDO) arm-linux至少需要支持usb host,usb storage,usbfs,usb serial 二.Linux驱动 option.c linux中option.c就是针对3G modem的驱动,稍作修改即可支持大部分的3G usb modem 目前我的这个版本的USB Option PCMCIA serial driver依赖于USB_SERIAL && USB_OHCI_HCD && PCCARD,所以系统要保证已经选定了这三个选项,如果host不同,可以自行修改USB_OHCI_HCD这个依赖项,我的目前使用isp芯片所以就修改了这个依赖项,总而言之,usb host是必须需要的. 添加对华为e220和华为ec156的支持,在option_ids数组中添加子项: 1. #define HUAWEI_PRODUCT_E220 0x1003
2. #define HUAWEI_PRODUCT_EC156 0x140c 1. { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220) },
2. { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_EC156)}, 三.工具 usb_switchmode-1.2.4 这是目前的最新版本,使用这个工具的目的是将默认被识别为存储设备的3g usb modem转换为可以通讯的多个串口设备,以用于ppp拨号连接. 此工具依赖于linusb的,全部交叉编译之,. 1.下载并交叉编译libusb-0.1.12: ./configure --build=i686-linux --host=arm-linux --prefix=$PWD/install make make -n install (确定安装目录) make install 至此,libusb编译完毕. 2.交叉编译usb_switchmode 修改makefile: cc=arm-linux-gcc INCLUDEDIR =/home/jay/tools/3G/libusb-0.1.12/install/include LIBDIR =/home/jay/tools/3G/libusb-0.1.12/install/lib $(CC) -I $(INCLUDEDIR) -L $(LIBDIR) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS) -static make 顺利通过,至此得到静态编译的usb_switchmode 3.将usb_switchmode移到arm linux文件系统中,然后将usb_switchmode.conf文件夹复制进arm linux中的/etc/目录下,这个文件夹下是很多3g usb modem的配置文件. 4.pppd拨号软件 移植pppd2.4.5 ./configure make CC=arm-linux-gcc 需要的东西就是:pppd chat pppdump pppstats下可执行程序pppd, chat, pppdump, pppstats 在嵌入式文件系统下需要建立/etc/ppp/peers文件夹 四.使用 插入3g usb modem的时候会被默认识别为u盘,此时使用usb_switchmode工具转换,就会绑定到多个串口上去, usb_modeswitch -W -c /etc/usb_modeswitch.d/12d1_1505 其中-W仅仅是显示详细配置信息,-c是指指定配置文件,usb_switchmode自带的配置文件貌似在嵌入式下使用都多多少少有点问题,随后发现,必须要指定 DefaultVendor 和 DefaultProduct两个参数. usb 1-1: new full speed USB device using isp1362-hcd and address 8 usb 1-1: configuration #1 chosen from 1 choice 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 option 1-1:1.3: Option 3G data card converter detected usb 1-1: Option 3G data card converter now attached to ttyUSB3 scsi6 : SCSI emulation for USB Mass Storage devices 如果没有ttyUSB0之类的设备节点,可以自己手动建立, mknod /dev/ttyUSB0 c 188 0 mknod /dev/ttyUSB0 c 188 1 .... 之后可以 echo ATZ>/dev/ttyUSB0,如果没有错误,转换基本ok. 最后就剩下ppp拨号 目前我使用的e220是wcdma制式,ec156是evdo制式,其拨号脚本少有不同(驱动仅仅是设备号码有点点区别) 1.wcdma: 1. debug
2. nodetach 3. lock 4. /dev/ttyUSB0 5. 115200 6. user "14522023288" 7. password "******" 8. crtscts 9. show-password 10. usepeerdns 11. noauth 12. noipdefault 13. novj 14. novjccomp 15. noccp 16. defaultroute 17. ipcp-accept-local 18. ipcp-accept-remote 19. connect '/usr/sbin/chat -s -v -f chat-wcdma-connect' 20. disconnect '/usr/sbin/chat -s -v -f chat-wcdma-disconnect' chat-wcdma-connect: 1. TIMEOUT 5
2. ABORT 'NO CARRIER' 3. ABORT 'ERROR' 4. ABORT 'NO DIALTONE' 5. ABORT 'BUSY' 6. ABORT 'NO ANSWER' 7. '' /rAT 8. OK /rATZ 9. OK /rAT+CGDCONT=1,"IP","3gnet",,0,0 10. OK-AT-OK ATDT*99# 11. CONNECT /d/c chat-wcdma-disconnect: [html] view plaincopy 1. ABORT "BUSY"
2. ABORT "ERROR" 3. ABORT "NO DIALTONE" 4. SAY "/nSending break to the modem/n" 5. '' "/K" 6. '' "+++ATH" 7. SAY "/nGoodbay/n" 2.evdo 1. debug
2. nodetach 3. lock 4. /dev/ttyUSB0 5. 115200 6. user "ctnet@mycdma.cn" 7. password "vnet.mobi" 8. crtscts 9. show-password 10. usepeerdns 11. noauth 12. noipdefault 13. novj 14. novjccomp 15. noccp 16. defaultroute 17. ipcp-accept-local 18. ipcp-accept-remote 19. connect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-evdo-connect' 20. disconnect '/usr/sbin/chat -s -v -f /etc/ppp/peers/chat-evdo-disconnect' chat-evdo-connect: 1. TIMEOUT 60
2. ABORT 'NO CARRIER' 3. ABORT 'ERROR' 4. ABORT 'NO DIALTONE' 5. ABORT 'BUSY' 6. ABORT 'NO ANSWER' 7. '' /rATZ 8. OK-AT-OK ATD#777 9. CONNECT /d/c chat-evdo-disconnect: 1. ABORT 'NO CARRIER'
2. ABORT 'ERROR' 3. ABORT 'NO DIALTONE' 4. ABORT 'BUSY' 5. ABORT 'NO ANSWER' 6. SAY "/nSending break to the modem/n" 7. '' "/K" 8. '' "+++ATH" 9. SAY "/nGoodbay/n" 后台拨号使用: pppd call wcdma& pppd call evdo& 电信的ecdo貌似账号密码必须使用ctnet@mycdma.cn vnet.mobi,不能使用电话号码和给定的密码. 如果拨号成功ifconfig可以看到ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:183.43.180.134 P-t-P:113.115.0.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:70 (70.0 B) TX bytes:64 (64.0 B) 测试网络: # ping www.baidu.com PING www.a.shifen.com (220.181.111.148): 56 data bytes 64 bytes from 220.181.111.148: icmp_seq=0 ttl=55 time=91.3 ms 64 bytes from 220.181.111.148: icmp_seq=1 ttl=55 time=105.3 ms 64 bytes from 220.181.111.148: icmp_seq=2 ttl=55 time=93.9 ms 64 bytes from 220.181.111.148: icmp_seq=3 ttl=55 time=98.9 ms 64 bytes from 220.181.111.148: icmp_seq=4 ttl=55 time=95.4 ms ping的时候注意屏蔽掉eth0之类的其他网络节点:ifconfig eth0 down 如果无法解析域名,多半应该是dns问题,本来ppp的dns是自动获取的,但是它保存的路径是/etc/ppp/resolv.conf,但是linux使用的却是/etc/resolv.conf,所以我们建立一个软连接即可: ln -s /etc/ppp/resolv.conf /etc/resolv.conf 至此3G usb modem嵌入式下使用告一段落 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com