Содержание |
Nokia N950 aka DevKit
Введение
Мобильный компьютер Nokia N950 является клавиатурным аналогом ещё не вышедшего Nokia N9, и распространяется среди коммерческих и open-source разработчиков в очень ограниченном количестве. Эта страница предназначена для освещения основных вопросов, связанных с использованием и разработкой под N950.
Основные вопросы
Разработка приложений
Основным инструментом для разработки под Harmattan является библиотека Qt 4.7, причем настоятельно рекомендуется для GUI-приложений переход от стандартной функциональной модели, основанной на QWidgets, к декларативной модели с использованием QML. В простых случаях это позволяет писать простые программы даже без знания C++. Сейчас это основное направление развития Qt вообще.
Последние версии QtCreator имеют полную поддержку сборки под Harmattan, и отлично работают под Linux, Mac и Windows. Если по умолчанию в настройках нет поддежки Qt для Harmattan, установите ее через Help->Start Updater->Package Manager->Experimental->Harmattan. Так же в состав SDK входит scratchbox с поддержкой Harmattan и эмулятор, позволяющий запускать систему в Xephyr.
[в эту часть статьи нужно добавить подробно для новичков (нужна авторизация)]
Porting Fremantle Apps to Harmattan
Русский перевод статьи по переносу приложений с n900 на n950
Репозитории
На данный момент поддержки публичных репозиториев(аналога extras в Maemo 5 Fremantle) нет, но в скором будущем должны появиться. Пока что есть частные репозитории (преимущественно на http://repo.pub.meego.com/), для поиска по ним есть созданный участниками сообщества сервис PackRat - http://ageofikon.com/prh/
Для использования репозиториев добавляем их в файл nick.list в папке /etc/apt/sources.list.d
Подробный список строк, которые можно добавить можно глянуть по ссылке: http://wiki.meego.com/Community_Office/Community_device_program/Nokia/Development_repos
root-доступ
Для получения root доступа используется команда
devel-su
Пароль по-умолчанию - rootme (как во-времена 770 :).
Примечание: для использования этой команды должен быть установлен пакет busybox-devel-su - впрочем, в девелоперской прошивке он установлен по-умолчанию.
Доступ по ssh
Для доступа по ssh используется стандартный openssh сервер, который установлен в девелоперской версии прошивки по-умолчанию. Рекомендуемая схема работы с телефоном через ssh следующая:
Для пользователей Linux:
- Подключить USB-кабель к телефону или настроить wifi-соединение между компьютером и телефоном (ad-hoc или через точку доступа). В случае с USB, выбрать в появившемся диалоговом меню SDK Mode. Это назначит устройству адрес 192.168.2.15, а компьютеру 192.168.2.14 - также как и в Maemo 5, при использовании Mad Developer.
- Запустить приложение SDK Connectivity Tool и выбрать соответствующий метод подключения (USB или Wi-Fi)
- Будет сгенерирован шестизначный пароль для пользователя developer.
- Скопировать ssh-ключи с компьютера на телефон (это делается один раз)
ssh-copy-id developer@192.168.2.15
ввести сгенерированный выше пароль.
- Закрыть SDK Connectivity Tool и подключиться к телефону без пароля.
ssh developer@192.168.2.15
Для пользователей Windows:
- Подключить USB-кабель к телефону или настроить wifi-соединение между компьютером и телефоном (ad-hoc или через точку доступа). В случае с USB, выбрать в появившемся диалоговом меню SDK Mode. Это назначит устройству адрес 192.168.2.15, а компьютеру 192.168.2.14 - также как и в Maemo 5, при использовании Mad Developer.
- Винда попытается установить драйверы на новое устройство, но не сможет. Скачиваем нужные дрова по ссылке http://avis.allnokia.ru/n950rndis.zip и скармливаем их винде. После установки дров к устройству уже можно подключаться по SSH (например, программой WinSCP)
- Генерация ключей и прочие необходимые для разработчика вещи делаются прямо из QtCreator'а. Запускаем его.
- Заходим в "Инструменты->Параметры->Maemo". Жмем в появившемся окошке кнопочку "Добавить".
- Вводим название нового конфига, выбираем "Harmattan", "реальное устройство", оставляем IP без изменений.
- Жмем "Далее", говорим, оставляем опцию "Нет". После этого нам предлагают создать новые ключи - соглашаемся.
- Выбираем для ключей любой каталог. Жмем кнопку "создать ключи". И "Далее".
- После этого на устройстве уже можно запустить SDK Connectivity Tool, посмотреть там пароль и ввести его в QtCreator в нужное поле. И жмем кнопку "Установить ключ".
- Если все прошло успешно - увидим в следующем окошке список установленных на устройстве библиотек Qt.
Стоит отметить, что по умолчанию ssh-доступ ограничен следующими диапазонами ip-адресов: *@127.0.0.1 *@10.0.0.0/8 *@172.16.0.0/12 *@192.168.0.0/16
Это можно изменить в файле /etc/ssh/sshd_config, параметр AllowUsers.
Прошивка
Публично доступны две версии прошивки:
- 1.2011.22-6_PR_RM680 (была предустановлена на большинство устройств, переданных разработчикам)
- 1.2011.34-2_PR_RM680 (Nokia N950 Beta2)
Чтобы проверить текущую версию прошивки, наберите в цифровой клавиатуре телефона: *#0000#.
Флешер для Nokia N950 претерпел некоторые изменения в сравнении с версией для Nokia N900 и выглядит очень симпатично: все запаковано в один архив (можно быть уверенным, что образы ядра, emmc, самого флешера и всего остального подходят по версиям и вы скачали то, что нужно), появилась проверка заряда батареи, очень информативный вывод прогресса загрузки. На самом устройстве во время прошивки также отображается симпатичная строка прогресса.
Прошивки и флешеры доступны на сайте Nokia.
Важно: для устройств с загрузчиком версии 2.0.33 и меньше, нужно использовать специальный флешер.
Система безопасноcти aegis
Система безопасности Aegis - это фреймворк, позволяющий контролировать доступ к системе сторонних приложений, проверять целостность программ, а также отвечать за безопасность важных данных, таких как пароли или номера кредитных карт.
При всех своих плюсах, он доставляет некоторые неудобства разработчикам. Пользователь root, к примеру, несколько ограничен в правах, а просто скомпилировать в scratchbox'е программу и, скопировав её на устройство, запустить у вас не выйдет - нужно собрать deb-пакет, со специально подготовленным файлом, который подружит пакет с aegis. Благо, QtCreator это умеет делать сам из коробки. Впрочем, для изощренных программ aegis всё еще представляет проблему.
Разрешить исполнение произвольных программ можно командой
devel-su /usr/sbin/aegis-developer-mode --relaxed-exec
после которой необходимо перезагрузиться.
Подробнее на английском языке - http://wiki.meego.com/Security/Architecture
Аспекты использования
Скриншоты
Для захвата скриншотов, как и во Fremantle, можно использовать комбинацию клавиш Ctrl+Shift+P.
Также в приложении Boosted Widgets Gallery можно выбрать Debug/Take Screenshot.
Поворот экрана
Harmattan полностью поддерживает портретный и ландшафтный режим, причем в данной версии прошивки портретный режим в некоторых случаях залочен (к примеру на рабочих столах с меню, списком запущенных программ и ленте новостей). Есть неофициальный хак, позволяющий разлочить ориентацию, но у него пока есть небольшие (впрочем, некритичные) баги.
Хак для ландшафтного режиме для основных десктопов:
mkdir /usr/share/themes/blanco/meegotouch/meegotouchhome/
mkdir /usr/share/themes/blanco/meegotouch/meegotouchhome/style/
echo 'MainWindowStyle {
locked-orientation: "";
}' > /usr/share/themes/blanco/meegotouch/meegotouchhome/style/meegotouchhome.css
sed -i '/locked-orientation/s:portrait::' /usr/share/themes/blanco/meegotouch/sysuid/style/sysuid.css
После этих команд нужно перезагрузить телефон (точнее перезапустить некоторые программы, но пока не знаю какие точно, так что проще перезагрузить). Хак неофициальный, поэтому используйте на свой страх и риск.
Мультизадачность
Как и в Maemo 5, мультизадачность на n950 полноценная, только в разы более отзывчивая. При 30 запущенных приложениях отзывчивость системы не уменьшается ни на долю секунды.
Переключение между программами происходит в отдельном специальном рабочем столе. Долгое нажатие (больше 2 секунд) позволяет включить режим завершение приложений - появляются кнопки завершения программ, а также кнопка "Закрыть все программы". Жест мультитач зума позволяет уменьшить или увеличить масштаб отображения списка приложений (по 2 или по 3 в ряд).
Перейти на экран со списком запущенных программ можно также, как и в Maemo 5, комбинацией клавиш Fn-BackSpace (Fn в данном случае - самая левая нижняя клавиша, диагональная стрелка вверх).
Переключение раскладок
Для использования нескольких раскладок нужно сначала их выбрать в настройках - Settings->Time and language->Text Input->Installed input methods. Можно выбирать хоть все сразу раскладки, а не только две, как в Maemo 5.
Для переключения между ними в виртуальной клавиатуре, просто пролистайте клавиатуру широким жестом (swipe - тоесть так же, как просматриваете фото или переключаетесь между экранами) - она сама изменит раскладку.
В Harmattan за раскладки отвечает пачка ключей в GConf, скрипт /usr/bin/update-hwkb-config, и файлы описания клавиатур в /etc/meego-input-method-configuration/hw-keyboard.
N950 бывает только одной модификации (что мне известны), это 0100 с английской раскладкой клавиатуры. В каталоге /etc/meego-input-method-configuration/hw-keyboard есть и другие варианты, но скрипт /usr/bin/update-hwkb-config выбирает их, читая при помощи sysinfoclient инфу об устройстве, и выбирая 0100. Так как сам скрипт не изменить из-за aegis, необходимо проделать следущий финт ушами (0700 - код несуществующего устройства с русской раскладкой а-ля E7, её обычно и юзают те, кто выставляет раскладку по setxkbmap):
$ devel-su # cd /etc/meego-input-method-configuration/hw-keyboard # mv 0100 0100.old && cp -R 0700 0100
После этого можно запустить /usr/bin/update-hwkb-config (или перезагрузиться). Переключение по Ctrl+Space. Заодно и индикатор раскладки в статусной строке показывает русские буквы. Если телефон выставлен на русский язык, то даже нормально работает расстановка заглавных букв. В противном случае нормально в заглавные выставляются только английские буквы. К сожалению, последовательное нажатие Shift, а затем буквы в данном случае тоже не работают для русского. Судя по исходникам meegotouch-inputmethodkeyboard, правильная работа автозаглавных завязана на локаль, а она вся выставляется только по языку интерфейса.
Выключить расстановку заглавных букв можно так (оно выставляет это и для английского, и для русского варианта, так как английский вариант для кода 0700 это ru(latin), а русский — это ru(cyrillic)):
$ gconftool-2 -t string -s /meegotouch/inputmethods/hwkeyboard/autocapsdisabledlayouts ru
Клава, выскакивающая по клавише Sym лежит в /usr/share/meegotouch/virtual-keyboard/layouts/hwsymbols_common.xml.
В качестве бонуса - клавиатурная раскладка, максимально соответствующая физической раскладке N950 (очень уж тяжело запоминать другую раскладку пунктуации, а йцукен пальцы сами помнят). Для лишних русских букв вместо Fn используется Sym, так можно оставить все остальные символы на своих местах. С автозаглавными буквами (БЮЖЭХЪ) работает до сих пор немного странновато, но это лучшее из того, что у меня вышло.
# cp ~user/nokia /usr/share/X11/xkb/types/ # cp ~user/rm-680 /usr/share/X11/xkb/symbols/nokia_vndr/
Горячие клавиши
Fn = Function (самая нижняя левая клавиша)
- Fn+Backspace - переключиться на последний активный экран (список задач, либо меню)
- Ctrl+Q - закрыть текущую программу
- Ctrl+Shift+P - сделать скриншот
- Ctrl+Shift+F - включить/выключить показ FPS (кадры в секунду)
- начать набор текста на любом из основных экранов - поиск
Полезные для отладки
- Ctrl+Shift+T - отобразить координаты виджетов
- Ctrl+Shift+S - отобразить размеры виджетов
- Ctrl+Shift+L - отобразить варианты переводов для текстовых меток виджетов (все возможные варианты по кругу)
- Ctrl+Shift+F - отобразить FPS
- Ctrl+Shift+B - подсветить bounding box виджетов
- Ctrl+Shift+M - подсветить margins виджетов
- Ctrl+Shift+N - отобразить типы виджетов
- Ctrl+Shift+R - включить поворот экрана (в отличие от Nokia N900 доступны 4 варианта поворота)
Компиляция программ прямо на устройстве
Для того, чтобы собирать Qt- и QML-программы прямо на N950 нужно подключить следующие репозитории:
deb http://harmattan-dev.nokia.com/ harmattan/sdk free non-free deb http://harmattan-dev.nokia.com/ harmattan/41667a5bd857be02f487c2ce806fbf85 nokia-binaries
После этого нужно установить следующие пакеты:
- g++
- make
- libqt4-dev
- vim :) (Работающий пакет Vim 7.2 здесь: http://sheeplauncher.net/debs//vim_7.2-0maemo7_armel.deb)
Работа со Skype
Для настройки аккаунта Skype нужно в терминале от имени пользователя выполнить
mc-tool add spirit/skype skype string:account={логин} string:password={пароль}
После выполнения команды в терминале должна появиться строка, соответствующая созданному аккаунту. Теперь нужно выполнить
mc-tool enable spirit/skype/{название аккаунта}
Интеграция не полная, но можно совершать звонки и писать сообщения другим абонентам Skype:
- Для текстового чата нужно открыть Сообщения, создать новое и выбрать кому отправить.
- Для голосового звонка нужно открыть Телефон и выбрать нужный контакт.
Встроенные приложения
Лента новостей
Контакты
Почта
Трекер
Характеристики
Светодиод уведомлений