
摘要:本文将介绍如何通过连接 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/
文章来源:英特尔开发人员专区