C Linux на борту: Linux в Nokia 770

Возможности разработки добавляют привлекательность "Интернет-планшету"

Интернет-планшет Nokia 770 на базе ОС Linux® - очень привлекательное устройство для поклонников Linux. Хотя оно не имеет большинства приложений персональной информационной системы (PIM), свойственных устройствам наладонного формата, последние новации в среде разработки делают его заманчивой игрушкой для энтузиастов и профессиональных разработчиков встроенных систем.

Питер Сибах, автор, Независимый

Питер Сибах (Peter Seebach) работает с компьютерами много лет и постепенно приспособился. Хотя он до сих пор не понимает, почему мышку надо чистить так часто.



17.01.2007

Появление устройства Nokia 770 вызвало изрядный ажиотаж в мире Linux. В отличие от своего предшественника Zaurus, а также систем Pocket PC или Palm, модель 770 не имеет функциональности персональной информационной системы (PIM); по сути, она не обеспечивает достаточно простого доступа к тем функциям, которые считаются необходимыми для карманного компьютера. Вместо этого упор сделан на функциональности "Интернет-планшета", предлагающего такие приложения, как Web–браузер и клиент электронной почты.

Недавно Nokia выпустила обновление ПО для модели 770, которое делает это устройство более дружественным для пользователей, желающих поближе с ним познакомиться. В предыдущих версиях для получения доступа с полномочиями root требовалось перейти в режим разработки (R&D). Версия 1.05 упрощает эту процедуру.

Nokia 770 имеет два устройства хранения – внутреннюю флэш-память (файловая система JFFS2) и сменную карту памяти (с файловой системой FAT). Модель 770 оснащена интересными возможностями сетевого подключения. По умолчанию устройство при подключении через интерфейс USB выглядит как накопитель. При этом внутренняя система хранения не используется, а вышестоящему компьютеру доступна сменная карта памяти, функционирующая как устройство хранения USB и обеспечивающая простую и удобную передачу файлов. Когда Nokia 770 подключен через USB в таком режиме, карта памяти в самом устройстве размонтирована во избежание повреждения данных. Это элегантный ответ на вопрос, как предоставить доступ к файлам, хранящимся на устройстве.

В целом устройство не требует значительной ручной настройки; подключение к телефонам с Bluetooth или к сетям Wi-Fi осуществляется либо автоматически, либо при помощи минимального набора инструкций. Прогресс, достигнутый системами на базе Linux в области автоматической настройки сети, впечатляет.

О поддержке USB-клавитуры

Реализованная в устройстве Nokia 770 поддержка USB-клавиатуры потрясает – по сути, это нештатное использование аппаратных средств. Проблема, в сущности, физическая; модель 770 имеет разъем, который обычно используется нижестоящими устройствами, а управляющая подключением микросхема активизируется только в случае подачи на нее напряжения 5 В – это происходит в том случае, если устройство используется в качестве нижестоящего компьютера. Также имеется программная проблема: компьютер должен быть сконфигурирован как хост USB, а не как устройство USB. Это требует определенной доработки утилиты записи флэш-памяти. Как ни странно, хотя страницы Nokia по большей оформлены как загрузки Windows®, утилита записи флэш-памяти доступна только для Mac OS X и Linux.

Однако поскольку я программист, наибольшее впечатление на меня произвело схемотехническое решение, которое обеспечивает подачу напряжения питания 5 В на USB-кабель. В разделе Ресурсы имеется ссылка на дополнительную информацию по этому вопросу.

Установка

У модели 770, как и у многих других подобных устройств, установка построена на базе BusyBox. Сценарии начального запуска представляют собой довольно обычные сценарии Debian, снабженные файлами README. Интерес представляет интерфейс пользователя и инструменты разработки, заметно усовершенствованные по сравнению с довольно примитивной средой Zaurus. Поддержка разработчика, предоставляемая через страницы maemo.org, по-настоящему обширна и всеобъемлюща (см. ссылку в разделе Ресурсы.)

