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
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/
./startup.sh
Tizen Emulator
su
cd /home/
./emulator-manager
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