最近做毕设需要一个终端将解算数据发送到服务器,一开始想到了用4G串口透传模块,但是考虑到串口通信速度慢,而且在linux C编程时还要单独的写AT指令,感觉麻烦,所以放弃。
4G模块:华为me909s-821 miniPcie
arm板:tiny210 (linux3.0.8)
开发环境:ubuntu 64位
编译器:arm-linux-gcc 4.5.1
一:硬件连接
me909s-821资料还是挺多的,模块是pice接口,实际上和tiny210就是通过一个USB连接
二:驱动
根据《华为模块Linux内核驱动集成指导 .pdf》修改内核文件(这个手册官网没有,要自己找一下),感觉也没啥好说的,反正都是基于百度的编程实现,编译出错了网上都有解决方案。在此放上修改后能成功编译的内核,如果懒得修改直接用就好了
链接:https://pan.baidu.com/s/1iZEjxKjQeZjQjwHyMX71LA
提取码:29hu
怎么算驱动移植成功了呢,在arm上通过lsusb命令,如果出现如下信息,并且在/dev/下有ttyUSB0~ttyUSB4,则表明驱动移植成功
三:拨号
此时arm板ping任何外网是ping不通的(拔掉板子网线,4G模块插入手机卡),因为没有进行PPP拨号,所以要拨号,首先下载华为提供的脚本,(链接:https://pan.baidu.com/s/1dXGzq6thHJdF9zLZiLrQMw 提取码:dnlw )
步骤
1 在arm上运行huawei-ppp-on
[[email protected] plg]# ./huawei-ppp-on
2 之后会在目标目录生成拨号相关的脚本文件,具体可以到huawei-ppp-on脚本里面看,比如在/etc/ppp/peers下就会生成huawei-dial这个拨号脚本
此时ifconfig后会有一个ppp0连接
说明拨号成功,ping www.baidu.com
3 注销ppp连接,运行huawei-ppp-off这个脚本,但是运行后出现
BusyBox v1.17.2 (2010-12-30 11:13:11 HKT) multi-call binary.
说明arm经过裁剪后的文件系统不支持脚本里的混合命令(这个在busubox设置中怎么选择啊??知道的老铁教教我), 所以我只能用pkill -f "pppd*" 去杀死进程
再用ifconfig查看,ppp0没了,说明注销成功
4 刚才通过运行huawei-ppp-on生成了ppp拨号所需要的脚本文件,以后就可以用pppd call 进行拨号了(注意用后台模式拨号&!)
好了,开始linux tcp编程