Медиасервер на базе Raspberry Pi
Понимаю, что тема необычная, но хотелось поделиться опытом, не знал, в какой раздел лучше поместить, перенос темы на усмотрение модераторов В начале августа мне попался журнал Linux Format со статьей о мини-компьютере Raspberry Pi. Для тех, кто еще не в курсе – это одноплатный мини-компьютер с ARM-процессором, имеющий минимальную стоимость – $35 в модификации B.
Изначально Raspberry Pi задумывался как дешевая платформа для возбуждения интереса к программированию у школьников. Т.е. его создатели Эбен Аптон и Дэвид Брабен, (кстати - автор легендарной спектрумовской игры Elite), собирались частично заполнить нишу, образовавшуюся в нижнем ценовом сегменте после ухода с массового потребительского рынка компьютера ZX Spectrum. Частично – потому что использовать его в качестве игровой приставки невозможно, а вот для обучения программированию – вполне.

Технические характеристики:
http://www.raspberrypi.ru/doc/view.29.html Особенностью Raspberry Pi является минимальное энергопотребление – около 1 Ватта и бесшумная работа. Запустить Pi можно от 4-х батареек формата АА. При этом Pi имеет достаточно мощный графический чип, которого, якобы, хватает для воспроизведения HD-контента.
Это, вместе с минимальной ценой, и натолкнуло меня на мысль, что на базе Pi можно сделать медиасервер – круглосуточную качалку для торрентов и их воспроизведения на телевизоре или проекторе.
Порывшись в залежах компьютерного хлама, я нашел старый винт на 80 Гб с интерфейсом IDE, переходник для подключения винта по USB, с внешним блоком питания, а также зарядное устройство от безвременно почившей в бозе электронной книги Wexler 7001, USB-мышь и кабель LAN. Пришлось докупить: карту памяти SDHC на 16 Гб, с которой будет загружаться система, внешнюю USB-клавиатуру, т.к. у моей основной клавиатуры разъем PS/2, и USB-хаб с внешним питанием, от которого, впрочем, реально толку не было из-за чисто английских странностей пациента.
Raspberry Pi был приобретен в Wimaxstore по цене 2280 рублей, что, безусловно, очень дорого по сравнению с его исходной ценой. Но из-за бугра я раньше ничего не заказывал, и связываться с этим делом не хотелось, а цена сама по себе не запредельная.
В качестве операционной системы на офсайте предлагаются 3 варианта: Raspbian Wheezy – сборка Debian для ARM-процессора, ArchlinuxARM, и некий Qtonpi – как я понял, спецсборка с графическим окружением на библиотеках Qt. ОС должна грузиться с карты памяти, и именно исходя из этого был выбран вариант на базе Debian – так как Арч быстро замучает карту своими бесконечными обновлениями, а для сервера важнее стабильность софта, чем его свежесть.
ОС закатывается на карту памяти командой dd, делается это легко и непринужденно. В результате на карте образуются 2 раздела, один содержит ядро, несколько текстовых конфигов и проприетарные модули для графического чипа, на другом живет стандартная файловая система Unix.
После чего карта была воткнута в плату, к плате подоткнута клавиатура, мышь, кабель HDMI к LCD-панели и сетевой кабель в роутер. Кабель питания в зарядку от электронной книги, и вперед.
По умолчанию Pi грузится в текстовую консоль, и в первой текстовой консоли запускается псевдографическая утилита конфигурирования, где можно настроить автозапуск графического окружения при загрузке, старт ssh-сервера, и ещё кое-какие подробности.
В сборке Raspbian используется LXDE, с pcmanfm в качестве файл-менеджера. Предустановленный софт – Python, Scratch, Idle в качестве среды программирования, Leafpad, Midori.
Скриншот

Фотоаппарат слегка обалдел от непонятных условий съемки, несколько раз менял на лету баланс белого, в итоге остановился на малиновом (кто не в ладах с английским – Raspberry означает “малина”, что наглядно видно на обоях)
Никакого графического видеоплеера по умолчанию нет. VLC на этом железе висит и тормозит, mplayer при раскрытии на полный экран вешается, и фильмы со звуком mp3 не проигрывает, хотя libmp3lame0 установлена.
Ещё для Pi существует сборка XBMC, однако эта поделка при монтировании диска с большим количеством фильмов начинает их индексировать и благополучно виснет,

Звук mp3 она проигрывает, но вот изображение, кодированное стандартным кодеком xvid осилить не может

