Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Аппаратное обеспечение

Мобильные устройства в GNU/Linux и GNOME

Оригинал: Mobile devices in GNU/Linux and GNOME
Автор: Mitch Meyran
Дата: 12 июня 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 19 июля 2008

Начнем с того, что у вас есть компьютер (настольный или ноутбук). Вы им часто пользуетесь, он работает безупречно, и вероятно, на нем установлена операционная система Ubuntu Linux. Или, возможно, у вас стоит другой дистрибутив (например, Mandriva 2008). Если ваша ОС - не GNU/Linux, остаются мои надежды, что у вас что-нибудь из класса BSD. Если же нет, тогда эта статья не для вас!

Предположим, что у вас есть новая цифровая камера или MP3-плеер. И вас терзают сомнения: действительно ли ваше новенькое устройство (направленное исключительно на потребителя) совместимо с вашим компьютером. Придется ли платить налог Microsoft затем, чтобы все работало, чтобы вы смогли увидеть свои фотографии с последних выходных, или чтобы прослушать 5 симфонию Бетховена? Ответ далее.

Требования к ПО

Что именно нам потребуется? Если у вас одна из последних версий Ubuntu Linux (Feisty Fawn или Gutsy Gibbon), значит, у вас все готово. Если же у вас другая система (как и у меня), тогда придется обратить внимание на следующие вещи:

  • Ядро Linux 2.6.22 с поддержкой HAL и запущенным hald (есть в большинстве современных дистрибутивов)
  • dbus 1.0.2 (также стандартный).

Не пугайтесь этих страшных слов. Сейчас мы в деталях рассмотрим, что они означают.

HAL

HALD (Hardware Abstraction Layer Daemon - Демон слоя абстрагирования аппаратуры) сообщает программам о событиях уровня ядра; при подсоединении каких-либо устройств он оповещает об этом другого демона - udev. Тот в свою очередь создает файл устройства в каталоге /dev. Событие подключения устройства также принимается службой FreeDesktop.org dbus, которая выполняет набор определенных правил (обычно они уже написаны сборщиком дистрибутива GNU/Linux и хранятся где-нибудь в /etc/dbus-1 в виде нескольких текстовых файлов). В зависимости от типа подключенного устройства, будет выполнен определенный набор действий.

dbus

Обычно dbus работает в связке с менеджером рабочего стола, и является основной частью спецификации Freedesktop.org: таким образом, окружения GNOME, KDE, Xfce (и, возможно, другие) в привычном порядке используют его для выполнения интерфейсных действий. С одной стороны, dbus оповещает оконный менеджер о появлении нового устройства; dbus пройдется по своему набору правил и запустит соответствующее действие: обычно при подключении веб-камеры создается значок Ekiga, диска CD/DVD - запускается обзор файлов (либо если диск пуст - пользователю предлагают записать его) и т.п.

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

Таким образом, эти устройства обычно будут позиционировать себя как устройства хранения данных, и сообщать об этом ядру. Ядро благодаря средствам hald и udev загрузит соответствующий драйвер контроллера устройства (если устройство способно хранить данные, тогда будут созданы соответствующие файлы устройств).

Большинство устройств подсоединяется по шине USB (или, как в случае с iPod - по альтернативной шине IEEE1394/Firewire); далее вступает в действие ядро, которое

  • загружает модуль usb_storage (если он еще не загружен);
  • создает файл устройства (если все ваши жесткие диски подключаются по интерфейсу IDE, тогда скорее всего это будет /dev/sda, если же у вас SCSI или SATA, просто увеличится буква, например, /dev/sdb, /dev/sdc);
  • определяет, способно ли устройство хранить данные - в таком случае будут созданы файлы разделов устройства (к примеру /dev/sda1, /dev/sda2...): обычно создается один файл, но иногда (например, если у вас iPod) будет создано два раздела.

