3.1 Instant Contiki

安装Contiki的方法有很多种,你可以根据自己的喜好从源码安装,或者直接使用虚拟机。

为了使用Contiki,你需要下面三项:

  • Contiki源码
  • 目标平台(虚拟平台或真实邮件平台)
  • 工具链,编译运行于目标平台上的程序

本书剩下的部分假设Contiki运行在一个Unix环境,比如运行在Ubuntu上的虚拟环境。

3.1.1从源码安装

许多来自大学、研究中心、世界各地的开发者都对Contiki的源码积极贡献自己的力量。Contiki的源码保存在Contiki GitHub仓库

为了获取源码,你需要打开终端并执行下面的命令:

sudo apt-get -y install git
git clone --recursive https://github.com/contiki-os/contiki.git

什么是git?

Git是为提高开发速度和效率而提供的免费、开源的分布式版本控制系统。

与其它常见版本控制工具不同的是,Git在本地保留有一份仓库拷贝,允许你在本地工作并提交到服务器。

下面是一些学习Git的在线教程:

Code School & Github “try Git”[6]

Roger Dudler’s Git simple guide[7]

Github是一个基于web主机服务器的GIT仓库,提供Git的分布式版本控制和源代码管理功能,以及该网站自身的特性。Github提供了基于web的图像化接口和桌面,访问权限控制,移动集成,以及一些协作特性,比如维基、任务管理、bug跟踪、特征请求。

使用GIT并将代码托管到Github的优点是允许大家fork代码,然后深入开发,最后再将代码贡献回去。


安装工具链和依赖:

sudo echo "deb http://ppa.launchpad.net/terry.guo/gcc-arm-embedded/ubuntu trusty main" > /etc/apt/sources.list.d/gcc-arm-embedded.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key FE324A81C208C89497EFC6246D1D8367A3421AFB
sudo apt-get update
sudo apt-get -y install build-essential automake gettext
sudo apt-get -y install gcc-arm-none-eabi curl graphviz unzip wget
sudo apt-get -y install gcc gcc-msp430
sudo apt-get -y install openjdk-7-jdk openjdk-7-jre ant

上面的命令用于支持ARM Cortex-M3、MSP430平台,支持Cooja。下一节将讨论讨论Contiki的仿真。

3.1.2Instant虚拟机

Instant Contiki是一个完整的Contiki开发环境。它是一个Linux Ubuntu虚拟机,且预装了需要的ContikiOS、开发工具、编译器、仿真器。

从Contiki站点现在Instant Contiki:

http://www.contiki-os.org/start.html

最新的版本是基于Contiki源码3.0发布的Instant Contiki 3.0。本书主要依赖于该版本,且不推荐大家使用老版本。

发布标签(tag):

http://www.contiki-os.org/start.html

不仅如此,你还应该总是使用Contiki的最新提交的代码,因为Contiki每年都会发布新版本。在最新的master分支上,修复了很多bug,添加了新特性。

下载免费的、被广泛使用的Windows和LInux的VMware Player[8]就可以运行Contiki虚拟机了。在OSX中,你可以下载 VMWare Fusion[9]

直接使用VMware打开文件Instant_Contiki_Ubuntu_12.04_32-bit.vmx。如果有关于VM源码的提示,直接选择“I copied it”,然后就等待Ubuntu启动吧。

登录Instant Contiki。用户名和密码是“user”。

不要忘记更新Contiki仓库、获取最新源码:

cd /home/user/contiki
git fetch origin
git pull origin master

[6]:https://try.github.io/levels/1/challenges/1

[7]:http://rogerdudler.github.io/git-guide/

[8]:https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0

[9]:http://www.vmware.com/products/fusion