将 GPRS 调制解调器连接至英特尔 EDISON

摘要:本文将介绍如何通过连接 GPRS 背板与英特尔® Edison 开发板来构建数据网络(使用 ppp)。 该背板使用有源 T-Mobile SIM。

启用内核中的 PPP

启用内核中的 PPP,并安装与 ppp 相关的程序包。

源文件的下载地址为: http://downloadmirror.intel.com/24698/eng/edison-src-ww05-15.tgz

编译源文件之前,建议您增加根文件系统的大小。

参考: https://communities.intel.com/docs/DOC-23449

根据系统的不同,构建配置需耗费 2 - 6 小时。

** 已使用 Ubuntu 12.04

编译时出现的错误:

1 Install libtool using sudo apt-get install libtool.

错误: 任务 535 (/home/inteldell/edison-src/device-software/meta-edison-distro/recipes-connectivity/libwebsockets/libwebsockets_1.23.bb, do_compile) 失败并退出代码 '1'

注: 任务概要: 在尝试的 1,855 项任务中,18 项不需要重新运行,1 项失败。

解决办法: 在

edison-src/device-software/meta-edison-distro/recipes-connectivity/libwebsockets/libwebsockets_1.23.bb 中替换方案文件中的第 22 行

替换前: export OPENSSL_CONF=${TMPDIR}/sysroots/x86_64-linux/usr/lib/ssl/openssl.cnf

替换为: export OPENSSL_CONF=${TMPDIR}/sysroots/i686-linux/usr/lib/ssl/openssl.cnf

配置内核中的 PPP

1 # bitbake virtual/kernel –c menuconfig

(首先,我仅启用了面向异步串行端口的 PPP 支持,这样产生了另一个错误 — 启用 PPP 过滤。 因此最后启用了所有功能。)

现在,安装 http://repo.opkg.net/edison/repo/core2-32/ 中的 PPP 程序包

通过 pppd,使用 GPRS 背板创建数据连接。

安装成功后,您需要查看以下文件结构。

为与调制解调器进行通信,应启用 GPIO 0 和 GPIO 1 上的硬件串行端口。

启用串行端口:

在终端上执行以下命令,以启用针脚 0 和针脚 1 上的串行端口。

01 echo 214 > /sys/class/gpio/export 2>&1
02 echo high > /sys/class/gpio/gpio214/direction
03 echo low > /sys/class/gpio/gpio214/direction
04 echo 131 > /sys/class/gpio/export 2>&1
05 echo mode1 > /sys/kernel/debug/gpio_debug/gpio131/current_pinmux
06 echo 249 > /sys/class/gpio/export 2>&1
07 echo high > /sys/class/gpio/gpio249/direction
08 echo 1 > /sys/class/gpio/gpio249/value
09 echo 217 > /sys/class/gpio/export 2>&1
10 echo high > /sys/class/gpio/gpio217/direction
11 echo 1 > /sys/class/gpio/gpio217/value
12 echo out > /sys/class/gpio/gpio131/direction
13 echo 0 > /sys/class/gpio/gpio131/value
14 echo 130 > /sys/class/gpio/export 2>&1
15 echo mode1 > /sys/kernel/debug/gpio_debug/gpio130/current_pinmux
16 echo 248 > /sys/class/gpio/export 2>&1
17 echo low > /sys/class/gpio/gpio248/direction
18 echo 0 > /sys/class/gpio/gpio248/value
19 echo 216 > /sys/class/gpio/export 2>&1
20 echo in > /sys/class/gpio/gpio216/direction
21 echo in > /sys/class/gpio/gpio130/direction
22 echo high > /sys/class/gpio/gpio214/direction

测试 GPRS 背板:

使用 microcom 发送 AT 命令来测试 GPRS 调制解调器的状态。

1 # microcom /dev/ttyMFD1 –s 115200
2 AT
3 OK
4 AT+CMGF=1 Set SMS text format
5 OK
6 AT+CMGS="+1503*****79" Send SMS message
7 > Hello World
8 +CMGS: 14
9 OK

该状态测试还可通过使用标准串行端口编程或 mraa 通用库来完成。

启用 GPRS

1 AT+CGATT=1 attach to GPRS network (normally includes in atd*99#)
2 AT+CGATT? should return +CGATT: 1
3 AT+CGDCONT=1,"IP","isp.singular" context definition
4 AT+CGACT=1 PDP context activation
5 AT+CGDATA="PPP",1 enter data mode

使用 GPRS 连接互联网:

创建脚本定义 PDP(分组数据协议)环境并提示已连接。 请查找面向脚本的随附压缩文件。

现在,使用命令创建连接

1 # pppd call gprs &

您可以通过以下内容查看日志文件

01 #cat /var/log/ppp/log
02
03 Press CTRL-C to close the connection at any stage!
04 defining PDP context...
05 AT
06 OK
07 ATH
08 OK
09 ATE1
10 OK
11 AT+CGDCONT=1,"IP","isp.singular","",0,0
12 OK
13 waiting for connect...
14
15 ATD*99#
16 CONNECT
17 Connected.
18
19 Serial connection established.
20 Using interface ppp0
21 Connect: ppp0 <--> /dev/ttyMFD1
22 not replacing default route to wlan0 [192.168.1.1]
23 local IP address 100.198.64.64
24 remote IP address 192.200.1.21
25 primary DNS address 10.177.0.34
26 secondary DNS address 10.168.185.116

参考资料:

https://communities.intel.com/docs/DOC-23449

http://repo.opkg.net/edison/repo/core2-32/

https://communities.intel.com/thread/54236

https://communities.intel.com/thread/55790

http://downloadmirror.intel.com/24698/eng/edison-src-ww05-15.tgz

http://www.att.com/esupport/article.jsp?sid=36059&cv=820#fbid=AcRge45P9Za

http://wiki.openmoko.org/wiki/T-Mobile_pppd_scripts

http://www.tldp.org/HOWTO/PPP-HOWTO/

点击下载

文章来源:英特尔开发人员专区