Nokia N9 | Nokia N900 | Aava Mobile | Nokia N810 | Nokia N800 | Nokia 770

Навигаторы: Приложения, Игры, Игры WebOS, Видео, Барахолка
Обсуждения: Приложения, Игры, Игры WebOS, Эмуляторы, Видео, Темы, Обои, Программы для PC

База знаний (FAQ) | Установка deb-файлов | Как обновить прошивку

Если у Вас есть интересные сведения, которые стоит разместить в новостях, то можете их выложить самостоятельно. Этим заслужите благодарность участников и администрации нашего сообщества. Подробнее...

Nokia N950

Поделиться:

Содержание

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:

  1. Подключить USB-кабель к телефону или настроить wifi-соединение между компьютером и телефоном (ad-hoc или через точку доступа). В случае с USB, выбрать в появившемся диалоговом меню SDK Mode. Это назначит устройству адрес 192.168.2.15, а компьютеру 192.168.2.14 - также как и в Maemo 5, при использовании Mad Developer.
  2. Запустить приложение SDK Connectivity Tool и выбрать соответствующий метод подключения (USB или Wi-Fi)
  3. Будет сгенерирован шестизначный пароль для пользователя developer.
  4. Скопировать ssh-ключи с компьютера на телефон (это делается один раз)
ssh-copy-id developer@192.168.2.15

ввести сгенерированный выше пароль.

  1. Закрыть SDK Connectivity Tool и подключиться к телефону без пароля.
ssh developer@192.168.2.15

Для пользователей Windows:

  1. Подключить USB-кабель к телефону или настроить wifi-соединение между компьютером и телефоном (ad-hoc или через точку доступа). В случае с USB, выбрать в появившемся диалоговом меню SDK Mode. Это назначит устройству адрес 192.168.2.15, а компьютеру 192.168.2.14 - также как и в Maemo 5, при использовании Mad Developer.
  2. Винда попытается установить драйверы на новое устройство, но не сможет. Скачиваем нужные дрова по ссылке http://avis.allnokia.ru/n950rndis.zip и скармливаем их винде. После установки дров к устройству уже можно подключаться по SSH (например, программой WinSCP)
  3. Генерация ключей и прочие необходимые для разработчика вещи делаются прямо из QtCreator'а. Запускаем его.
  4. Заходим в "Инструменты->Параметры->Maemo". Жмем в появившемся окошке кнопочку "Добавить".
  5. Вводим название нового конфига, выбираем "Harmattan", "реальное устройство", оставляем IP без изменений.
  6. Жмем "Далее", говорим, оставляем опцию "Нет". После этого нам предлагают создать новые ключи - соглашаемся.
  7. Выбираем для ключей любой каталог. Жмем кнопку "создать ключи". И "Далее".
  8. После этого на устройстве уже можно запустить SDK Connectivity Tool, посмотреть там пароль и ввести его в QtCreator в нужное поле. И жмем кнопку "Установить ключ".
  9. Если все прошло успешно - увидим в следующем окошке список установленных на устройстве библиотек 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

После этого нужно установить следующие пакеты:

Работа со Skype

Для настройки аккаунта Skype нужно в терминале от имени пользователя выполнить

mc-tool add spirit/skype skype string:account={логин} string:password={пароль}

После выполнения команды в терминале должна появиться строка, соответствующая созданному аккаунту. Теперь нужно выполнить

mc-tool enable spirit/skype/{название аккаунта}

Интеграция не полная, но можно совершать звонки и писать сообщения другим абонентам Skype:

  • Для текстового чата нужно открыть Сообщения, создать новое и выбрать кому отправить.
  • Для голосового звонка нужно открыть Телефон и выбрать нужный контакт.

Встроенные приложения

Лента новостей

Контакты

Почта

Трекер

Характеристики

Светодиод уведомлений

Создатель сайта и оформления Кирилл Чувилин aka KiRiK, на странице использованы скрипты проекта MediaWiki.