- PVSM.RU - https://www.pvsm.ru -
Слухи о том, что китайская компания Meizu планирует выпустить коммуникатор на базе Ubuntu Touch, появились еще в начале прошлого года. В течении 2014 г. компания периодически демонстрирует прототип устройства на выставках и осенью объявляет, что Meizu MX4 на Ubuntu Touch выйдет в декабре, сообщает некоторые технические подбробности и открывает предзаказ. Наконец, после непродолжительного затишья, 17.05.2015 Ubuntu-версия смартфона появилась в онлайн-магазине [1] Meizu по цене ¥1799, т.е. ≈$290 (причем только 16-гигабайтная модель в белой или золотистой расцветке), но купить MX4 Ubuntu Edition можно было лишь в течении пары дней: затем Ubuntu-опция внезапно исчезла из списка доступных; одновременно с этим стартовая цена опустилась до ¥1499 (≈$240).
Мне удалось познакомиться поближе с MX4 Ubuntu Edition, устройством несомненно очень интересным, но оставившим у меня неоднозначные впечатления. В интернете уже есть довольно неплохие обзоры как Ubuntu Touch вообще (в отрыве от «железа»), так и «обычного» MX4 (на Android [2]), поэтому я не стану подробно их пересказывать, а постараюсь описать коммуникатор как конечный продукт с «гиковской» точки зрения, уделив особое внимание операционной системе.
Смартфон поставляется в обыкновенной картонной коробке без изысков; внутри обнаруживаешь небольшой, затянутый в пластик параллелепипед белого цвета и картонную же пустышку-placeholder (по-видимому, обычно в ней спрятаны дополнительные аксессуары, но с MX4 Ubuntu Edition в комплекте идут только кабель и USB-переходник для зарядки — они лежат рядом со смартфоном внутри белой коробки-книжки; жаль, что красиво сфотографировать этот этап распаковки у меня не получилось).
Сам аппарат довольно крупный; все-таки идеальный для меня размер экрана это 4″ (как у Nokia N9), у MX4 же диагональ 5.36″. Металлический каркас-рамка сбоку очень напоминает шестой iPhone и выглядит отлично, особенно с определенных ракурсов, как на этом промо-рендере:
Сверху расположены 3.5″ разъем для наушников и кнопка включения-блокировки, с левой стороны — качелька громкости (у меня она чуть-чуть люфтит), снизу — отверстия для динамиков и разъем micro-USB. Задняя крышка пластиковая, глянцевая, но не маркая; пригнана к корпусу практически идеально, снимается с трудом. Под ней находятся несъемная (по-простому во всяком случае) батарея и одинокий лоток для µSIM-карты: похвастаться поддержкой нескольких симок или microSD-карточки MX4 не может. Но есть и ложка мёда: можно подключать USB-флешки, они без проблем монтируются и читаются, хоть и с невысокой скоростью (порядка 10 МБ/с).
Основные технические характеристики аппарата:
Процессор | MediaTek MT6595 [3] (4 ядра A17 2.2 ГГц + 4 ядра A7 1.7 ГГц) |
Графический чип | PowerVR G6200 |
ОЗУ | 2 ГБ |
Дисплей | 5.36″ IPS (New Mode 2), 1920×1152 (418 PPI), 1100:1 500 кд/м² |
Основная камера | 20.7 Мп, 1/2.3″ CMOS (Sony Exmor IMX 220), двойная LED-вспышка (2200/5500K), ISO 1600, f/2.2, 78°, 4K@30fps/720p@120fps, H.265 |
Фронтальная камера | 2.0 Мп, 1080p@30fps |
Связь (сотовая) | TD-LTE (1900/2300/2600 МГц), LTE FDD (1800/2100/2600 МГц), TD-SCDMA (1880-1920/2010-2025 МГц), WCDMA/HSPA+ (805/900/1900/2100 МГц), GSM/GPRS/EDGE (850/900/1800/1900 МГц) |
Связь (прочая) | 802.11a/b/g/n/ac (2.4/5.0 ГГц), Bluetooth 4.0, USB |
Навигация | GPS, ГЛОНАСС, BeiDou |
ПЗУ | 16 ГБ (доступно ≈12 ГБ), нерасширяемо :-( |
Батарея | 3100 мА·ч (несъемная) |
Размеры и масса (вес) | 144.0×75.2×8.9 мм, 147 г |
При первом включении нужно будет дождаться приветствия (запускается и перезагружается смартфон довольно долго, чуть меньше минуты), порадоваться, что это действительно Ubuntu, а не Android, ответить на пару-тройку стандартных вопросов и посмотреть короткую демку про swipe-управление (можно пропустить).
Здесь надо сказать несколько слов об управлении жестами. Лучше всего оно реализовано, по-моему, в той же Nokia N9 (MeeGo). Идея в том, что пересечение пальцем каждой из четырех кромок экрана тактильно и когнитивно отличается от свайпов внутри экрана (приложения), и на них можно навесить до 8-ми функций (четыре стороны и два направления), как то: переключение между состояниями (экранами) и приложениями, закрытие активного приложения (эта фича мне очень нравилась в MeeGo; в iOS и Android приходится сначала отправлять приложение в background, и лишь затем убивать его из списка), вытягивание «шторки» и quick launch, меню приложения и т.д. Это, в свою очередь, позволяет отказаться от кнопки «Home» сотоварищи, а значит увеличить полезное пространство дисплея. После Nokia N9 у меня выработалась стойкая аллергия на эти «лишние» кнопки, особенно на «Back» из-за ее контекстно-зависимого поведения, и тот факт, что в Ubuntu Touch она by design отсутствует, я лично только приветствую (хотя и допускаю, что это понравится не всем).
В то же время центральная кнопка в MX4 осталась на месте, а переход к предыдущему экрану в разлапистых приложениях (например, в системных настройках) реализован как в iOS: слева от заголовка появляется стрелочка (несколько уродская, на мой вкус; в iOS это выглядит опрятнее). В общем, управление в MX4 Ubuntu Edition представляет собой некий гибрид подходов MeeGo и iOS, решение имхо не бесспорное, но во всяком случае явно лучше, чем у Android.
Начать знакомство с мобильной операционкой от Canonical можно с официального сайта [4]. Кроме жест-ориентированного управления, еще одна фирменная «фишка» Ubuntu Touch — это т.н. scopes, этакие агрегаторы контента определенного типа, что по идее должно избавить пользователя от необходимости вручную перебирать нужные приложения. Так, все новости собраны в одном месте, «мир вокруг» (погода, ближайшие события, концерты, заведения в ε-окрестности и пр.) — в другом. Аналогично сгруппированы фотографии (локальные и из ваших соцсетей), музыка, видео и т.д.
Источники данных (e.g. новостные агентства для News-скоупа) можно фильтровать, а вот добавлять новые источники в существующие scopes пока нельзя (это известная проблема [5]). Но можно создавать свои scopes. Принудительно обновить содержимое (где эта операция имеет смысл) можно, как это принято везде, потянув страницу вниз и отпустив ее. Новости, к слову, показываются на том языке, который выставлен в настройках в качестве системного.
Ладно, приложения и scopes подождут. Самое время залезть в настройки (нужно как минимум установить часовой пояс и добавить русскую клавиатуру), ну и вообще посмотреть, что там к чему.
Настроек не очень много (что для верхнего уровня, имхо, хорошо). Сразу бросается в глаза Rotation Lock (под строкой поиска); кстати, в отличие от Android, здесь он реализован правильно (как в iOS). На скриншоте Language & Text можно заметить странность: Display language показывает, что выбран русский, хотя язык интерфейса явно английский. Далее станет понятно, как так получилось.
Верхняя «шторка» мне показалась намного удобней, чем в Android. Все как-то логично сгруппировано и сразу под рукой. Скажем, в меню Network я могу тут же переключиться в авиарежим (радиомолчание), перейти к настройкам сотовой сети, отключить WiFi или выбрать, к какой точке доступа подключиться. Столь же информативны и интерактивны остальные вкладки (на скриншотах ниже три крайние справа):
Т.к. я обещал не увлекаться, я не стану рассказывать про браузер, камеру (с ними все в порядке, разве что браузер слишком часто падает), аудио- (понимает .ogg, .mp3, .flac, а вот .ape, увы, нет) или видео-плееры (скаченные с YouTube .mp4-файлы проигрываются без проблем) и перейду сразу к выводам. Ubuntu Touch в целом выглядит многообещающе, но пока еще весьма сырая. Что мне не понравилось в первую очередь (в произвольном порядке):
К счастью, некоторые проблемы можно вполне побороть самостоятельно: устройство никак специально не огорожено, стандартно предоставляется shell (в т.ч. удаленно, через вики-страничкой [10], чтобы гуглить было проще.
По умолчанию ADB недоступен, его надо включать через About this phone → Developer mode. При этом почему-то обязательно просят установить 4-значный код разблокировки экрана или пароль; надеюсь, в будущем добавят [11] что-нибудь типа галки «я знаю, что делаю».
На хосте (рабочем комьютере) нужно будет установить пакет android-tools-adb; также может понадобиться настроить права доступа к USB-устройствам и дописать в файл $HOME/.android/adb_usb.ini
идентификатор производителя (Vendor ID) Meizu (0x2a45).
Можно обойтись и без ADB, подняв SSH-сервер [12] через терминал, и работать удаленно. Приложение Терминал по умолчанию не установлено, но доступно в Ubuntu Store (требуется аккаунт Ubuntu One; к счастью, подошел мой имеющийся логин на ланчпаде). Было бы вообще замечательно, если для бесплатных приложений сразу давали прямую ссылку для скачивания безо всякой идентификации, но пока вот так. Запускаем терминал и пишем:
$ sudo service ssh start
$ sudo setprop persist.service.ssh true
Вторая команда нужна в том случае, если вы хотите, чтобы SSH-сервер запускался автоматически. Обратите внимание: sudo(8)
не спросило пароль, т.е. по умолчанию у пользователя phablet
пароль пустой. Если его установить через passwd(8)
, то придется вводить его при разблокировке экрана. В свою очередь, поставив в системных настойках 4-значный код разблокировки, его же придется вводить и для запуска терминала (на смартфоне), и для sudo(8)
.
Но это еще не все: SSH-сервер пустит вас только по ключу, в чем легко убедиться, посмотрев на команду запуска:
$ ps ax | grep sshd
4282 ? Ss 0:00 /usr/sbin/sshd -D -o PasswordAuthentication=no
4344 ? Ss 0:00 sshd: phablet [priv]
4359 ? S 0:00 sshd: phablet@pts/11
Это радует — аутентификация по паролю должна уйти в прошлое. Как скопировать на смартфон публичный ключ описано по ссылке, и ничем не отличается от стандартной процедуры. К сожалению, WiFi-соединение редко бывает достаточно устойчивым для комфортной работы: случаются лаги, продолжительные залипания, вплоть до обрывов связи.
Запустив терминал, попробовав выполнить несколько команд и убедившись, что это полноценное окружение (а не обкоцанный BusyBox), испытываешь странное ощущение. Больше не нужно задумываться, а есть ли под рукой wget(1)
, rsync(1)
, nc(1)
интерпретаторы Perl или Python — все есть (ну или почти все). А если и нет, то можно поставить как обычно через apt-get
, правда, для этого придется сперва переключить аппарат в read-write режим [13], или хотя бы перемонтировать корень [14] (ради полного доступа к /var/cache/apt
). Имейте ввиду, что это не поддерживаемый официально режим работы смартфона: в нем не работают автоматические OTA-обновления и вообще, use at your own risk. Не думаю, что поставив несколько leaf-пакетов, мы что-то серьезно поломаем, а вот делать apt-get upgrade
стоит с куда большей осторожностью (если стоит вообще).
Если вы пока не хотите пускаться во все тяжкие, то можете просто скачать интересующий вас пакет через apt-get download
и распаковать его куда вам удобно. Для многих простых программ этого будет вполне достаточно.
Что ж, первым делом разберемся с языком и нормальными часами (т.н. military time) вместо 12-часового AM/PM-недоразумения. Если заглянуть в исходники ubuntu-system-settings, а именно файлик plugins/language/language-plugin.cpp
[15], можно увидеть, что выбранный язык переводится в локаль и тупо присваивается двум пользовательским свойствам в accountsservice: Language и FormatsLocale. Пока этот баг [16] не пофикшен, мы просто подправим FormatsLocale вручную после установки языка в настройках:
$ dbus-send --print-reply --system --dest=org.freedesktop.Accounts /org/freedesktop/Accounts/User$UID
org.freedesktop.Accounts.User.SetFormatsLocale string:ru_RU.UTF-8
$ sudo reboot
Перезагрузка нужна, чтобы изменения вступили в силу. Вот что должно получиться в итоге:
$ locale
LANG=en_US.UTF-8
LANGUAGE=en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=
Этим и объясняется забавное несоответствие выбранного и реального языка интерфейса на скриншоте выше. Правда, в прогнозе погоды почему-то все равно остались градусы Фаренгейта.
Bluetooth поддерживается пока лишь номинально: есть раздел в настройках, и в общем-то на этом все. Даже имя устройства там не поменять. Инициировать pairing с комьютером у меня тоже не получилось (принимать и отвечать на pair request'ы смартфон тем не менее умеет). Передача файлов, как я уже говорил, не реализована. Попробуем хоть немного исправить это незавидное положение.
Временно (до следующей перезагрузки) поменять название устройства можно с помощью утилиты hciconfig(8)
:
$ sudo hciconfig -a hci0 name 'A Better Name'
Чтобы новое имя сохранилось и после ребута, модифицируйте файл [17] /etc/machine-info
(симлинк на /etc/writable/machine-info
) и, по желанию, перезапустите сервис Bluetooth:
$ sudo service bluetooth restart
Обычно для обмена файлами по Bluetooth я использую ноутбук и программу obexapp(1)
. Сначала нужно инициировать pairing с ноутбука (FreeBSD): для этого добавим в /etc/bluetooth/hcsecd.conf
новое устройство с MAC-адресом смартфона и придумаем ему какой-нибудь PIN-код. Так же нам понадобится в ключить аутентификацию, и можно устанавливать соединение (по MAC-адресу или имени, если вы задали таковое в /etc/bluetooth/hosts
):
# hccontrol -n ubt0hci write_authentication_enable 1
# hccontrol -n ubt0hci create_connection mx4
На смартфоне выскочит окошко, где нужно будет ввести наш PIN-код. После того, как устройства обменялись ключами (link keys), принудительную аутентификацию соединений можно отключить.
Файлы по Bluetooth передаются через FTRN (OBEX File Transfer service) или OPUSH (OBEX Push service). На смартфонах под управлением Android обычно второе, здесь же нужно использовать FTRN:
$ obexapp -n -C FTRN -a mx4 put "04 - In Your Room.flac"
35696810 bytes streamed in 968 seconds (36876 bytes/sec)
Файлы заливаются в /tmp
(tmpfs), что меня вполне устраивает. Время модификации при этом не сохраняется, имейте ввиду (если вы mtime-фрик). По сравнению с Samsung Galaxy S3 скорость передачи оказалась в 2-4 раза ниже и не превышала 45 кБ/с. :-(
Окей, заливать (пусть и небыстро) на смартфон файлы мы умеем. А как насчет в обратную сторону? Тут все хуже: скачиваемые файлы оказываются нулевой длины (возможно, проблема на принимающей стороне):
$ obexapp -n -C FTRN -a mx4 get "04 - In Your Room.flac"
0 bytes streamed in 919 seconds (0 bytes/sec)
Проще все-таки передавать файлы через rsync(1)
или scp(1)
.
Чего еще очень не хватает в Meizu MX4 — это возможности раздать сотовый интернет через Bluetooth или WiFi: в настройках попросту нет такого пункта, хотя поддержка хотспотов в ubuntu-system-settings появилась довольно давно [18].
В репозитории есть пакеты hostapd и iw (по умолчанию не установлены), но с вайфаем сразу же вышел облом:
$ iw list | grep -A 3 'Supported interface modes'
Supported interface modes:
* IBSS
* managed
Band 1:
Т.е. AP-режим не поддерживается. Ни один из имеющихся у меня WiFi-донглов (ZyDAS и Ralink) ядро не опознало. С блютусом тоже ничего нахрапом не получилось:
$ sudo modprobe bnep
modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/3.10.35+/modules.dep.bin'
$ lsmod
Module Size Used by
$ ls -l /lib/modules
total 0
$ _
Ubuntu Touch умеет делать не только скриншоты, но и скринкасты [19]! Для этого обзора я использовал следующие команды (на смартфоне):
$ mirscreencast -n 1 -m /var/run/mir_socket
... несколько строк ругани, это не страшно
$ mv /tmp/mir_screencast_1152x1920_60.85Hz.rgba shotX.rgba
На хосте полученные файлы можно преобразовать в формат PNG, с чем отлично справляется программа convert(1)
из пакета ImageMagick; вот пример склейки трех экранов в одну картинку:
$ convert +append -resize 25% -alpha off -depth 8 -size 1152x1920 rgba:shot{1,2,3}.rgba shot.png
Уменьшенные в четыре раза, они, конечно, потеряли в зрелищности, но уж больно огромное у смартфона разрешение.
Если вам нужен смартфон, в котором все сразу работает «из коробки» и имеется вагон приложений, то Meizu MX4 Ubuntu Edition (во всяком случае в том виде, в каком он находится на момент написания этого текста) вас вряд ли устроит. Фраза «после сборки обработать напильником» в данном случае более чем уместна.
Если же вы привыкли к более-менее полноценному Unix-окружению, хотите иметь полный доступ к файловой системе и сервисам, не переживаете из-за некоторых отсутствующих функций и дефицита программ, зато готовы терпеть (еще лучше, фиксить) баги, экспериментировать, гуглить и читать исходники — то на MX4 стоит обратить внимание, ведь в отличие от кастомных сборок в данном случае мы имеем дело с официальной поддержкой Ubuntu Touch производителем, т.е. есть все шансы на то, что в какой-то момент основные косяки пофиксят, а маркет наполнится хорошими, годными приложениями.
Автор: danfe
Источник [20]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/91765
Ссылки в тексте:
[1] онлайн-магазине: http://store.meizu.com/product/mx4_mon.html#4-1-4
[2] Android: http://geektimes.ru/post/235353/
[3] MediaTek MT6595: http://geektimes.ru/company/mediatek/blog/242506/
[4] официального сайта: http://www.ubuntu.com/phone/
[5] известная проблема: http://askubuntu.com/questions/602400/extending-scopes
[6] более подходящую: http://askubuntu.com/questions/602155/how-can-i-set-the-clock-to-24-hour-mode-in-ubuntu-touch
[7] спецификацией: https://wiki.ubuntu.com/Networking#phone-cellular
[8] известная: https://bugs.launchpad.net/webbrowser-app/+bug/1383716
[9] проблема: https://bugs.launchpad.net/webbrowser-app/+bug/1452291
[10] вики-страничкой: https://wiki.ubuntu.com/QATeam/TouchTesting/Tips
[11] добавят: https://bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/1434156
[12] подняв SSH-сервер: http://askubuntu.com/questions/348714/how-can-i-access-my-ubuntu-phone-over-ssh
[13] переключить аппарат в read-write режим: http://askubuntu.com/questions/536333/ubuntu-touch-using-apt-get
[14] перемонтировать корень: http://askubuntu.com/questions/399709/install-with-sudo-app-get-install-doesnt-work-not-using-locking-for-read-only
[15] plugins/language/language-plugin.cpp
: http://bazaar.launchpad.net/~system-settings-touch/ubuntu-system-settings/trunk/view/head:/plugins/language/language-plugin.cpp
[16] баг: https://bugs.launchpad.net/ubuntu/+source/ubuntu-system-settings/+bug/1392699
[17] модифицируйте файл: http://askubuntu.com/questions/80960/how-to-change-bluetooth-device-name
[18] довольно давно: https://bugs.launchpad.net/indicator-network/+bug/1326271
[19] скринкасты: https://wiki.ubuntu.com/Touch/ScreenRecording
[20] Источник: http://geektimes.ru/post/251690/
Нажмите здесь для печати.