И так, аппаратная часть медиацентра на базе Raspberry Pi собрана, все подробности
по ее комплектации и сборке читайте
в первой части статьи.
Следующим шагом будет установка дистрибутива XBMC. XBMC это открытый проект по
созданию медиацентра, изначально предназначенного для игровой приставки Xbox
(отсюда название проекта - Xbox Media Center) и в настоящее время поддерживающего
множество платформ.
Существует три основных варианта дистрибутивов медиацентра, это
Raspbmc,
XBian и
OpenELEC.
Все они созданы на базе проекта XBMC и разработаны специально для Raspberry Pi,
имеют несущественные различия, а кроме того поддерживаются достаточно
многочисленными сообществами. Я выбрал для себя OpenELEC, поэтому в дальнейшем
будем рассматривать именно его установку и настройку.
Raspberry Pi хранит операционную систему и программы на SD карте, поэтому
понадобится SD карта (или microSD для модели «B+»). Для установки OpenELEC
достаточно карточки объемом 500 Мбайт, но менее 2 Гбайт сейчас сложно найти. Да и
небольшой запас пусть будет на всякий случай. Использовать карточку большего
объема не имеет смысла, медиафайлы на ней все равно хранить не будем, а чем больше
карточка, тем больше затраты времени и дискового пространства на создание и
хранение резервных копий системы. А вот класс карточки должен быть как можно выше.
Скачать последнюю версию дистрибутива образа диска OpenELEC лучше всего с
официального сайта разработчиков
http://openelec.tv.
На февраль 2015г. это версия 5.0.1, которая сменила имя «XBMC» на «Kodi».
Но на момент написания статьи она еще не существовала, поэтому все дальнейшие
описание относится к 4-й версии. Однако внешние различия незначительны.
Версии 3 и ниже (12.x Frodo) ставить не стОит – слишком много в них глюков.
И так, скачиваем дистрибутив (образ диска) OpenELEC. Записать образ можно с
помощью программы
Win32DiskImager. Вставьте SD (microSD) карточку в кардридер и подключите его
к USB порту компьютера. Распакуйте скачанный архив с образом OpenELEC, запустите
Win32DiskImager, выберите в нем этот образ - файл с расширением .img
и SD карточку, на которую его нужно записать, нажмите экранную кнопку «Write».
Дождитесь завершения процесса записи.
Можно сразу немного разогнать процессор Pi. Запускаем на компьютере Total
Commander и переходим на только что записанную SD карточку. Вместо 2 Гбайт там
будет немногим более 100 Мбайт, это нормально. Ищем файл config.txt
и открываем его для правки, это обычный текстовый файл. Ограничимся щадящим режимом
разгона процессора. Для этого в файл config.txt нужно добавить следующие строки:
arm_freq=900
core_freq=333
sdram_freq=450
over_voltage=0
Там уже есть похожие закомментированные строки, просто исправьте их и
раскомментируйте. Для просмотра MPEG2 и DVD фильмов нужен лицензионный ключ. Его можно
приобрести здесь, стоимость £2. Ключ аппаратно зависимый,
подходит только для той платы, серийный номер которой был указан при покупке ключа.
Какой серийный номер у вашей платы узнаете, когда запустите OpenELEC. Если ключ
уже куплен, записываем его в файл config.txt, добавив строку вида:
decode_MPG2=0x00000000
Можно еще принудительно выбрать разрешение экрана телевизора, включить режим
overscan, если изображение выходит за границы экрана или, наоборот, по краям
экрана есть темные полосы и многое другое. Как это сделать,
читайте здесь.
Оригинал статьи на английском языке находится по адресу:
http://elinux.org/RPi_config.txt.
Впрочем, большую часть настроек в файле config.txt можно сделать средствами OpenELEC,
запустив соответствующее дополнение. Об этом позже.
После редактирования сохраняем файл config.txt, вынимаем карточку из кардридера и
вставляем ее в слот Raspberry Pi. Кабель от роутера уже подключен, телевизор,
разумеется, тоже подключен кабелем HDMI. Можно включать питание.
На время настройки для удобства к медиацентру желательно подключить USB мышку.
Клавиатура тоже не будет лишней. Несколько минут ничего не предпринимайте, дайте
возможность системе скачать необходимые дополнения. При первом запуске
на экране появится окно с предложением выбрать язык интерфейса. Выберите нужный
из списка. Затем будет предложено включить SAMBA и SSH. SAMBA включите обязательно,
а SSH - только, если точно знаете что это такое и зачем оно вам нужно.
Выбираем «Система» -- «Настройки», в левой части открывшегося окна
будет много пунктов, можно пройтись по всем. Начнем с пункта «Внешний вид».
В первую очередь в левом нижнем углу включаем экспертный режим, иначе часть настроек
будет недоступна. Затем на вкладке «Обложка» для экономии ресурсов убираем галочку
«Включить RSS-новости», все остальное оставим по умолчанию.
«Языковые настройки». Выбираем язык интерфейса – Russian. Страна в часовом поясе –
Russia, затем нужный часовой пояс.
«Списки файлов». Отметим здесь все пункты, чтобы файлы можно было удалять и
переименовывать, а также были видны скрытые файлы. Впрочем, это на ваше
усмотрение.
Закрываем окно и заходим на вкладку «Видео».
«Воспроизведение». Здесь для улучшения передачи движения в видео нужно выбрать
пункт «Настроить частоту дисплея согласно видео» и поставить его в режим
«Постоянно». Остальное – по умолчанию.
«Ускорение». Убедитесь, что аппаратное ускорение включено. Настройки на остальных
вкладках окна «Видео» оставим по умолчанию. Закрываем окно. На «ТВ»
тоже оставим все по умолчанию.
«Музыка» - выключаем «Считывать информацию из тегов», в противном
случае могут некорректно отображаться названия музыкальных файлов.
«Фото», «Погода», «Дополнения» и «Службы» пока можно не менять. Заходим на вкладку
«Система».
«Вывод видео». Все по умолчанию, только убедитесь, что разрешение интерфейса на
максимуме. «Вывод звука». Устройство вывода звука - HDMI, остальное по умолчанию.
«Устройство ввода». Мышку надо включить, а в пункте «Периферия» можно настроить
управление адаптером CEC. Там все понятно. Только после любых изменений
конфигурации пульт перестает работать. Требуется перезагрузка системы,
перезагружаемся с управлением мышкой.
«Доступ в Интернет», «Экономия энергии», «Отладка» и «Особая защита» по умолчанию.
Закрываем вкладку и заходим Система -- OpenELEC -- Система.
Здесь убеждаемся, что «Автоматическое обновление» установлено «manual». По мере
выхода новых версий ПО здесь можно легко делать upgrade через пункт «Проверить обновления».
На этой вкладке можно также делать и, при необходимости, восстанавливать резервную
копию настроек – «Создать системную резервную копию», «Восстановить резервную копию».
На вкладке «Службы» включаем «Samba» и, при необхожимости, «SSH»; «Использовать
пароли Samba» и «Отключить пароли SSH» НЕ отмечаем. Все остальное тоже выключаем.
«Bluetooth» я не настраивал.
Теперь из главного окна зайдите Система -- Сведения о системе.
Здесь можно получить информацию о подключенных дисках, сетевом соединении, узнать
IP адрес, температуру процессора, посмотреть серийный номер платы, необходимый
для покупки MPEG2 лицензионного ключа и др.
Посмотрите, соответствует ли суммарный объем двух разделов на SD карточке полному
объему карточки. Возможно он будет меньше, т.е. часть объема диска невидима для
операционной системы. Исправить это очень просто. Создаем на компьютере пустой
файл с именем .please_resize_me. Именно так, с точкой в начале
и подчеркиваниями. Можете взять его из моего архива – ссылка в конце странички.
Скопируйте этот файл на флэшку, вставьте ее в USB порт медиацентра и войдите
в файловый менеджер OpenELEC.
В корневом каталоге появится ваша флэшка. Если там нет каталога «storage»,
щелкните «Добавить источник» и выберите «Домашняя папка». Теперь в корне появится
каталог «storage», скопируйте в него файл с флэшки, файловые операции делаются
через контекстное меню. Выйдите из файлового менеджера, нажав мышкой на кнопку с
домиком внизу и перезагрузитесь (кнопка слева внизу). Теперь должен быть виден
весь объем карточки.
Теперь нужно как-то загрузить медиафайлы на подключенный жесткий диск. Лучше это
сделать еще до установки жесткого диска в медиацентр. Подключите его к основному
компьютеру, отформатируйте и скопируйте на него фильмы, музыку, фотографии из
вашего архива. Просто, так получится быстрее. OpenELEC понимает все популярные
файловые системы, оптимальный выбор, наверное, NTFS.
Можно обмениваться файлами и по локальной сети. Для этого необходимо настроить
Samba сервер. Это довольно серьезный вопрос, заслуживающий отдельной статьи. Здесь
я упомяну только основные моменты. Вначале нужно создать файл конфигурации
samba.conf. Для удобства я выкладываю его рабочий вариант –
ссылка в конце странички. Его нужно распаковать из архива и скопировать на флэшку.
Зайдите в файловом менеджере OpenELEC в каталог «storage», затем в «.config»
(точка перед именем означает, что это скрытая папка) и скопируйте туда файл
samba.conf. Там есть файл samba.conf.sample. Это образец, скопируйте его на всякий
случай на флэшку. Если что-то не получится, можно будет поэкспериментировать с
настройками. В интернет можно найти много противоречивых мнений о содержимом файла
samba.conf
Снова перезагружаемся. Теперь нужно настроить локальную сеть на компьютере
Windows. Запустите Total Commander и выберите вместо локального диска «Сетевое
окружение». Если через непродолжительное время там появится OPENELEC
– вам повезло, все работает. Можно копировать файлы на подключенный жесткий диск,
правда скорость не очень большая – около 3 Мбайт/сек, т.е. примерно 25 Мбит/сек.
Жесткий диск и флэшка отображаются в каталоге OPENELEC -- storage.
Если в сетевом окружении нет OPENELEC, попробуйте выключить медиацентр. Это нужно
делать программно, через меню завершения работы. Только после закрытия системы
можно выключить питание. Подождав 1-2 минуты вновь включите питание. Если OPENELEC
так и не появился в сетевом окружении – нужно настраивать локальную сеть на
компьютере Windows. Вопрос отдельный и достаточно сложный. Не буду на нем
останавливаться, т.к. не специалист в этом. У меня все заработало после
трехчасовых мучений и внимательного изучения материала, найденного Google. Правда,
сюда входило и время на эксперименты с содержимым файла samba.conf.
Ну, что же, осталось установить дополнения (addon -ы). Сначала добавим
русскоязычный репозиторий дополнений Seppius. Скачайте файл
repository.seppius.zip, скопируйте его на флэшку или HDD медиацентра,
затем выберите Система -- Дополнения -- Установить из zip файла и
укажите путь к этому файлу. Еще один полезный репозиторий – Leopold. Аналогично
скачайте файл xbmc.repo.leopold.zip и установите его. На всякий случай я положил
оба этих файла в архив, ссылка на который в конце странички.
Теперь можно выбрать, что вас интересует в списке дополнений. Список большой, но,
к сожалению, большая часть дополнений не представляет интереса или не работает.
Тем не менее, кое-что выбрать можно. Если после успешной установки при запуске
дополнения появляется сообщение об ошибке, значит оно устарело, а его автор,
очевидно, потерял интерес к этому своему проекту. Остается только удалить его,
либо попытаться разобраться и что-то поправить самостоятельно, но это отдельная
тема.
Из программных дополнений рекомендую установить OpenELEC RPi Config
из Leopold's Add-ons -- Services. С помощью этого дополнения можно
редактировать системные настройки в файле config.txt. Там все понятно, только
не следует при разгоне процессора ставить параметр «over_voltage»
больше нуля. В этом случае теряется гарантия на плату. Дело не в самом факте потери
гарантии, а в том, что это может привести к повреждению платы. Если, конечно, вы
уже наигрались и просто нужен повод выбросить все это...
Еще одно полезное дополнение Keymap Editor - очень удобно с ним
настраивать управление медиацентром. Этим сейчас и займемся. Как я уже упоминал,
Raspberry Pi поддерживает технологию CEC, что позволяет использовать пульт телевизора для
управления медиацентром. Большинство телевизоров, выпущенных за последние годы,
тоже поддерживают эту технологию.
Но, к сожалению, тут есть некоторые проблемы. Разные фирмы называют технологию CEC
по-своему. И это не случайно, они и реализуют ее по-своему. Например, у LG это
SimpLink. Идея хорошая, но программисты решили особо себя не утруждать и свели
количество кнопок, посылающих коды по HDMI к минимуму. На моем пульте из 48 кнопок
только 11 можно использовать для управления подключенными по HDMI устройствами.
Это кнопки со стрелками, OK, Exit и еще несколько других. Остальные кнопки
управляют телевизором или выдают сообщение «Операция недоступна». Несколько кнопок
вообще не работают в этом режиме. В принципе, для стандартных операций этого
достаточно, но, например, переключать звуковую дорожку фильма, забираясь глубоко в
меню весьма неудобно.
Для некоторых операций программисты LG решили зачем-то задействовать
последовательное нажатие двух кнопок. Чтобы вывести контекстное меню нужно нажать
«Стоп», а затем «Play», для возврата в домашний экран - «Стоп», «Пауза». А ведь
большая часть кнопок пульта не задействована... И тут ничего не поделаешь. В меню
телевизора можно только включить или выключить SimpLink.
К счастью, в XBMC в каждом окне одна и та же кнопка может выполнять разные
функции, так что кое-что подправить можно. Для этого запускаем установленное
дополнение Keymap Editor из главного меню «Программы».
Как с ним работать, интуитивно понятно, но предварительно нужно ознакомиться
со структурой файла keyboard.xml, который хранится
на SD карточке в каталоге /storage/.xbmc/userdata/keymaps/.
Имя файла вообще-то может быть любым, главное, чтобы расширение было xml.
Дополнение просто помогает создать и отредактировать этот файл, который
переопределяет функции, выбранные по умолчанию для кнопок управления. Тема тоже
отдельная и обширная, не все тут сразу ясно и понятно, придется
экспериментировать. Подробную информацию по структуре файла можно найти
здесь
и здесь.
Наконец, все настроено, делаем на всякий случай резервную копию системных файлов
(Система -- OpenELEC -- Система -- Создать системную резервную копию)
и копируем созданный файл из каталога /storage/backup на HDD
или флэшку. С помощью этого файла можно восстановить все сделанные настройки после
переустановки или установки новой версии OpenELEC. Для восстановления системных
настроек файл должен находиться в каталоге /storage/backup.
К сожалению, восстановление настроек можно сделать корректно только в пределах
одной версии - 4-й, 5-й и т.д. Т.е. нет проблем апгрейда с 4.0 на 4.2, но могут
возникнуть ошибки при переходе с 4.2 на 5.0. В этом случае, очевидно, настройку
придется повторять вручную. Не помешает сохранить также образ SD карточки с
помощью Win32DiskImager в файл с расширением .img, чтобы в случае
каких-то глобальных системных сбоев не пришлось повторять всю настройку.
Сохраненный файл образа можно заархивировать для экономии места на диске.
Теперь вся инициатива в ваших руках. Смотрите фильмы, слайд шоу, слушайте музыку.
Но не забывайте, что Raspberry Pi – компьютер, а не плеер. Это значит, что “нажал
кнопку и смотри” с ним не получится. Придется использовать голову, потребуются
также прямые руки... С другой стороны, если что-то не работает или работает не так,
как нужно, есть много путей решения проблемы. В первую очередь, нужно поискать, а
не найдено ли уже кем-то решение. Новые версии OpenELEC выходят довольно часто – в
течение года появляется несколько обновлений, т.е. проект активно развивается и
все ошибки постепенно устраняются.
Медиацентр поддерживает довольно много видеоформатов, это H.264, XviD, DivX, MPEG2 в
контейнерах MKV, AVI, DVD. С полным списком поддерживаемых форматов можно
ознакомиться здесь.
Какие недостатки у медиацентра на Raspberry Pi? Основной минус – очень долго
добираться до нужного медиафайла в интернет. При просмотре никаких задержек нет, а
вот поиск и выбор того, что вы хотите посмотреть занимает отнюдь не секунды, а
1-2 минуты. Нерабочих ссылок тоже довольно много. Тут уж ничего не поделаешь...
Не всегда корректно отображается меню DVD дисков. Вообще, DVD – очень сложный
контейнер с массой документированных и недокументированных возможностей. Тем не
менее, основной фильм Raspberry Pi хорошо воспроизводит всегда.
Со временем я обнаружил еще один минус. При какой-либо ошибке в медиафайле
воспроизведение прекрашается и плеер вываливается в меню. Досмотреть фильм до
конца удается только повторным запуском его просмотра и ручной перемоткой за
точку ошибки. Вообще, обработка ошибок - это самое слабое место в любой программе.
Возможно, возникнет вопрос, а поддерживает ли Raspberry Pi новый видеокодек H.265.
На момент написания статьи с этим дело обстояло точно так же, как и в большинстве
других медиаплееров, т.е. никак. Но когда возникнет реальная потребность в
просмотре фильмов, закодированных H.265, возможно появится Raspberry Pi 2, 3...
или что-то аналогичное. Просто заменим плату нашего микрокомпьютера на что-нибудь
более совершенное.
Конечно, я рассказал далеко не обо всех возможностях медиацентра на Raspberry Pi.
Что-то, наверное, показалось не совсем понятным, хотелось бы побольше картинок.
Но для того, чтобы обо всем подробно рассказать нужно писать книгу, на одной
страничке сайта все описать невозможно. Названия окон и их содержимое в новых
версиях OpenElec могут несколько отличаться от моего описания. Если что-то
непонятно или не получается – просите помощи у Google.