正在加载...

由于近一段时间,公司项目需要在嵌入式系统中使用Linux拨号对外通信,故做了这方面的研究,现在写出来希望对你有用。

Linux的图形模式下的驱动安装或者拨号我就不再写了,毕竟都很简单的事,下面说一下在嵌入式系统中的集成方式。由于和产品提供公司签有保密协议,故在这里无法透露具体的产品名称、型号以及具体的modem数据,请见谅。我只大体上说明一下集成的流程。

首先说一下开发环境:使用ARM嵌入式开发板,Linux内核2.6.28,某公司3G modem模块,3G使用联通WCDMA。

1、从www.kernel.org 这里下载相关内核,不用太新,版本号稍微大一些,这样基本上就集成了你用的modem的驱动。如果你必须使用小版本的,可以找供应商索取集成文档,下载下来源码后作修改。

2、对集成了驱动的内核做交叉编译,在编译中不要忘记选择ppp协议(这个一般会自动集成)。

3、把bin文件烧录到ARM中。

4、到ppp.samba.org/ppp/download.html 这里下载ppp和chat软件,交叉编译,你用wvdial也可以,我在pc机上拨号试验成功,但是交叉编译起来需要另外很多其他的库文件,太过于麻烦,所以走ppp这条脚本拨号路子。

5、编写拨号脚本,这个网上有很多,copy下来改改即可。一般设备厂家也会给你拨号脚本的。

6、copy把以上编译的和脚本拷贝到开发板上,请注意编写好的脚本最好放在/etc/ppp/的目录下,另外,脚本文件最好不要在windows下编写,应用vim来做,不然有可能会出现找不到文件的情况。

7、使用 ./scriptName 方式运行脚本拨号即可。

当出现如下提示

Beginning…
Dialing up…*99#
Logging…
Serial connection established.
using channel 5
Using interface ppp0
Connect: ppp0 <–> /dev/ttyUSB_*(这里根据设备不同而不同,我用的usb口)
下面一大串sent和rcvd,太多不贴了,然后再往下
local  IP address 172.*.*.*(这些IP根据环境不同而不同)
remote IP address 10.*.*.*
primary   DNS address 10.*.*.*
secondary DNS address 10.*.*.*

运行ifconfig -a命令后出现ppp0,并且也有IP地址,则你已经拨号成功了。下面就是基于tcp/ip的编程,和用局域网一样。

本人Linux刚刚学起,以上抛砖引玉。

: http://www.baishaode.com/blog/?p=430

本文相关评论 - 1条评论都没有呢

还没有任何评论。

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: