Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

fedora, tizen studio: "failed to start sdb", cannot connect tizen device

It is just sharing of knowledge. I hope I saved someone's time.

Problem description

If you have Fedora Linux (I use f25 now) but want to use Tizen Studio (officially it works only with Ubuntu Linux) you can face with these issues after installation and launch Studio:

  • Error message "failed to start sdb" during every Studio start
  • You can view Tizen devices from your network, but cannot connect

The problem is not started sdb tool (~/tizen-studio/tools/sdb)

For checking suspects you can try to launch sdb, it must failed with error: sdb: error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory.

Then, if you will check sdb with ldd command, you will see that libcrypto.so.1.0.0 is not found:

user@host$ ldd ~/tizen-studio/tools/sdb
linux-vdso.so.1 (0x00007ffc9dbf9000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd8fc5be000)
libcrypto.so.1.0.0 => not found
libc.so.6 => /lib64/libc.so.6 (0x00007fd8fc1f8000)
/lib64/ld-linux-x86-64.so.2 (0x0000560aab3af000)

The solution

Unfortunately, this problem cannot be solved with simple symlink to libcrypto.so and libssl.so and on Fedora 25 (and, I suppose, on Fedora 23 and 24 also). So, the simplest way is to get this libs from Ubuntu repo. We need package libssl1.0.0_1.0.2g-1ubuntu9_amd64.deb (link for mirror.yandex repo), but do not forget to choose your architecture. Extract this deb package and copy (as root user) files libcrypto.so.1.0.0 and libssl.so.1.0.0 to /usr/lib64 (or /usr/lib for i686 arch). Then launch command ldconfig as root.

After these actions you can launch sdb command:

user@host$ ~/tizen-studio/tools/sdb version
Smart Development Bridge version 2.2.91

After re-launching Tizen Studio you will can connect to Tizen Devices.

like image 858
Gleb Samsonenko Avatar asked Dec 24 '16 13:12

Gleb Samsonenko


2 Answers

It is much better to let your root partition untouched. You can write a script which preloads needed liraries and starts the sdb binary like this:

$ cd ~/tizen-studio/tools/
$ mv ./sdb sdb.bin
$ mkdir ./lib
$ mv libcrypto.so.1.0.0 ./lib/

then create a script named "sdb":

# sdb
LD_LIBRARY_PATH=./lib/ ./sdb.bin "$@"

$ chmod +x ./sdb and you are all set!

like image 166
geoffrey bonneville Avatar answered Oct 13 '22 17:10

geoffrey bonneville


I personally use libraries from the Steam.

Here is my '/usr/local/bin/sdb' script:

#!/bin/bash

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu
${HOME}/tizen-studio/tools/sdb "${@}"
like image 26
skitter Avatar answered Oct 13 '22 17:10

skitter