User Tools

Site Tools


os

OS SUPPORT

List of supported and community-supported operating systems as relates to being able to build IoTivity: build from sources or binaries) on any hardware.

DEBIAN

Status: community supported

$ git clone http://github.com/tizenteam/iotivity -b sandbox/pcoval/on/latest/debian
$ cd iotivity && ./debian/rules && sudo debi ../*.deb

Integration: WIP

Note on older debian based system. boost is outdated, so you need to install it manually.

Debian 7

System must be prepared with supported boost version:

apt-get install devscripts sudo
apt-get install zlib1g-dev libbz2-dev libicu-dev mpi-default-dev \
  bison flex docbook-to-man help2man xsltproc doxygen \
  python-all-dev python3 python3-all-dev
dget http://httpredir.debian.org/debian/pool/main/b/boost1.55/boost1.55_1.55.0+dfsg-3.dsc
dpkg-source  -x *.dsc
cd boost* ; ./debian/rules binary ; dpkg -i ../*.deb
apt-get install \
  scons autoconf automake autotools-dev libtool valgrind \
  libsqlite3-dev \
  libglib2.0-dev uuid-dev libcurl4-gnutls-dev \

Then build sources using scons (using gcc (Debian 4.7.2-5) 4.7.2)

Raspbian

New Info

Raspbian based on Debian Stretch is available here. Download the image and flash to an SD card using a handy new tool, Etcher, or set up to build running the image under Qemu (instructions for that somewhere on the internet).

If you use the full image (e.g. ``2017-09-07-raspbian-stretch.img`` - the date code will probably be different for you) a lot of the build environment is already available. You still need to add these:

sudo apt-get install \
  git-core valgrind doxygen libtool autoconf \
  libboost-all-dev libsqlite3-dev \
  uuid-dev libglib2.0-dev libcurl4-gnutls-dev libbz2-dev 

valgrind is currently required as when the platform is detected as 'linux' valgrind will be used when running unit tests. This is probably overkill for the Pi and should be made conditional.

For building, you will need to make sure the following patch is in place https://gerrit.iotivity.org/gerrit/22979. As of this writing it is now in both 1.3-rel (after tag 1.3.1-RC3, might be in RC4 did not check) and in master, but if you are trying to build a different snapshot it may not be included.

A Pi2 with its 1GB RAM and the default swap setup is not sufficient to build IoTivity on-board; install the Debian package ``swapspace`` to let the system allocate extra VM. The build will be very slow, it may be worth trying to do this in Qemu and transferring over the built tree to the live Pi for testing (if you don't want to test under Qemu).

Older entry:

Raspbian could be supported, I would try on jessie base , here some hints, please report if it work

Dump to card, update to jessie :

d=/tmp/tmp-root.tmp/mnt/dev/mmcblk0p1
cat<<EOT | sudo tee $d/installer-config.txt
packages=vim,aptitude,screen,etckeeper
release=jessie
EOT

boot it

Installation takes well under 15 minutes with fast Internet from power on to sshd running

Then rebuild using debuild this tree :

Check hardware page for Raspbian / raspberrypi

UBUNTU

If needed you can also build from a docker container.

At this point, builds assume a 64-bit OS. There was a patch in the latter half of 2017 which restored the CPU type mapping for x86 32-bit builds, they should be working but are not regularly tested.

Ubuntu 16.10, 17.04, 17.10

Instructions are like Ubuntu 16.04 (LTS).

However:

  • gcc : 6.3.0-12ubuntu2

gcc6 is known to currently have some problems with parts of the codebase. Until these are cleaned up, check Jira and/or file new issues.

Non-LTS releases of Ubuntu go out of date in 9 months, stay safe!

Ubuntu 16.04 LTS

sudo apt-get install \
    build-essential git-core scons ssh unzip sudo valgrind \
    doxygen libtool autoconf pkg-config \
    libboost-all-dev libsqlite3-dev \
    uuid-dev libglib2.0-dev libcurl4-gnutls-dev \
    libbz2-dev 

Ubuntu 14.04 LTS

Supported at :

cat /etc/os-release # VERSION="14.04.4 LTS, Trusty Tahr"
sudo apt-get install libboost1.55-all-dev

Ubuntu 12.04 LTS

$ sudo apt-get install \
  build-essential git-core scons ssh unzip sudo valgrind \
  doxygen libtool autoconf pkg-config \
  uuid-dev libglib2.0-dev libsqlite3-dev \
  libbz2-dev libcurl4-gnutls-dev
 
$ apt-get remove libboost1.46-dev libboost1.48-dev
 
$ cat<<EOF | sudo tee /etc/apt/sources.list.d/boost.list
deb http://ppa.launchpad.net/boost-latest/ppa/ubuntu precise main 
deb-src http://ppa.launchpad.net/boost-latest/ppa/ubuntu precise main 
EOF
 
$ sudo apt-get update ; sudo apt-get install libboost1.55-all-dev 
 
$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="12.04.5 LTS, Precise Pangolin"
ID=ubuntu
 
$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Then clone sources and build using scons.

Ubuntu 12.04 LTS (Precise Pangolin) went out of support 30 Apr 2017 so is no longer recommended for developer use. At the moment, however, Jenkins builds happen in a 12.04 image so people should not make changes which break 12.04 builds - and they will find out about it quickly.

MISC

community deb package :

For version 1.1.x : In the build process will ask you to clone tinycbor, use the specific version indicated by the following command.

There is a docker container for Ubuntu and iotivity-1.2-rel:

It contains a link to the github repo where the Dockerfile with the complete working instructions is hosted:

UBUNTU-CORE

LINUX MINT

cat /etc/os-release

NAME="Linux Mint"
VERSION="18 (Sarah)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 18"
VERSION_ID="18"
HOME_URL="http://www.linuxmint.com/"
SUPPORT_URL="http://forums.linuxmint.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/linuxmint/"
UBUNTU_CODENAME=xenial

Linux Mint 18 is derived from Ubuntu 16.04. tbw

YOCTO and derived (LFAGL, GENIVI)

Check dedicated page :

TIZEN

Check dedicated page :

OpenWrt

IoTivity is integrated into OpenWrt trunk and will be in the next DD release.

Package Source:

Install IoTivity in OpenWrt trunk:

opkg install iotivity-example-garage
opkg install iotivity-oic-middle

LINUX/ FEDORA

iotivity can be easily built for Fedora 24.

There is a docker container for Fedora 24 and iotivity-1.2-rel:

It contains a link to the github repo where the Dockerfile with the complete working instructions is hosted:

Also you can try this community repo :

Latest:

dnf install \
  git scons findutils pkgconfig \
  bzip2 unzip autoconf automake libtool git gcc-c++\
  boost-devel sqlite-devel \
  libuuid-devel glib2-devel libcurl-devel \
  wget 

LINUX/ CENTOS

master is building on centos 7, just setup your system using those lines:

  yum install \
      expat-devel  libcurl-devel  openssl-devel \
      boost-devel  boost-thread boost-filesystem \
      glib2-devel  sqlite-devel  libuuid-devel \
      wget unzip \
      gcc gcc-c++ \
      autoconf make automake

You need to install scons from other sources, try Tizen's RPM it worked for me

  rpm -i tools/tizen/scons-2.1.0-3.1.slp.noarch.rpm

LINUX/ ARCH

 pacman -Syu
 pacman -Ss iotivity # soon?
 pacman -S sudo 
 sudo pacman -S \
   git scons \
   gcc patch automake make libtool autoconf pkg-config \
   boost sqlite \
   unzip sudo valgrind doxygen grep sed file # python

ANDROID

IOS / DARWIN / MACOSX

WINDOWS

Check dedicated page :

RIOT OS

OTHER OS : TIZEN RT / RTOS / CONTIKI / ZEPHYR / NUCLEUS ...

os.txt · Last modified: 2017/10/26 19:47 by Mats Wichmann