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

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

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

 

Источник: IBM developerWorks Россия

Уровень сложности: простой

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

17.01.2007

     В этой статье:

  1. Установка
  2. Получение доступа
  3. "Мусор" от настольной системы
  4. Разработка
  5. Неизбежные сравнения
  6. Что дальше?
  7. Ресурсы
  8. Об авторе

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

Появление
устройства 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 помогут вам оставаться в курсе новостей.

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

  • Более подробную информацию можно получить на главной странице сайта, посвященного Интернет-планшету Nokia 770.
  • Закажите SEK for Linux
    - комплект на двух DVD-дисках, содержащий последнее пробное программное
    обеспечение IBM для Linux – продукты DB2®, Lotus®, Rational®, Tivoli® и
    WebSphere®.
  • Используйте в вашем следующем проекте разработки на Linux пробное программное обеспечение IBM, которое можно загрузить непосредственно с сайта developerWorks.

Обсудить

Об авторе

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