Есть верный способ узнать, какие именно файлы устройств были созданы - посмотрите последние строки файла dmesg. Если все прошло хорошо, там будут записи о том, как ядро определило и настроило устройство. Просто введите dmesg | tail. При появлении этих устройств, dbus принимает событие ядра и передает его менеджеру рабочего стола: GNOME по умолчанию укажет системе (через dbus), что нужно создать точку монтирования в каталоге /media и смонтировать устройство с настройками по умолчанию. Обратите внимание, что GNOME для авто-определения настроек устройства пользуется обычной командой mount, а вы, возможно, захотите указать какие-то детали, хотя это и редкость: большинство таких ручных устройств содержат файловую систему FAT или FAT32, которые не так гибки в смысле настройки (в отличие от, например, файловой системы NTFS). Так что обычной команды mount в автоматическом режиме хватит (могут возникнуть проблемы с файлами, содержащими кириллицу или символы с акцентами - в этом случае придется указать опции codepage и iocharset).

На время подключения устройства настройки монтирования хранятся в файле /etc/mtab. В нем содержится список подключенных устройств и их хранилища данных - аналогично файлу fstab для ручного монтирования.

Некоторые устройства могут отображаться "целиком": к примеру, хранилищу данных iRiver соответствует файл /dev/sda (а не какой-нибудь /dev/sda1), что может привести к неправильной работе системы из-за старого набора правил dbus. Но не надо расстраиваться, в этом случае поможет привычный mount:

mount -t vfat /dev/sda /media/iriver

Аппаратное обеспечение

Хотя эта статья и не о "железе", однако расскажу немного о рассмотренных камерах и плеерах, и о том, насколько они совместимы с Linux.

Рассмотренные плееры

Серия iRiver iFP 190

В оригинальной коробочной версии используется проприетарная схема хранения данных (однако она могла смениться с тех пор, как я приобрел iRiver): требуется специальное программное обеспечения (только для Windows).

Компания iRiver предоставляет UMS-совместимую прошивку, благодаря которой устройство становится видно как 128, 256 или 512 Мб USB-флешка. Устройство может воспроизводить файлы в форматах WAV, WMA и MP3 (разработчики iRiver попытались реализовать поддержку Vorbis, но отказались от этой идеи из-за аппаратных ограничений; тем не менее, более поздние модели могут воспроизводить Vorbis). Итак, для поддержки устройства в Linux необходимо установить UMS-прошивку; дальнейшие перепрошивки можно делать простым копированием нового образа на диск и указанием устройству перепрошить себя. Устройство питается от одной стандартной батарейки AA/LR6 и соединяется с компьютером по кабелю USB 1.1.

Для большинства устройств iRiver имеются официальные регулярно обновляемые прошивки. Взгляните на веб-сайт iRiver.

Apple iPod Mini 1st Gen

Устройство подключается как по USB 2.0, так и по Firewire (последний может использоваться в качестве шнура для внешней зарядки), и содержит жесткий диск CompactFlash/Microdrive объемом 4 Гб. Для закачки музыки требуется специализированное ПО. Операция замены на нестандартную внутреннюю батарею и жесткий диск сложновата, однако хорошо описана в сети (замена 4 Гб жесткого диска на картридж CompactFlash удваивает время без подзарядки, а замена батарей продляет их срок на 25%).

Если срок гарантии на ваше устройство еще не вышел, стоит обратиться в компанию Apple - ведь упомянутая операция делает гарантию недействительной.

I-BEAD 100 Digital Music Player

Устройство содержит впаянную Flash RAM, и представляет из себя USB-флешку. Включайте, записывайте, пользуйтесь. Самые заметные недостатки: нестандартная батарейка (правда легко обслуживаемая) и скорость передачи, соответствующая USB 1.1. Больше сказать нечего, обычный плеер.

Рассмотренные камеры

Kodak EasyShare DX6340

Эта камера на 3.1 мегапикселя очень мне понравилась, когда появилась в магазинах. Сверху от объектива и микрофона располагается окошко просмотра - можно выключить внешний экран, что позволяет увеличить время разряда пары батареек AA/LR6 в 10 раз. Устройство содержит встроенное ОЗУ на 16 Мб, а также стандартный SD слот. Камера соединяется с компьютером через USB-кабель. После выпуска камеры была обновлена прошивка: было бы неплохо прошить новую.

Замеченные недостатки: устройство не определяется как UMS-диск, поэтому потребуется использовать приложение на основе libgphoto2, например F-spot. И все равно - оно может быть ужасно медлительным, если у вас старая версия libgphoto2. Если вы столкнулись с такой бедой, обновите libgphoto2 (так, версия 2.4.0 работает очень хорошо).

