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

в 13:24, , рубрики: linux, 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.

Автор: Spetros

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js