Этим модель 770 существенно отличается от предыдущих устройств на базе Linux, с которыми мне приходилось иметь дело: поддержка разработчиков кажется более активной и заинтересованной. Модель 770 не содержит обширного множества готовых к использованию функций (приятным исключением является Web-браузер). Тем не менее Nokia, по-видимому, рассчитывает на потенциал сообщества разработчиков как на одно из главных преимуществ данного устройства. Инструменты разработки ориентированы на энтузиастов, а не на коммерческих разработчиков. Утилита, используемая для загрузки новых образов ПЗУ и установки специальных флагов (например, задания режима разработки), доступна для загрузки.

Это дает ряд интересных возможностей для разработки. К примеру, подобно большинству планшетов или карманных компьютеров, модель 770 имеет определенные слабости при вводе текста: даже если вам нравится экранная клавиатура или рукописный ввод, это «съедает» пространство на экране, что весьма болезненно для устройства с четырехдюймовым экраном. Теперь, когда энтузиасты разработали возможности использования с устройством клавиатур Bluetooth или USB, все проблемы устранены. (См. дополнительную информацию на врезке.)


Получение доступа

В прежних версиях модели 770 для перевода устройства в режим разработки было необходимо использовать утилиту записи флэш-памяти, а затем запустить сценарий получения root-доступа. Сценарий, представленный в Листинге 1, представляет самостоятельный интерес.

Листинг 1. Сценарий получения root-доступа
#!/bin/sh -e
       trap exit SIGHUP SIGINT SIGTERM
       PATH=/bin:/usr/bin:/sbin:/usr/sbin
       MODE=`/usr/sbin/chroot /mnt/initfs cal-tool --get-rd-mode`
       if [ x$MODE = xenabled ]
       then
              echo "Root shell enabled"
              /bin/sh
       else
              echo "Enable RD mode if you want to break your device"
       fi

Файл sudoers по умолчанию разрешает любому пользователю запускать этот сценарий с помощью команды sudo; если ваше устройство 770 находится в режиме разработки, вы получаете доступ; в противном случае вам выдается шутливое предупредительное сообщение.

В новой версии предлагается более простая возможность: вы можете войти в ssh с правами root. Для этого вам необходимо загрузить пакет от стороннего поставщика, но затем вы просто входите в систему с правами root, введя пароль rootme. Это хорошо известный пароль по умолчанию, а разрешенный логин root делает этот пароль наглядным и запоминающимся; поэтому если вы устанавливаете сервер ssh, измените ваш корневой пароль. Обязательно. Не забудьте. Одно из очевидных решений - установить пароль пользователя, настроить файл /etc/sudoers, а затем выполнить команду passwd -l root для полного запрета логинов root-доступа.

Смысл этого отступления в том, что в то время как некоторые поставщики предоставляют вам минимальный аккуратно урезанный и защищенный набор средств Linux, Nokia практически предоставляет вам компилятор в открытом виде. Данное устройство в его нынешнем состоянии не ориентировано на массового потребителя, это своего рода "конструктор". Действительно приятно получить практически полноценную ОС Linux на столь небольшом устройстве.


"Мусор" от настольной системы

Если говорить об установленной на 770 операционной системе - весьма затруднительно определить, встроенная ли это система или же полноценная версия ОС Linux для настольных ПК. В предыдущих версиях предоставлялся системный образ, в котором установленные файлы не контролировались системой управления пакетами; в исследованной мною версии диспетчер пакетов содержит свыше 900 в разной степени обязательных пакетов (см. Листинг 2).

Листинг 2. Начало весьма длинного списка
# dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  adduser        3.51           Add and remove users and groups
ii  apt            0.6.42.3osso13 Advanced front-end for dpkg
ii  archtunjo      0.0.8-4        the D-BUS wrapper for games
ii  autoipd        0.9.6-1osso9   Autoipd from Howl
ii  base-files     3.1.osso2      Debian base system miscellaneous files
ii  base-passwd    3.5.7.osso1    Debian base system master password and group
ii  bluez-utils    2.25-cvs200605 Bluetooth tools and daemons

Это вызывает необходимость более гибкой процедуры установки в том случае, если вы хотите высвободить место для установки дополнительных файлов – в противном случае система быстро выйдет за пределы доступного пространства хранения. Большие файлы, обычно слишком «тяжелые» для портативных устройств, лучше размещать на съемной карте, а не в основной памяти.

Вероятно, при определенных усилиях можно было бы убрать ряд не слишком нужных программ или сценариев; к примеру, сценарий glibc.sh, который информирует о требованиях совместимости glibc с системами AMD64, разумеется, совершенно бесполезен. (В действительности он имеет – правда, весьма косвенное – отношение к ARM-системам, поскольку им требуется версия ядра 2.4 или выше. Версия 2.6.16 в изученном мною релизе, вероятно, будет работать как надо.) Тем не менее все системы, которые мне пришлось рассматривать, содержали подобные компоненты; на практике, вероятно, их удаление не стоит необходимых для этого затрат.


Разработка

Среда разработки программ в модели 770 обладает определенной новизной, хотя конечный пользователь устройства этого не заметит, поскольку инструменты разработки не загружаются в устройство, а работают на рабочей станции или на ПК. Около трех лет назад я писал о кросс-компиляции для устройств Sharp Zaurus (см. ссылку в разделе Ресурсы). Процесс был достаточно сложным. В устройстве 770 используется новая система кросс-компиляции под названием Scratchbox,, разработанная при поддержке Nokia. Это значительное усовершенствование, предоставляющее среду, в которой в процессе кросс-разработки выполняется двоичный код целевой системы (в режиме эмуляции). В результате все трудности и недоразумения, связанные с применением плохо написанных тестов на переносимость, устранены; вы имеете эффективность хост-системы (включая, по-видимому, выполнение инструментальных средств компилятора в «родной» среде) и поведение целевой системы.

Эти инструменты, хотя еще очевидно находящиеся в стадии разработки, выглядят стабильными и функциональными и активно поддерживаются. Это может оказать далеко идущее влияние на разработку инструментов для множества других систем. Кроме того, хорошая среда кросс-компиляции, не обремененная причудами более традиционных вариантов, позволяет уменьшить неудобство при работе с компьютером, который не имеет достаточного объема памяти или ресурсов процессора для сборки крупных программ.


Неизбежные сравнения

В модели 770 заметны влияние и уроки Zaurus. Выше я отмечал отсутствие физической клавиатуры, но этот вопрос привлек усилия большого количества внешних разработчиков. Менее заметным является такой показатель, как объем доступной памяти; хотя модель 770 имеет больше памяти, чем некоторые ее предшественники, она очень быстро расходуется. Даже небольшой объем дополнительной памяти был бы весьма полезен. С другой стороны, возможность воспроизведения полноэкранного видео весьма впечатляет – как и сам факт ее реализации.

Модель 770 не имеет опций расширения, присущих ряду карманных компьютеров, оснащенных слотами для карт как CompactFlash, и так и Secure Digital. Единственный слот расширения предназначен для карт SD уменьшенного форм-фактора – вероятно, оттого, что он хорошо размещается в весьма плотно набитом корпусе. С другой стороны, очень немногие карманные ПК могут работать как хост-устройства USB; если вы согласны потратить определенное время и усилия, модель 770 сможет работать с жесткими дисками USB.

По причине своего карманного размера модель 770 часто сопоставляют с различными устройствами наладонного формата. Устройство Nokia 770 – это не карманный ПК. Это Интернет-устройство. Предлагаемая версия Web-браузера Opera – редкость для карманного устройства. Модель 770 не имеет персональных информационных приложений, которые характерны для КПК, но многие устройства, разработанные как КПК, используются главными образом для других применений, таких как доступ к Интернет и к электронной почте. Во многих случаях модель 770 отлично их заменяет, хотя не помешала бы более широкая поддержка клавиатур – например, традиционных ИК-клавиатур.

