由于3G無線上網(wǎng)卡工作模式相同,故其移植也大多雷同,故本次開發(fā)同樣適用于其他嵌入式開發(fā)板,如DM6446,ARM等等。同樣,也適用于其他聯(lián)通、移動(dòng)或電信的3G上網(wǎng)卡,尤其是華為的上網(wǎng)卡,如最常用的華為E160, E160G, E169, E180, E230, E270(+), E280, E630, E870, E1550, E1612, E1662, E1690, E1692, E1750, E1752, EC168C, K3765, K4505, K4605, MTE WM610, R201, K4605, K3765, K4505。中興的ZTE MF620,MF622等等等等。
其他支持的上網(wǎng)卡型號(hào)參見:http://www.draisberghof.de/usb_modeswitch/
建議:現(xiàn)在PC機(jī)上安裝usb_modeswitch和libusb,首先確保PC上的linux能夠順利撥號(hào),再將其移植到開發(fā)板上。
內(nèi)核:
需要有以下模塊:option usbserial usbstorage
主要是要在編譯內(nèi)核的時(shí)候選中
Device Drivers
USB Support
USB Serial Converter Support
USB Serial Converter Support(選中)
USB Generic Serial Driver
否則軟件pppd執(zhí)行的時(shí)候可能會(huì)失敗。
#make modules?????????????????????? //編譯外掛模塊
#make modules_install??????????? //安裝模塊
模塊編譯完后應(yīng)將其復(fù)制到開發(fā)板上,并執(zhí)行以下命令,否則會(huì)報(bào)找不到modules.dep
#/sbin/depmod –a??????????????????? //創(chuàng)建模塊的鏈接
軟件3個(gè):libusb、usb_modeswitch、pppd(含chat)和1個(gè)數(shù)據(jù)包(純文本):usb-modeswitch-data
libusb源碼下載:http://sourceforge.net/projects/libusb/files/libusb-1.0/
usb_modeswitcch下載:http://www.draisberghof.de/usb_modeswitch/
usb-modeswitch-data:http://www.draisberghof.de/usb_modeswitch/?? 這個(gè)數(shù)據(jù)包包含了usb_modeswitch所有支持的3G上網(wǎng)卡的配置文件,對(duì)于本次開發(fā),取出其中文件名為12d1:1446的文本文件即可。
基本步驟:
1.在開發(fā)板上USB口插入3G上網(wǎng)卡,注意DVS365開發(fā)板要短接J1 2和3管腳才啟用USB host模式,否則USB不供電。
2.在開發(fā)板上輸入lsusb會(huì)出現(xiàn)以下結(jié)果,說明開發(fā)板與3G上網(wǎng)卡硬件物理上連接成功,記下12d1:1446這個(gè)數(shù)字,后邊用。
antique@dm365:~# lsusb
Bus 004 Device 002: ID 12d1:1446 HUAWEI XXXX(省略若干)
3.在主機(jī)上交叉編譯usb_modeswitch,因?yàn)槠湟褂胠ibusb,故也要交叉編譯libusb。(見后文)
4.將主機(jī)交叉編譯產(chǎn)生的usb_modeswitch單文件、lib文件夾、12d1:1446文件復(fù)制到開發(fā)板/home目錄下上。
5.執(zhí)行usb_modeswitch將3G上網(wǎng)卡U盤模式轉(zhuǎn)換為modem模式
antique@dm365:/home#:./usb_modeswitch -c 12d1\:1446
屏幕會(huì)顯示一堆模式轉(zhuǎn)換信息,之后會(huì)顯示成功
6.檢查是否轉(zhuǎn)換成功,執(zhí)行l(wèi)susb,發(fā)現(xiàn)1446變?yōu)?001,表示轉(zhuǎn)換成功。
antique@dm365:/home# lsusb
Bus 004 Device 002: ID 12d1:1001 HUAWEI XXXX(省略若干)
7.硬件問題都解決了,開始撥號(hào)吧:(電信的撥號(hào)腳本,聯(lián)通、移動(dòng)的應(yīng)該會(huì)變化,請(qǐng)google)
antique@dm365:/home# pppd connect 'chat -v? "" "AT" "OK" "ATZ" "OK" "ATDT#777 CONNECT"' user card password card /dev/ttyUSB0 115200 nodetach noauth nocrtscts modem noipdefault debug usepeerdns defaultroute ipcp-accept-local noccp
屏幕會(huì)顯示撥號(hào)信息,成功獲取到的IP和DNS
8.另外啟動(dòng)一個(gè)shell,執(zhí)行
antique@dm365:/# route del default
antique@dm365:/#route add default dev ppp0
嘗試ping 8.8.8.8,應(yīng)該就通了。
注意:如果為其他3G上網(wǎng)卡,只需要將相應(yīng)的配置文件復(fù)制到板子上。如本例為12d1:1446.
基本步驟第3步交叉編譯過程:
A.交叉編譯Libusb
解壓并進(jìn)入libusb目錄,建立子目錄install用于存放最后生存的庫文件與頭文件。
[root@libusb-0.1.12]# mkdir install
配置并生成Makefile文件
[root@libusb-0.1.12]# ./configure --build=i686-linux --host=arm-linux --prefix=/home/libusb-0.1.12/install
[root@libusb-0.1.12]# make
[root@libusb-0.1.12]# make install
此時(shí)install目錄下應(yīng)有LIB了
B.交叉編譯usb_modeswitch
(1)、修改Makefile文件????? CC = arm_v5t_le-gcc
(2)、將libusb里的庫頭文件拷到交叉編譯器的include和lib目錄下,或者直接在Makefile文件里直接加上編譯選項(xiàng)指令庫的路徑即可如下:$(PROG):&(OBJS)
&(CC) –o $(PROG) &(OBJS) &(CFLAGS) –I /home/libusb-0.1.12/install/include –L /home/libusb-0.1.12/install/lib
(3)、make
此時(shí)應(yīng)產(chǎn)生usb_modeswitch單文件了
將Lib和usb_modeswitch按照基本步驟第四步復(fù)制到開發(fā)板上。
?
評(píng)論
查看更多