Samsung Digimax 301

Это маленькая и дешевая 3.2 мегапиксельная камера. Питание производится от двух батареек AA/LR6, устройство содержит SD-карту. Подсоединяется к компьютеру по USB-кабелю, при подсоединении определяется как UMS-носитель (Full Speed USB, эквивалентно USB 1.1) и как камера. GNOME известно о его структуре каталогов, и видит его как камеру.

HP Photosmart R707

Эта 5.1 мегапиксельная камера в каком-то смысле особенная, ведь это камера с двумя режимами работы. По умолчанию она сама по себе камера, но может быть настроена в качестве USB-диска. Обратите внимание, что для безопасной работы этой камере нужна последняя версия прошивки: менеджер заряда батарей не работает на прошивках версии ниже 2.0.24, и поэтому нужно перепрошить новой версией (ее можно взять на сайте HP), иначе ваша батарея придет в негодность, или того хуже - взорвется. Однако прошивка распространяется в качестве EXE-файла. Но это не беда - Wine легко распакует его, и вам останется лишь скопировать получившийся файл на свежеотформатированную SD-карту. Поэтому наличие Windows необязательно.

Если вы уже столкнулись с этой проблемой, тогда знайте, что подойдет батарейка модели CS-NP60FU, 1050mAh, 3.7V.

Но вернемся к камере: она может работать не только в качестве обычного USB-диска, но еще с ней можно работать с посредством gphoto2 как с камерой. По непонятным причинам она не всегда работает как UMS-устройство: нужно переключить камеру в режим 'camera', и вы сможете работать с ней через gphoto2. Это еще одна причина обновить прошивку, когда выйдет свежая.

Вообще всегда проверяйте, есть ли свежая прошивка для вашего устройства, и если есть - скачивайте и устаналивайте ее. Функциональность и надежность практически всех устройств улучшается благодаря прошивкам.

Проигрываем музыку

Простой способ

С большинством моделей MP3-плееров справиться довольно просто: подключаете, записываете файлы в поддерживаемом формате, отмонтируете и отключаете. Готово.

Записывать файлы удобнее всгео с помощью специальной мультимедиа-программы: Rhythmbox (для GNOME), Amarok (для KDE), Banshee, Audacious, XMMS (в последнем случае, правда, удобство весьма ограничено, и лучше пользоваться обычным файловым менеджером) и т.п.

В некоторых случаях не обойтись без подобных программ: так, плееры iPod требуют наличия специально созданной базы данных и ее обновления при каждом помещении на плеер новой композиции. Если этой базы нет, ничего воспроизводиться не будет.

Из перечисленных программ я бы порекомендовал Rhythmbox и Amarok (соответственно для GNOME и KDE): в них есть специальные средства для работы с внешними устройствами.

Rhythmbox

Rhythmbox - популярный музыкальный плеер на основе движка gstreamer, он может воспроизводить подкасты, веб-радио, локальные файлы во множестве форматов, и еще поддерживает внешние устройства.

Чтобы задействовать Rhythmbox, просто включите свой плеер в компьютер и Rhythmbox определит его. Вам останется лишь перетащить нужные композиции из библиотеки (включая подкасты!) на плеер и отсоединить устройство.


Рисунок 1: Rhythmbox после импортирования моей музыкальной коллекции

Главное окно Rhythmbox разделено на две основные части: левая панель показывает, что можно сделать с помощью программы. В верхней ее части располагается "библиотека" (library), содержащая плейлисты, коллекцию локальной музыки, подкасты, сообщения об ошибках (неудавшееся импортирование, неопределенный формат файла, потеря синхронизации и т.п. - в моем случае Rhythmbox не сумел воспроизвести WMA-файлы и не смог подружиться с модулями Amiga), а также веб-радио.

Далее идут музыкальные магазины (к примеру, Magnatunes и Jamendo), затем ваши плейлисты и подключенные медиа-устройства. В моем случае устройство было определено как 'gtkpod', но всегда можно сменить имя устройства.

В зависимости от выбранного вами режима правая часть экрана может разделяться на четыре подчасти. Самая сложная структура у 'Музыки': этот режим позволяет отсортировать вашу музыкальную коллекцию по исполнителю, названию альбома или названиям песен. После импортирования композиций Rhythmbox считывает теги файла (ID3 для MP3-файлов, встроенные комментарии для Ogg и т.п.) и сортирует их по соответствующим категориям. Также Rhythmbox имеет функцию быстрой сортировки файлов, в случае несоответствия ID3-тегов.

Еще подключенный iPod отображается значком на рабочем столе (см. рисунок 1).

Сложный способ

Более сложный способ - прямое копирование файлов на плеер. Однако в этом случае нужно быть уверенным в том, что ваш плеер сможет воспроизвести записанные композиции. Обратите внимание на следующее:

  • Многие простые плееры не могут воспроизводить композиции с большим битрейтом: зачастую 192 Кбит/с является верхним пределом возможностей. Помните, что спецификации MPEG1-2 Layer 3 не поддерживают битрейт свыше 320 Кбит/с.
  • Некоторые плееры не поддерживают переменный битрейт. Да, переменный битрейт заложен в понятие формата (ведь VBR/ABR не более, чем расширение его спецификаций). Однако весьма сложно реализовать эту функцию на такой маленькой электронике;
  • Самый распространенный формат - MP3 (лишь самые старые плееры от Sony не поддерживают его). В дополнение к этому некоторые плееры воспроизводят композиции в форматах WMA, AAC, AC3, Vorbis и FLAC. Но, конечно, не все.

Этот метод не сработает с плеерами, для которых нужен специальные средства доступа, например модели Apple iPod.

Путь воина

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

Обладателям iPod наверняка будет интересно узнать о существовании iPod Linux - это ядро Linux, адаптированное для iPod. На нем можно запускать множество свободных приложений GNU/Linux (включая и музыкальный плеер). Обратите внимание, что в этом случае появляется возможность воспроизводить те форматы, которые раньше (т.е. оригинальными прошивками) не поддерживались. Однако есть и недостатки у такого подхода: раз вашему iPod требуется держать на себе целую операционную систему, то и расход энергии у него будет больше, и батарейки будут садиться быстрее, чем при использовании оригинальной прошивки.

Жаль, что не получится запустить iPod Linux на последних моделях - их загрузочный сектор шифруется. На старых моделях должно пойти.

Другой способ - воспользоваться прошивкой Rockbox - это хорошая замена для многих ручных плееров (не только для iPod). Он больше подходит для повседневных музыкальных нужд, чем iPod Linux, и у него множество достоинств: работает на многих плеерах, для него доступна куча приложений, его даже можно рассматривать как маленький компьютер. На моем iPod mini работает Doom, удалось запустить его как раз с помощью Rockbox; если вы хотели бы видеть, что из себя представляет Doom на Nintendo Gameboy, значит это именно то, что вам нужно.

Если вы боитесь, что ваше устройство откажется загружаться из-за испорченной прошивки, тогда вам следует заранее побеспокоиться о том, как можно будет в случае чего ее востановить. О том, как сделать все как было, можно прочитать на веб-сайте Rockbox или у разработчика - к примеру, у большинства плееров iPod есть жесткий восстанавливающий режим, позволяющий стереть все с диска, соединиться с iTunes и загрузить в устройство последнюю официальную прошивку. Инструкции, отзывы пользователей и How-To - все это можно найти на сайте Rockbox.

Перепрошить свой плеер довольно просто (подробные сведения об этом - на веб-сайте Rockbox), и прошивка хорошо работает. К тому же, она довольно часто обновляется.

Оба варианта добавляют поддержку многих других форматов (Vorbis, AC3, FLAC и т.д.), и вам больше не потребуется для наполнения своего iPod музыкой пользоваться специализированными программами.

Смотрим фотографии

F-spot

При подсоединении камеры к компьютеру GNOME поинтересуется у вас, нужно ли импортировать фотографии (если вы хотите сохранить свой выбор, отметьте галочкой "всегда выполнять это действие" при своем первом выборе). На ответ "да" будет запущена программа F-spot, загружающая миниатюры фотографий и предлагающая скопировать фотографии на компьютер. На этом этапе вы выбираете нужные для копирования фотографии и добавляете к ним метки. Далее остается только ждать.


