Tizen — взгляд изнутри

от автора

Tizen Xeyes Попал ко мне в руки на некоторое время образец телефона с Tizen OS. Я решил воспользоваться возможностью посмотреть, какой же Linux скрывается внутри. Большинство обзоров Tizen OS описывают интерфейс взаимодействия со стороны пользователя, в данной статье я проведу небольшой обзор телефона и операционной системы со стороны системного администратора. Будут рассмотрены наиболее интересные предустановленные консольные приложения, работа с графическим интерфейсом и возможность обновления из репозитория.

Для того чтобы подключиться к консоли устройства нам потребуется утилита Smart Development Bridge (SDB) из состава Tizen SDK. С сайта разработчика ее можно скачать отдельно. В виде бинарного файла Smart Development Bridge доступен под те же платформы, что и Tizen SDK: Windows 7(32 и 64 бит), Ubuntu(32 и 64 бит), Mac OS X (64 бит). Указание Ubuntu в данном случае несколько условно, у меня утилита без проблем заработала под Fedora 19 (x64). Smart Development Bridge способен работать с несколькими устройствами и предоставляет базовый набор команд для работы с устройством, в том числе удаленный доступ к командной оболочке устройства. Он то нас и интересует в первую очередь. Все дальнейшие манипуляции будут производиться из консоли.

В Tizen изначально предусмотрено два основных пользователя под которыми возможна работа: developer и root, по-умолчанию используется developer. Чтобы получить максимум возможностей при взаимодействии с операционной системой, нам потребуется повысить уровень привилегий, для этого потребуется включить режим суперпользоваля. Введем необходимые для подключения команды:

 $sdb root on Switched to 'root' account mode $sdb shell sh-4.1#


Итак, мы получили root-доступ к системе. Для начала проделаем простые тесты позволяющие получить информацию о платформе. Попробуем узнать предоставленный нам шелл, версию системы и ядра.

sh-4.1# echo $SHELL /bin/sh sh-4.1# sh --version sh --version GNU bash, version 4.1.5(1)-release (armv7l-unknown-linux-gnueabi) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>  This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.  sh-4.1$ cat /etc/system-release  Tizen release 2.2.0 (Tizen) sh-4.1# uname -a    Linux TRATS2 3.0.15-00002-g277d62a #1-Tizen SMP PREEMPT Tue Jul 16 13:12:44 KST 2013 armv7l GNU/Linux  

Вполне обычный линукс — Tizen 2.2.0 с ядром 3.0.15, в качестве командной оболочки используется Bash 4.1.5. Запросим информацию о характеристиках платформы таких как процессор и память.

sh-4.1# cat /proc/cpuinfo Processor	: ARMv7 Processor rev 0 (v7l) processor	: 0 BogoMIPS	: 1590.88 processor	: 1 BogoMIPS	: 1590.88 processor	: 2 BogoMIPS	: 1590.88 processor	: 3 BogoMIPS	: 1590.88  Features	: swp half thumb fastmult vfp edsp neon vfpv3 tls  CPU implementer	: 0x41 CPU architecture: 7 CPU variant	: 0x3 CPU part	: 0xc09 CPU revision	: 0  Chip revision	: 0011 Hardware	: TRATS2 Revision	: 000c Serial		: 4df764b878e3cf00  sh-4.1# cat /proc/meminfo | grep Mem MemTotal:         797944 kB MemFree:          385720 kB  sh-4.1# fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/mmcblk0'!  The util fdisk doesn't support GPT. Use GNU Parted.  Disk /dev/mmcblk0: 15.8 GB, 15758000128 bytes 1 heads, 16 sectors/track, 1923584 cylinders, total 30777344 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000          Device Boot      Start         End      Blocks   Id  System /dev/mmcblk0p1               1    30777343    15388671+  ee  GPT 

Вполне ожидаемые параметры — четырехядерный armv7 частотой 1.6 ГГц c гигабайтом оперативной памяти из которых доступно системе около 800Мб. Накопитель на 16 Gb. Характеристики полностью соответствуют Samsung Galaxy S III (GT-i9300), который в качестве деволепер-образца предоставляется разработчикам Tizen.

