通讯之——在ARM Linux上的实现(2440)

2019-07-12 22:08发布

注:此方法只针对与friendly 2440开发板

一:开发环境简述:

内容 说明 3G模块: 华为E261 3G SIM卡: 中国联通3G卡 嵌入式开发板: Friendly Mini2440 嵌入式linux版本: linux2.6.32.2 主机开发环境: Ubuntu 14.4

二:应用步骤:

1. 向 linux 内核中添加 3G模块的驱动 (USB 转串口 的驱动)和 PPP 协议的 支持,重新编译下载内核 2. 对于3G模块的驱动的制作以及开启,其含有USB-modeSwitch与PPP的实现 3. 进行3G网络的测试验证

三:内核的配置启动及验证

1. 向linux内核添加3G模块的驱动(USB转串口的驱动)和PPP协议的支持,交叉编译并下载内核到开发板。 2. 由于Linux-2.6.32.2内核支持“USB driver for GSM and CDMA modems”,所以不需要修改代码,只修改内核的配置即可。   编译前期做如下准备:
        (1)清除临时文件、中间文件和配置文件,进入内核文件目录,执行命令:make distclean                          
                                                                 图1.执行make distclean命令
       (2)使用内核/arch/arm/configs目录下的mini2440-defconfig 文件作为配置文件,将其拷贝为内核目录下的.config文件                                                                               图2  将mini2440-defconfig作为配置文件
         (3)在终端下输入:make menuconfig出现内核配置界面后选择:                          USB的支持配置:             
           具体步骤如下:          
                                                                                图3 按“Enter” 进入“Device Devices”目录                                                                                                                      图4 按“Enter” 进入“USB support”目录                                                                                                               图5 按“Enter” 进入“USB Serial Converter support”目录                                                                                                                                  图6 按“Y” 进入“USB Generic Serial Driver ”目录                                                                                                              图7 按“Y” 进入“USB driver for GSM... ”编译进内核                         配置3G模块驱动添加完成,下面进行PPP协议支持的添加:                                     
                             具体步骤如下几幅图所示:                                                                                                      图8 按“Enter” 进入“Device Devices”目录                                                                               
                                                                  图9 按“Enter” 进入“Network device support ”目录                                                                                                             图10 选择ppp协议支持(全部选上)编译进内核          (4)在完成这些步骤之后,进行内核的交叉编译,退出make menuconfig 输入make zImage,编译生成的内核印象文件下载到板子上。                                         内核启动后,会在/dev目录下生成ppp的设备节点:                                   

     2.启动3G模块:

                           由于我们的开发板的内核由厂商提供,其在内核里已将其3G模块的驱动添加成功,我们无需再进行相关                     的驱动编写,若其采用的开发板可以采用linusb,usb-modeswitch等软件进行相关的制作,目前网上有相关的                      详细过程,在此就不再重复。
                          (1)内核启动后,在开发板USB HOST口插上3G模块的USB线,会打印信息输出                                    
                           (2)此时我们启动我们的相关驱动文件,在此可以输入:3g-modem c /etc/3gmodem/12d1.1446.12d1.140c -W                                   
                                                                   从图中可以看出我们的Vendor 为12d1,Product为1446.                                                                         此时,我们再看看我们的USB信息,可以发现我们现在已经能够启动自动识别,可以这里出现了USB0,USB1,USB2的接口,我们的GSM modem以USB传输开启                         (3)启动拨号:pppd call wcdma &                                                                                                                       
                                  
                                              从图中可以看出我们的IP为10.41.106.97 DNS为210.22.70.3,说明我们的网络已实现
                       (4)进行对网络的连接验证
                                1.看看我们当前的ifconfig状态                                                                                                                        从图中可以看出,我们已经有了PPP                                     2.进行ping 8.8.8.8的尝试