设为首页 加入收藏

TOP

Linux下3G网卡在开发板上使用(模式转换)
2014-11-24 08:14:58 来源: 作者: 【 】 浏览:0
Tags:Linux 网卡 开发 使用 模式 转换

一.环境


1.linux kernel:2.6.30.4


2.3G card:HUAWEI EC1261(EC1260升级版)


二.相关软件:


1.usb-modeswitch-1.1.7.tar :USB设备工作模式转换工具


2.usb-modeswitch-data-20110227.tar :配置usb_modeswitch.conf时使用


3.libusb-1.0.8.tar :给usb_modeswitch提供一套系统API


4.libusb-compat-0.1.3.tar :兼容1.0与0.1两个版本


三.交叉编译usb_modeswitch


1.交叉编译libusb


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


# mkdir install


B. 配置并生成Makefile文件


#./configure --build=i686-linux --host=arm-linux --prefix=/opt/libusb-1.0.6/install


C. #make


D. # make install


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


A.设置环境变量


# export PKG_CONFIG_PATH=/opt/libusb-1.0.6/install/lib/pkgconfig:$PKG_CONFIG_PATH


B.查看是否设置正确


#echo $PKG_CONFIG_PATH


3. 交叉编译lib_compat


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


A#mkdir install


B. #./configure --build=i686-linux --host=arm-linux --prefix=/opt/libusb-compat-0.1.3/install


C. #make


D. #make install


4. 交叉编译usb_modeswitch


A.修改Makefile文件


添加STRIP和CC选项为:


STRIP = arm-xxx-linux-strip


CC = arm-xxx-linux-gcc


B. 可以将上面的libusb和libusb-compat的库和头文件拷贝到交叉编译器的目录下(目录分别为/opt/EmbedSky/4.3.3/lib/gcc/arm-none-linux-gnueabi/4.3.3/和/opt/EmbedSky/4.3.3/lib/gcc/arm-none-linux-gnueabi/4.3.3/include),并在Makefile中添加路径:


LDFLAGS = -Wl,-rpath=/opt/EmbedSky/4.3.3/lib/gcc/arm-none-linux-gnueabi/4.3.3/,其它不变


注:用指定库和头文件路径的方法不成功,必须放在交叉编译器的目录下,原因不知。


C.make


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



# Huawei, newer modems

DefaultVendor= 0x12d1
DefaultProduct=0x1446

TargetVendor= 0x12d1
TargetProduct= 1001

CheckSuccess=20

MessageContent="55534243123456780000000000000011062000000100000000000000000000"


注:在usb-modeswitch-data-20110227中可以找到对应的文件12d1:1446,粘贴即可。



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


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


1. 编译内核:详见《基于嵌入式Linux的3G技术的应用和研究》


2. 编译3G模块的驱动option.ko :配置内核时3G驱动对应的选项“USB driver for GSM and CDMA modems”需编译成模块,才能在后面转换时生成ttyUSB0、ttyUSB1、ttyUSB2。


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


五. 加载驱动


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


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


注:不需使用 弹出3G卡片的指令: eject /dev/sr0 ,使用usb_modeswitch 指令就可以转换了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ARM板和Linux上的3G配置详解 下一篇Linux下3G卡片在开发板上的详细解..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)
·TCP/UDP协议_百度百科 (2025-12-26 12:20:11)
·什么是TCP和UDP协议 (2025-12-26 12:20:09)
·TCP和UDP详解 (非常 (2025-12-26 12:20:06)