Tizen SDK on non-Ubuntu Linux distributions

Because I’ve been thinking about adding support for Samsung Gear S (thanks to TizenExperts Twitter Competition, I’m one of the lucky GearS owners) to my Raspberry Control app (proof-of-concept video), I had to install Tizen SDK for Wearable on my computer. It is, of course, possible to develop apps without relying on the official Tizen IDE, as long as the application complies with Tizen packaging rules, but installing the whole SDK seems to be a faster and a better solution. The Tizen SDK for Wearable is a comprehensive set of tools for developing Tizen-based Samsung Gear applications. It consists of IDE, Emulator, toolchain, sample code, and documentation. Unfortunately, Tizen SDK can only be run on Windows, Ubuntu, and Mac OS X. But what about other Linux distributions, like Fedora, which I use? So, I’ve started searching for some info about the possibility to run Tizen SDK on different Linux distributions. Instead of answers, I found only more questions (e.g. here [1]) and one tutorial which is no longer available [2]. Based on [2] and addressing the developers’ needs, I prepared a reworked tutorial on how to run Tizen SDK for Wearable on non-Ubuntu Linux distributions.

In this tutorial I will be based on Fedora 21 (x86_64), but this info should be also suitable to yours Linux distributions – minimal requirement is ability to install four packages: debootstrap, expect, webkitgtk and Oracle’s Java – it’s all. So let’s start…

1) Tizen SDK needs Oracle JDK, so first you have to check Java version:

user$ java -version
java version “1.7.0_51”
OpenJDK Runtime Environment (fedora-2.4.5.1.fc20-x86_64 u51-b31)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

If you use OpenJDK (output like above) you have to install Oracle’s Java and use the update-alternatives tool from java-common package which let you update alternatives. If Oracle Java is your default environment you can just skip steps 2-4.

2) Download Sun/Oracle Java and install jdk-7u60-linux-x64.rpm and jre-7u60-linux-x64.rpm packages:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

rpm -Uvh /path/to/binary/jdk-7u60-linux-x64.rpm
rpm -Uvh /path/to/binary/jre-7u60-linux-x64.rpm

3) Use update-alternatives tool to assign Oracle Java as a default:

alternatives –install /usr/bin/java java /usr/java/latest/jre/bin/java 1
alternatives –install /usr/bin/javaws javaws /usr/java/latest/jre/bin/javaws 1

4) Check the Java version again:

user$ java -version
java version “1.7.0_60”
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, mixed mode)

5) Install expect and webkitgtk packages:

su -c ‘yum install -y expect webkitgtk’

6) Download Install Manager and SKD Image from tizen.org site:

Tizen SDK for Wearable 1.0.0

For 64-bit systems:

wget http://cdn.download.tizen.org/sdk/Wearable/InstallManager/1.0.0/tizen-wearable-sdk-2.2.159_ubuntu-64.bin
wget http://cdn.download.tizen.org/sdk/Wearable/sdk-images/1.0.0/tizen-wearable-sdk-image-TizenSDKW_1.0.0-ubuntu64.zip

For 32-bit systems:

wget http://cdn.download.tizen.org/sdk/Wearable/InstallManager/1.0.0/tizen-wearable-sdk-2.2.159_ubuntu-32.bin
wget http://cdn.download.tizen.org/sdk/Wearable/sdk-images/1.0.0/tizen-wearable-sdk-image-TizenSDKW_1.0.0-ubuntu32.zip

7) Run installer:

Tizen SDK for Wearable:

chmod +x tizen-wearable-sdk-2.2.159_ubuntu(32 | 64).bin
./tizen-wearable-sdk-2.2.159_ubuntu(32 | 64).bin

blog_tizensdk_1

8) Prepare debootstraped Ubuntu:

After installation we can’t just simply run Tizen IDE or Tizen Emulator because they are linked against libraries which are not available on your system. The quickest solution to provide all libraries in proper version, to run whole Tizen IDE without any problems, is prepare minimal Ubuntu distribution (such solution maybe is not the best one, but has two big cons – is a simple and less intrusive). Getting and installing debootstrap is very easy:

su
yum install -y debootstrap
mkdir /srv/ubuntu
export PATH=$PATH:/sbin
debootstrap –arch=amd64 precise /srv/ubuntu http://archive.ubuntu.com/ubuntu/

Info that “Base system installed successfully” is telling you that you can go to step 9.

9) Now new minimal Ubuntu install is ready, so let’s make it “more usable“:

cd /srv/
mount /dev –bind ubuntu/dev
mount /dev/shm –bind ubuntu/dev/shm
mount /dev/pts –bind ubuntu/dev/pts
mount /sys –bind ubuntu/sys
mount /proc –bind ubuntu/proc
mount /home –bind ubuntu/home
mount /tmp –bind ubuntu/tmp
ln -s /proc/mounts ubuntu/etc/mtab

10) Chroot into your newly created minimal Ubuntu install:

chroot ubuntu /bin/bash

11) Add your user to chroot environment

useradd -s /bin/bash -u

12) Setup locales

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

13) Install all packages which are necessary to run Tizen SDK in debootrstrapped Ubuntu:

perl -pi -e ‘s/main/main universe/’ /etc/apt/sources.list
apt-get update
apt-get install -y qemu-kvm binutils-multiarch debhelper fakeroot realpath gettext procps xsltproc libdbus-1-3 liblua5.1-0 libexif12 libcurl3 expect libsdl-gfx1.2-4 python-software-properties zip libgnome2-0 libudev-dev libpython2.7 qemu-user-static libxcb-render-util0 libxcb-randr0 libxcb-xfixes0 libxcb-sync0 libxcb-icccm4 libxcb-keysyms1 libxcb-image0 libv4l-0 gnome-terminal dconf
add-apt-repository -y ppa:webupd8team/java
apt-get update
apt-get install -y oracle-java7-installer libgtk2.0-0 libxtst6 xdg-user-dirs xdg-utils unzip libwebkitgtk-1.0-0 chromium-browser

14) Now you are ready to run Tizen IDE and Tizen Emulator:

Tizen IDE

su
cd /home//tizen-wearable-sdk/ide
./startup.sh

Tizen Emulator

su
cd /home//tizen-wearable-sdk/tools/emulator/bin
./emulator-manager

01

After rebooting computer you will be have to repeat steps 9, 10 and 14, so I suggest you prepare “own launcher” with schroot command to run Tizen IDE like other application in your system – I’m too lazy to do this :)

Footnotes:

For more information about the Gear App Development, please visit Samsung Developers site: http://developer.samsung.com/samsung-gear

  • [1] https://developer.tizen.org/forums/sdk-ide/why-only-ubuntu-and-windows

  • [2] https://www.nixuopen.org/blog/2012/5/trying-tizen-sdk-10-on-64-bit-fedora-16

Lukasz Skalski Embedded Software Engineer
Hi, I'm Lukasz Skalski and I'm open source enthusiast and guy who lives and breathes all things related to IT - especially Linux and embedded systems. Have a look around, check out my Resume and Portfolio to catch up some of my projects. Please feel free to contact me. Let's work together and make something great!
Send