1、配置内核支持(Linux-2.6.21)
(1)在设备驱动的网络配置里选择上ppp的支持,因为后面使用到的拨号软件pppd要用到此驱动,如果不配置会报没有此驱动的错误
/dev/ppp驱动,这里选择型号,直接编译进内核
Device Drivers ---> Network device support --->
(2)选择上usb转串口驱动,主要有两处,同样选择直接编译进内核
Device Drivers ---> USB support ---> USB Serial Converter support---->USB Serial Converter support
同时,需要在kernel/driver/usb/serial/option.c中加入你的上网卡的型号,可以在主机上用lsusb命令查看,也可以在cat /proc/bus/usb/devices中查看,E1750---->0x12D1:0x1446
配置完毕,编译内核,下载到板子上,板子依然是将该上网卡认做U盘,查看cat /proc/bus/usb/devices里的driver仍然是usb storage,并没有自动转换成ttyUSB,网上说这一步完成后,应该是可以支持自动转换了,但是我们的Linux却没有,不知何故?于是加入了usb_modeswitch
2 、usb_modeswitch的配置与使用
(1)交叉编译libusb库(貌似版本依赖问题很严重,选了好几个版本,libusb-0.1.12.tar.gz)
./configure --host=arm-linux
--prefix=/edy/3G
make
make install
将会在/edy/3G下生成3个目录:include (里面是下一步操作需要的头文件) lib(里面是下一步操作需要的库)bin
(2) 交叉编译usb_modeswitch (usb_modeswitch-1.1.9)
修改Makefile
CC= arm-linux-gcc
CFLAGS += -Wall -I /edy/3G/include -L /edy/3G/lib -lusb
make all
生成了usb_modeswitch可执行程序
还要修改配置文件usb_modeswitch.conf,需要用到usb_modeswitch-data-20110805.tar.bz2
在usb_modeswitch-data目录下,有一个usb_modeswitch.d目录,在下面找到你的3G上网卡所对应的型号,我的是12d1:1446
cat 12d1:1446 >> usb_modeswitch/usb_modeswitch.conf
(3) 将usb_modeswitch应用程序移动到开发板的/usr/sbin下,将usb_modeswitch.conf移动到开发板的/etc下
将libusb库移动到开发板的/lib下,要注意最好在主机上对libusb压缩,tar -cvf libusb.tar ,然后在开发板上解压缩,
cd /lib/usblib
cp -ard * /lib下面(一定要防止符号链接丢失,要加-d选项)
3 、拨号软件ppp的移植(ppp-2.4.5.tar.gz)
将生成的pppd 和chat移动到板子的/usr/sbin下,将mini6410写的拨号脚本/etc/ppp目录复制到板子的/etc目录下
4、在板子上操作
插上上网卡,运行usb_modeswitch,就可以在/dev目录下生成ttyUSB0 ttyUSB1 ttyUSB2等驱动了,你可以查看
cat /proc/bus/usb/devices 下,看dirver标签,已经是还有两个ttyUSB没生成。。。。。。。。。
此时运行拨号软件pppd call wcdma,就能够发指令了
待续。。。。。。。。。。。