Nokia приложила существенные усилия, чтобы сделать модель 770 более дружественной для энтузиастов и хакеров, но установка по умолчанию не содержит какой бы то ни было командной оболочки, что является заметным отличием от, скажем, Zaurus. Представленный интерфейс больше напоминает упрощенный Интернет-киоск, чем настольную рабочую станцию. Подобно TiVo, 770 не требует, чтобы вы думали о Linux или вообще знали о ее существовании для эффективного использования базовых функций. В отличие от TiVo, она приветствует использование Linux для добавления ваших собственных функций.


Что дальше?

Готов эту статью, я прочел множество обзоров, посвященных устройству 770, и у меня сложилось впечатление, что многие люди не совсем понимают, что же это такое. Хотя практически каждый отметил, что хотел бы иметь Web-браузер на базе планшета, многие не знают, что с ним делать.

Модель 770 прекрасно работает как устройство для поиска информации в Интернете с доступом через Wi-Fi или Bluetooth. Она также обладает громадным потенциалом как платформа для разработки нестандартных приложений; например, это может быть отличный беспроводной "перехватчик" информации.

Несмотря на все неопределенности, связанные с предназначением устройства 770, Nokia провела достаточно обширные исследования; была разработана целостная, новая архитектура кросс-компиляции, наглядно проявившая себя в модели 770. Дружественная разработчику среда, похоже, невольно способствовала привлечению хакеров, а отзывы и исправления со стороны разработчиков определенно позволят усовершенствовать среду разработки. Даже если учесть, что полного успеха удалось добиться не во всем, модель 770 привнесла заметный вклад в мир встроенных Linux-систем и может сделать будущие Linux-устройства более совершенными и менее дорогостоящими.

Ресурсы

Научиться

  • Оригинал статьи "Linux on board: Linux powers Nokia 770".
  • В статье "A cross-development primer" ("Букварь кросс-разработки") (Linux Devices, октябрь 2003 г.), Питер обсуждает некоторые сложности, касающиеся кросс-компиляции применительно к устройствам Zaurus.
  • В статье "Zaurus pioneers embedded Linux" ("Zaurus - пионер среди устройств со встроенной ОС Linux") (developerWorks, декабрь 2005 г.) вы найдете информацию об ОС Linux на устройствах Sharp Zaurus.
  • В статье "Nokia 770 Internet Tablet" ("Интернет-планшет Nokia 770") (Ars Technica, декабрь 2005 г.), Эрик Бенгмэн (Eric Bangeman) рассматривает первоначальную версию модели 770; отзывы в основном позитивные, но отмечены и некоторые недостатки, частично устраненные в программном обновлении от 2006 г.
  • Учебное пособие "Maemo 2.1 tutorial" - вероятно, лучшая отправная точка для изучения разработки для Nokia 770.
  • В записи блога "USB power "injector" for USB host mode" (""Инжектор" питания USB для режима USB-хоста") разъясняется, как добавить питание к USB-порту Nokia 770. Автор (а также мы) не несет ответственности за возможное повреждение вашего устройства.
  • В зоне Linux сайта developerWorks также приведены другие ресурсы для разработчиков на Linux.
  • Технические мероприятия и Web-трансляции developerWorks помогут вам оставаться в курсе новостей.

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


  • Bluemix

    Узнайте больше информации о платформе IBM Bluemix, создавайте приложения, используя готовые решения!

  • developerWorks Premium

    Эксклюзивные инструменты для построения вашего приложения. Узнать больше.

  • Библиотека документов

    Более трех тысяч статей, обзоров, руководств и других полезных материалов.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Мобильные приложения, Linux
ArticleID=188746
ArticleTitle=C Linux на борту: Linux в Nokia 770
publish-date=01172007