Оказалось, в Pi установлен по умолчанию какой-то omxplayer, который умеет играть видео на полный экран прямо из текстовой консоли, со звуком mp3. Однако плеер очень непонятный, похоже, еще недоделанный. Стартовать его надо из консоли, или эмулятора терминала, указывая, куда выводить звук — в HDMI или аудио-разъем minijack. Также он не понимает формат mkv, играет только avi и mp4.
Он действительно воспроизводит HD-видео в формате 1080p в контейнере mp4 с диска, подмонтированного по сети без тормозов.
Управление play/pause — пробел, громкость – «+» и «-». Для запуска фильма подключать к Pi клавиатуру или мышь необязательно, достаточно лишь воткнуть кабель HDMI и LAN, после чего законнектиться к Pi по ssh, подмонтировать сетевой диск с фильмами и запустить воспроизведение командой
omxplayer -o hdmi название_фильма
если смотрим на телевизоре с выводом звука по HDMI. Если колонки подключены к minijack'у на борту Pi, используется опция
-o local Pi можно подключать не только к телевизору, но и к проектору. Чтобы проектор нормально опознался, он должен быть включен до загрузки Pi. Неудобство заключается в том, что соединение HDMI-кабеля надо производить при полном обесточивании обоих устройств, так что закачку приходится прерывать, все выключать и включать заново.
Поскольку кабель HDMI был короткий, а перетаскивать Pi на проекторный столик ради проверки 5 минутного ролика не хотелось – в него дофига кабелей воткнуто, я подкатил столик к Pi и спроецировал изображение на белую дверь спальни. Открыв на двери pcmanfm и терминал, я сообразил, что надо взять наушники в спальне. Пришлось войти в файловую систему Debian непосредственно через дверь :-D
Если с воспроизведением фильмов у Pi все не слишком безоблачно, то вот с второй возложенной на него задачей — закачкой торрентов, он справляется на раз, хотя настройка оказалась не слишком интуитивной.
Download-server на базе Raspberry Pi.

Необходимо установить пакет transmission-daemon, а затем командой
sudo service transmission-daemon stop
остановить демон, и сделать необходимые настройки в файле /etc/transmission-daemon/settings.json
“rpc-whitelist”: “127.0.0.1″, изменить на “rpc-whitelist”: “*.*.*.*”,
“rpc-password”: “password”, изменить на “rpc-password”: “сюда пишем пароль“,
“rpc-username”: “username”, изменить на “rpc-username”: “имя с которым будем входить“,
“download-dir”: “/var/lib/transmission-daemon/downloads”, изменить на “download-dir”: “/путь/куда/будут/сливаться/файлы”
Необходимо также учитывать, что демон работает под своей учетной записью и к группе, в которую входит пользователь, не относится. Поэтому надо дать разрешение на запись в папку для скачиваемых файлов для пользователя debian-transmission.
sudo chmod g+rw /путь/куда/будут/сливаться/файлы
sudo chgrp -R debian-transmission /путь/куда/будут/сливаться/файлы
Я не стал заморачиваться и дал на папку права 777.
Чтобы подключаемый по USB винт монтировался каждый раз в одну и ту же папку, его надо прописать в
/etc/fstab примерно вот так:
UUID=cab05f44-22ba-417c-b77f-716b89149d26 /media/sda1 ext4 rw,users,relatime 0 0
UUID диска можно подсмотреть командой
sudo blkid
После всех настроек стартуем демон командой
sudo service transmission-daemon start
Чтобы с удобством кормить нашего домашнего демона свежими торрентами, можно коннектиться к нему через web-интерфейс из любого браузера по адресу:
http://IP_адрес_Pi_в_домашней_сети:9091/ Особенно приятно делать это лежа в постели, или сидя в туалете, с нетбука, смартфона, или другого портативного устройства – при этом естественным образом осознаешь, что будущее наступило.

В Рунту-Gnome я поставил для управления демоном прогу transgui, чего и всем рекомендую. В ней два основных плюса:
1. Можно задать параметры соединения, чтобы не вводить каждый раз логин и пароль
2. Интерфейс у нее похож не на стандартный transmission, а на deluge, что гораздо удобнее — в нижней части окна на 4-х вкладках отображается полная информация по выделенной закачке, и не надо лазить в свойства, как в стандартном transmission. Это как раз то, чего мне так не хватало в transmission-gtk.
Как я упоминал, у Pi есть некоторые чисто английские странности. У него всего 2 USB-порта, поэтому я пробовал подключать к нему USB-концентратор с внешним питанием, а уже в него втыкать клавиатуру, мышь, флешки и внешние винты. Так вот, концентратор он видит нормально, клавиатура и мышь через концентратор работают, а ни винты ни флешки не определяются. Притом, что один из опробованных винтов — 3,5'' IDE Seagate – запитывался через собственный блок питания.
Если же втыкать винт или флешку не в концентратор, а во второй, остающийся свободным USB-порт, винт некоторое время виден в системе, но недоступен, а потом он отваливается.
Das ist fantastish.
Но, тем не менее, игрушка оказалась недорогая и весьма полезная.