Попробуем получить информацию о доступных исполняемых файлах, нажав дважды TAB. В ответ на это шелл предлагает вывести около тысячи наименований. Точное число не привожу, так как при нескольких запусках число вариантов варьировалось от 952 до 1003. В любом случае, такое количество довольно велико для операционной системы телефона. Весь список перечислять очень долго, поэтому отмечу наиболее интересные на мой взгляд: X11,enlightenment, scp, ssh, sshd, rpm, zipper, xclock, xeyes, xmessage. Из этого можно сделать вывод, что на телефоне установлена операционная система по набору приложений не уступающая настольной – есть иксы, оболочка, пакетные менеджеры. В качестве среды рабочего стола используется Enlightenment. Некоторые приложения при запуске из консоли отображаются на экране телефона, закрывая меню. Если запустить xeyes увидим на экране телефона глаза следящие за касаниями к экрану. Пример результата запуска xeyes показан на фото в начале статьи. Аналогичным образом на дисплей можно вывести oclock, xclock, xlogo, xmessage.

 sh-4.1$ xmessage  -geometry 240x120 -center HELLO HABRAHABR!

Tizen xmessage Hello Habrahabr!

Не все приложения работоспособны «из коробки», для того чтобы ими можно воспользоваться потребуется их сконфигурировать.Так, например, скрипты запуска демона sshd в системе отсутствуют, а сам демон «в лоб» не запускается, выводя сообщение «Missing privilege separation directory: /var/run/sshd». Проблема решается просто — необходмо создать эту директорию и дать необходимые права на нее:

mkdir /var/run/sshd chmod 0755 /var/run/sshd

После проделанных манипуляций демон можно запустить:

start-stop-daemon --start --pidfile /var/run/sshd.pid --exec /usr/sbin/sshd -- -p 22

Подключение к ssh-серверу под root происходит без пароля, поэтому не будем оставлять включенным сервер.

start-stop-daemon --stop --pidfile /var/run/sshd.pid

Перейдем к системе управления пакетами. В системе установлен менеджер пакетов Red Hat версии 4.9.1.

sh-4.1# rpm --version RPM version 4.9.1

Проверим возможность обновления предустановленных пакетов. Zypper — консольный менеджер пакетов, используется в дистрибутиве GNU/Linux openSUSE. Если есть менеджер пакетов, то должены быть и репозитории в которых он берет пакеты. Пробуем обновить список пакетов командой zypper refresh, но тут ждет разочарование – репозиторий не найден.

sh-4.1# zypper refresh Retrieving repository 'Tizen-main' metadata [\] Specified path '/srv/snapshots//tizen-2.2/common/tizen-2.2_20130717.6/repos/tizen-main/armv7l/packages/' is not a directory: file:/srv/snapshots//tizen-2.2/common/tizen-2.2_20130717.6/repos/tizen-main/armv7l/packages/  Retrieving repository 'Tizen-main' metadata [error] Repository 'Tizen-main' is invalid. [|] Valid metadata not found at specified URL(s) Please check if the URIs defined for this repository are pointing to a valid repository. Skipping repository 'Tizen-main' because of the above error. Could not refresh the repositories because of errors. 

Судя по тексту сообщения об ошибке, репозиторий Tizen-Main расположен на по несуществующему пути. Поищем на официальном сайте репозитории. Как мы уже выяснили в телефоне у нас TIZEN 2.2, на http://download.tizen.org есть несколько подходящих репозиториев. Отключим старый репозиторий и подключим парочку новых. Вместе репозиторием tizen-2.2, заодно подключим чуть более свежий tizen-2.2_20130719.3. Невостребованные репозитории всегда можно будет отключить.

zypper mr -d 1 zypper ar http://download.tizen.org/releases/2.2/tizen-2.2/repos/tizen-base/armv7l/packages/  Base zypper ar http://download.tizen.org/releases/2.2/tizen-2.2/repos/tizen-main/armv7l/packages/  Main zypper ar http://download.tizen.org/releases/2.2/tizen-2.2_20130719.3/repos/tizen-base/armv7l/packages/  Base20130719 zypper ar http://download.tizen.org/releases/2.2/tizen-2.2_20130719.3/repos/tizen-main/armv7l/packages/  Main20130719 zypper refresh

Система готова к установке пакетов и обновлению.

Tizen достаточно гибкая система в которой скрывается большой потенциал. В заключение отмечу, что в подключенных репозиториях нашлись средства разработки: cmake, ccache, gcc и другие. Этот факт открывает новые возможности для разработки под Tizen.

ссылка на оригинал статьи http://habrahabr.ru/post/196982/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *