TinyOS和Deluge的安装模拟(二)

TinyOS的安装

      TinyOS的安装是一件麻烦的事情,它不像其他的开发环境那样配置简单。要想成功安装好TinyOS,需要选择好PC操作系统,TinyOS安装文件的版本,工具链的版本……。总之,安装过程中很容易失败,而且失败原因是无法得知的。因为就算出错了,你也很少有机会可以搜索得到相关资料。

准备工作

对于1.x:

成功的安装经验是:选择Windows XP作为PC操作系统,Cygwin模拟环境,TinyOS 1.1.14nesc 1.1.1JDK 1.4.x

说明:(1)或许Windows 7也是可以的,因为网上看到有人在Windows 7上装过。但是本人是在XP英文版纯净系统上安装成功的。

        (2)Cygwin是必不可少的。这里的建议是到官网下载一个离线安装包(tinyos-cygwin-1.1.zip)。这是一个压缩文件,解压之后运行install.bat文件,就可以完成Cygwin的安装。

        (3)TinyOS 1.1.14及以上的版本才包含Deluge协议,因此这是个值得注意的地方。版本要选择对。

        (4)选择Nesc 1.1.1-2.cygwin.i386.rpm这个安装包,因为TinyOS 1.1.14要求依赖的nesc版本高于1.1.0。

        (5)JDK 1.4。这是一个古老的版本,在CSDN上面有下载。为什么依赖于1.4呢?事实上本人也试过1.5,但是编译TinyViz的时候不通过。因为在JDK 1.4中enum这个单词可以作为变量标识符,而在JDK 1.5中enum已经变成关键字了……

        (6)安装包下载:

安装步骤(详细步骤在这里):

        (1)安装JDK,配置好环境变量,注意将当前目录“.”加入到CLASSPATH中去。

        (2)安装Cygwin,解压文件直接运行install.bat文件。

        (3)安装graphviz-1.10.exe,TinyViz需要这个工具提供可视化绘图

        (4)打开Cygwin shell,进入到工具安装包所在目录,运行命令:

               $ rpm –-ignoreos –ivh *.rpm

               这条命令将先后安装所有的工具链,--ignoreos选项指明安装的时候忽略操作系统类型。

        (5)检查环境:toscheck。得到的结果是complete without errors最好,一些警告也是无伤大雅的。

        (6)编译TinyViz工具:make。这里有个问题,要在(/opt/tinyos-1.x/tools/java/net/tinyos/sim/Makefile)中添加net/tinyos/message/avrmote/*.class,否则TinyViz中显示的传感器节点指示灯是不会闪的。有可能需要先进入message/avrmote文件夹下运行make命令编译好.class文件,不然编译TinyViz会以失败告终。

对于2.x:

成功的安装经验是:选择Ubuntu 13.04 Server版本,增加TinyOS官方源

说明:(1)刚开始选择的是ubuntu 13.04 desktop版本,在安装的时候总会出现各种各样的依赖错误。无法正常完成安装步骤,更换到Server版本之后,世界清静了。

        (2)添加TinyOS官方源。然后更新源列表信息,安装需要的软件。

               $ sudo apt-get update

               $ sudo apt-get upgrade

               $ sudo apt-get install tinyos-*   // 选择具体的TinyOS版本

        (3)到这里貌似完事了,跑了几个自带例子,也能正常运行。2.x不需要安装JDK,其工具链是采用Python编写的。

安装步骤:

         具体的安装步骤,在后面的参考链接中给出。Debian系操作系统的安装还是比较简单,其他的操作系统看官方教程就知道有多麻烦了。

可能出现的问题

(1)toscheck/tos-check-env

      这个命令用于检查TinyOS的环境是否已经安装成功。一般如果出现GraphViz和JDK相关的警告,关系不大。本人在Cygwin下安装TinyOS 1.x的时候,配置好环境后toscheck检查无错误无警告。注意:toscheck这个命令是针对TinyOS 1.x而言的,在2.x下已经变成tos-check-env了。

(2)printenv

      printenv命令查看环境变量。常常检查的一个命令是MAKERULES。一般情况下,MAKERULES的值是指向一个makerules文件,通常可以通过export MAKERULES = /opt/tinyos-1.x/apps/Makerules来指定。编译的时候需要这个东西,以便让TinyOS的make系统搜索相关的库文件。

(3)可能由Python.h头文件带来的错误,网上都可以搜得到。如果在/usr/include/pythonx.x/下面找不到这个头文件,那么需要安装一下Python开发包:

       $ sudo apt-get install python-dev

       然后在sim.extra文件中添加一条:CFLAGS += /usr/include/pythonx.x/,另外还得将PYTHON_VERSION这个变量改成系统中对应的版本。如此一来,编译应该是没问题了。

(4)由于本人是利用TinyOS来进行仿真实验,因此并没有遇到Mote硬件相关的问题。

参考链接:

    1. http://www.tinyos.net/dist-1.1.0/

    2. http://sing.stanford.edu/tinyos-wiki/index.php/Main_Page

    3. http://blog.csdn.net/smartxxyx/article/details/7798889

    4. http://blog.csdn.net/utnewbear/article/details/6233475 推荐博客

    5. http://www.tinyosstudy.com/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

在你的服务器上安装Webmin

Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数...

1973
来自专栏SDNLAB

SDN开发笔记(三):ODL源码编译生成发行版控制器

前言 鉴于网上对于SDN开发相关的资料较少又乱的现状,从这篇文章开始,我将陆续分享我在SDN开发过程中的经验,我的SDN项目开发是基于OpenDaylight...

4498
来自专栏BeJavaGod

Zookeeper 分布式系统企业级开发实战与应用(2)- 分布式系统单点故障的解决方案(分布式锁)

1.分布式系统中的单点故障:分布式系统通常都会使用主从模式,就是一个主节点计算机连接多个处理从节点。主节点负责分发任务,从节点负责处理任务,但是一旦主节点宕机时...

3495
来自专栏前端小栈

利用Hexo+coding搭建博客,优化github博客打开速度

上次用hexo和github上搭建博客后,用了几天发现博客搭建在github上有一定的局限:

1612
来自专栏云计算教程系列

如何在Ubuntu 14.04上导入和导出MongoDB数据库

MongoDB是最受欢迎的NoSQL数据库引擎之一。它以可扩展,强大,可靠和易于使用而闻名。在本文中,我们将向您展示如何导入和导出MongoDB数据库。

4210
来自专栏散尽浮华

Nginx通过https方式反向代理的简单实现

1)nginx的反向代理:proxy_pass 2)nginx的负载均衡:upstream 下面是nginx的反向代理和负载均衡的实例: 负载机:A机器:103...

4.2K6
来自专栏xingoo, 一个梦想做发明家的程序员

大数据之Yarn——Capacity调度器概念以及配置

试想一下,你现在所在的公司有一个hadoop的集群。但是A项目组经常做一些定时的BI报表,B项目组则经常使用一些软件做一些临时需求。那么他们肯定会遇到同时提交...

3379
来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第十九天 Linux学习【悟空教程】

UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。不过UNIX有免费版的,例如:NetBSD等类似UNIX版本。

1634
来自专栏Python爬虫与数据挖掘

如何在vSphere Client的虚拟机上安装Centos6.7操作系统

前几天给小伙伴们介绍了Centos对应版本的下载教程以及如何在vSphere Client上如何创建虚拟机,感兴趣的童鞋们可以点击进去看看~~

1321
来自专栏lonelydawn的前端猿区

基于java swing的设备管理系统

一.系统介绍 一个简易的设备管理系统,包含了管理员登录注册、设备录入、设备状态管理功能,具体状态有购买时、正在运行、正在修理和已报废。 二.开发环境 开发环境:...

3097

扫码关注云+社区

领取腾讯云代金券