Рисунок 2: Диалог импорта и основное окно F-spot.

На рисунке в левом окне можно видеть, как я пытался сфотографировать запущенный Doom на моем плеере iPod, но не стоит напрягаться - там ничего не видно :)

Далее можно отсортировать свои фотографии. При импортировании можно добавлять к фотографиям метки, и можно отредактировать их позже, к примеру в GIMP.

Gphoto2 - это и библиотека, и консольная утилита. Консольный режим используется приложениями, такими как F-spot (для GNOME) и DigiKam (для KDE), для доступа к некоторым камерам, не работающим как UMS. Поддерживаются камеры, подключаемые к последовательному COM-порту или по шине USB. Список поддерживаемых камер можно увидеть, набрав gphoto2 --list-cameras.

Список этот достаточно длинный, так что будет лучше отфильтровать ненужное, набрав gphoto2 --list-cameras | grep ваша_модель.

Некоторые камеры помечены как TEST, другие - EXPERIMENTAL. Если среди таких есть и ваша, то стоит сходить на http://www.gphoto.org и скачать последнюю версию. Либо можно обновиться из репозиториев вашего дистрибутива.

Делаем вручную

Однако работа с F-spot может показаться вам медленной, а может быть, вы все хотите делать руками: тогда вы можете копировать фотографии с камеры как с обычной USB-флешки (если, конечно, она видится как стандартное UMS-устройство). Запускайте Nautilus, Thunar, Konqueror или Dolphin - и просто копируйте фотографии из одного места (камеры) в другое.

Однако если ваша камера не работает как UMS-устройство, все немного усложняется. Если вы уже знаете, что ваша камера поддерживается gphoto2, тогда попробуйте следующую команду:

gphoto2 --auto-detect

Вот возможный вывод команды:

$ gphoto2 --auto-detect 
Model                          Port                                            
---------------------------------------------------------- 
Kodak DX6340                   usb:            
Kodak DX6340                   usb:001,012 

Другие полезные опции gphoto2:

  • -n: выводит количество файлов на устройстве
  • --storage-info: выводит тип носителя данных (внутренняя ОЗУ, SD-карта и т.д.)
  • -p диапазон: получает фотографии в указанном диапазоне
  • -P: получает все файлы с камеры
Для получения более полного списка опций введите gphoto2 --help, а вообще полная документация доступна по команде man gphoto2. Еще в Gphoto2 есть командная оболочка, работающая в интерактивном режиме. Ее можно запустить, набрав gphoto2 --shell.

Если не хотите или не получается работать через gphoto2, а ваша камера хранит фотографии на SD-карте, купите себе SD картридер.

Будьте осторожны: некоторые камеры накладывают определенные ограничения на формат раздела FAT и могут не прочитать SD-карту, если она отформатирована какой-то сторонней программой. Лучше (т.е. безопаснее) будет форматировать карту специализированной программой, идущей в комплекте с камерой. И еще одно предостережение: хотя и можно вытаскивать SD-карту, вставлять ее в картридеры и прочее, однако не рекомендуется часто так делать: эти карты (и в особенности их контакты внутри камеры) не любят постоянного "дерганья".

Заключение

Надеюсь, я опробовал достаточно устройств (жаль, что у меня нет камеры, подключающейся через COM-порт), чтобы эту статью можно было назвать полноценной. Повторюсь: если ваше устройство работает некорректно, сначала попробуйте обновить прошивку, затем все библиотеки (hald, udev, dbus, gphoto2, libgpod и т.д.) и (прежде чем отчаяться) убедитесь, что ваш USB-контроллер сам работает исправно.

Поздравлю вас, если у вас все работает - наслаждайтесь свободными программами, они наверняка могут удовлетворить любую вашу потребность, даже спортивный интерес. Например, превратить свой iPod, которого хватало на 10 часов, в 20-часовую игровую консоль :)

Источники

При написании статьи были использованы следующие материалы:


Если вы ищете программы для телефонов на основе ОС Symbian, то обязательно загляните в раздел программы для Symbian на сайте PDA news. Здесь вы найдете много полезной информации, разнообразные приложения и последние новинки программного обеспечения.