Эпопея о WD My Book Live, или «девайс-конфетка» с «печенками»

от автора

image

Привет %username%! В начале этого года мне наконец-то исполнился четвертак. Поняв, что я стал взрослым ребёнком и нуждаюсь во взрослых игрушках, купил себе WD My Book Live на 3Tb ёмкости, который в нашем счастливом семействе убил сразу N зайцев. Счастью моему не было предела. Девайс подкупил своей ценой, железом и наличием полноценного Linux на борту. Однако, как оказалось позже, Linux Debian оказался не очень уж и полноценным, достаточно кастрированным и, судя по отзывам рядовых владельцев, любителем окирпичиться. Однако, благодаря инженерам из WD, девайс достаточно легко поднимается из состояния кирпича до состояния работоспособного устройства (пруф1 и пруф2).

Я никак не являюсь линуксоидом и для меня Linux, по своей сути, тёмный лес! Поэтому, в первый раз, долго изучая интернеты, я запилил себе только mc и transmission, чего для первого раза мне хватило за глаза. А ещё я был поражён, как мне – человеку, впервые запустившему SSH — легко это удалось! Прошло полгода, я почитал форумы, посвящённых девайсу. Настал день “Д” и я, засучив рукава, принялся делать из своего девайса “конфетку”. И не простую, а “конфетку” с “печенками”, а именно:

  1. Девайс специфичен тем, что после прошивки на более новую версию теряется практически весь софт и настройки системы, которые старательно и кропотливо заносились тобой, %username%. Но эту проблему с радостью решает chroot. А весь последующий софт должен крутиться только на нём
  2. Девайс отлично работает в качестве файлопомойки по сети. Было бы слишком циничным иметь такой ресурс и не воспользоваться им для воплощения домашнего dropbox’а.
  3. Кроме этого, девайс должен уметь самостоятельно закидывать себя торрентами, причём максимум, что требуется от меня, так это качать .torrent в определённую директорию, а всё остально должно делаться само!
  4. Встроенный медиасервер Twonky 5 работает… Работает и слава богу! Но хотелось бы иметь что-то с web-мордой, кушающее побольше медиа и имеющее возможность конфигурироваться. Twonky6\7 отметается в силу своей платности.
  5. Иметь интерфейс для мониторинга состояния девайса, чтобы знать чем он “дышит”.
  6. Кому как, а мне, как web-разработчику, хотелось бы иметь и свой домашний web-сервер под свои личные мини-проекты и разработки (как альтернатива Denwer’у), однако его настройкой займёмся позже, когда у меня будет значительно больше времени.

Зачем я только это всё затеял… Стоит помнить, что все эти навороты создают ощутимую нагрузку на устройство, поэтому лучше заранее определиться, нужно ли это тебе? Но да ладно, засучим рукава и приступи!

Начинаем преображаться

Мой энтузиазм был на пределе, так как я помнил свой успешный первый опыт общения с терминалом своего Debian. Первое, о чём я долго мечтал сделать – это обновить версию прошивки моего MBL. На момент приобретения девайса, на нём была установлена прошивка 02.41.05-034. Последней на сегодняшний день является 02.42.03-027. Не обновлялся исключительно из-за того, что эта процедура неизбежно приводит к стиранию всего установленного мною софта. Но теперь я установлю chroot и всё будет в порядке! Запасся двумя внешними USB-HDD по 750Gb каждый и перенёс все нужные данные с MBL, что настоятельно рекомендую сделать и вам. В процессе я успел потереть пару раз файлы на MBL (исключительно по своей невнимательности), поэтому лишним не будет!

Скопировав все данные, принялся прошиваться. Из web-интерфейса это было сделать достаточно легко, однако если уж заниматься чем-то, то заниматься по взрослому. Поэтому предпочёл повышать свой уровень знаний, обновляя прошивку через терминал. В этом случае, любую версию прошивки можно скачать с сайта WD или взять с зеркала.

Если у кого-то ещё не включен SSH на устройстве, то это легко можно сделать, перейдя по ссылке http://mybooklive/UI/ssh или обратившись по IP-адресу девайса, в моём случае это http://192.168.0.41/ui/ssh. Установить галочку “SSH Access”.

image

Чтобы подключиться к устройству по SSH, нужно скачать любой ssh-клиент. Я предпочитаю использовать PUTTY. В его настройках достаточно прописать имя хоста или IP-адрес MBL и нажать кнопку “Соединиться”. При запросе логина и пароля указать стандартные логин root и пароль welc0me (с нулём вместо O). Если всё в порядке, то консоль нам ответит приветственным сообщением и строкой:

MyBookLive:~# 

image

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

“MyBookLive:~# ” – среда корневой операционной системы. “(chroot-debian)/# ” – среда chroot. 

Для начала, если вы этого никогда не делали, стоит снять полный backup MBR и разделов диска:

MyBookLive:~# dd if=/dev/sda bs=15728640 count=1 | bzip2 > /DataVolume/shares/Public/SDA_MBR_FREESPACE.bz2 MyBookLive:~# dd if=/dev/sda1 | bzip2 > /DataVolume/shares/Public/SDA1_IMAGE.bz2 MyBookLive:~# dd if=/dev/sda2 | bzip2 > /DataVolume/shares/Public/SDA2_IMAGE.bz2 

Теперь останется лишь скачать полученные файлы из директории /DataVolume/shares/Public/ на другой носитель. И в случае какой-либо проблемы нам есть на что откатиться. Лучше всего это сделать, если MBL ещё пустой.

А сейчас я настоятельно рекомендую сменить пароль на более сложный:

MyBookLive:~# passwd [новый пароль] 

Пароль нужно ввести 2 раза подряд (после первого раза, система запросит ввести пароль повторно), чтобы система его приняла. Для справки, в консоль PUTTY можно вставить скопированные из буфера обмена команды сочетанием клавиш Shift + Ins, чтобы не набирать все команды в ручную и избавиться от ошибок.

Прошиваемся

Теперь, когда у нас есть полноценный SSH, мы можем делать всё, что угодно (в разумных пределах, разумеется). Шаг с прошивкой не обязателен, но крайне желателен, ибо с голой системой работать приятнее (всё равно при следующем обновлении мы всё потеряем). Если у тебя установлена последняя версия обновления, но ты хочешь поставить туже прошивку с нуля, то это подойдёт и тебе. Для начала нужно посмотреть текущую версию прошивки в файле /etc/version. Для этого наберём в консоли:

MyBookLive:~# nano /etc/version 

Откроется редактор Nano. В его текстовом поле в самом верху будет написана версия прошивки. В моём случае это 02.41.05-034.

image

Нажмём Ctrl + X, чтобы выйти из редактора. Если у вас стоит самая последняя версия прошивки (т.е., на сегодняшний день это 02.42.03-027), то без проблем меняй номер прошивки на любой предыдущий (как вариант, можно вписать и мой – на скриншоте выше). В этом случае, чтобы сохранить изменения, необходимо нажать Ctrl + O, после чего согласиться нажатием клавиши Enter, а затем выйти из редактора Ctrl + X.

И так, нас всё устраивает, мы начинаем обновлять прошивку. Скачиваю и устанавливаю последнюю (на сегодняшний день) прошивку apnc-024203-027-20130529.deb с зеркала и ложу её в директорию /DataVolume/shares/Public/ моего MBL. Далее, в консоли необходимо написать:

MyBookLive:~# updateFirmwareFromFile.sh /DataVolume/shares/Public/apnc-024203-027-20130529.deb 

Прошивка уничтожит все установленные вами на устройстве программы, но не затронет хранящиеся на устройстве пользовательские файлы. Однако я настоятельно рекомендовал ранее и повторю сейчас – лучше иметь копию этих файлов у себя на винчестере, чем потом рвать волосы на голове!.. Процесс прошивки будет не быстрым. Ни в коем случае не закрывайте сеанс в SSH консоли и обязательно дождитесь её ответа сообщением:

The system is going down for reboot NOW! 

Если в процессе обновления прошивки у тебя в браузере открыто окно с web-интерфейсом MBL, то скорее всего заметил в нём окно состояния процесса обновления. Баг?

image

Первым делом после прошивки необходимо заморозить udev… От греха подальше!

MyBookLive:~# aptitude hold udev 

Список репозиториев лучше не модифицировать, ибо чревато! Выполнить в консоли следующее:

MyBookLive:~# sudo apt-get update 

Скорее всего консоль ругнётся как-то так:

W: GPG error: http://ftp.us.debian.org wheezy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AED4B06F473041FA 

Подобная ситуация возникает после обновления листа репозиториев, прописанных в /etc/apt/sources.list и при последующей попытки что-то оттуда установить. Причиной является то, что в системе просто на просто отсутствуют публичные GPG-ключи репозитория, из которого осуществляется установка пакета. И этот самый ключ (в моём случае — AED4B06F473041FA) необходимо добавить в базу apt системы. Выполним следующее:

MyBookLive:~# gpg --keyserver subkeys.pgp.net --recv AED4B06F473041FA MyBookLive:~# gpg --export --armor AED4B06F473041FA | sudo apt-key add - 

Если всё прошло успешно, система ответит:

OK 

Теперь снова пробуем выполнить:

MyBookLive:~# sudo apt-get update 

Теперь всё отлично и этого достаточно для начала! Имеет ли смысл далее настраивать голую систему под себя? На этот вопрос каждый ответит для себя сам, я в этом смысла не вижу, поэтому сразу приступлю к следующему слюнопускательному пункту программы!

Устанавливаем chroot

Теперь с чистой совестью можно приступить к установке chroot. Вся необходимая информация есть на Code.Google проекта. Из инструкции по ссылке и по описаниям из интернетов, процесс не сложный. Ну что ж, приступим?

Для начала скачаем скрипт установки.

MyBookLive:~# wget http://mbl-common.googlecode.com/svn/chroot-install/install.sh 

Возможно, у кого-то он пойдёт с ходу-бегу, но у меня он поругался, поплевался, насупил брови, надул щёки и отказался что-либо делать. Причиной всему оказалась ссылка на устаревший репозиторий в 55 строке (меняем через редактор nano ссылку ftp.debian.org/debian на mirror.yandex.ru/debian). Так же выяснилось, что принципиально важно экранировать треугольные скобки “<” и “>” в 36 строке, дописав перед каждыми по символу ”\”, так как инсталлятор ругался и на них. Для ленивых привожу ссылку на уже поправленный мною инсталлятор. Теперь запустим процесс установки:

MyBookLive:~# sudo sh /root/install.sh 

На все вопросы системы отвечаем положительным “y”. Сам процесс установки должен занять от 20 до 40 минут. В процессе должны установиться miniDLNA сервер, Transmission и сам chroot (правда, я предпочёл установить только chroot и доставить остальные плюшки самостоятельно). Если же ты, всё же, решил поставить со стокового инсталлятора и у тебя вылезли проблемы (как на скриншотах ниже), тогда неминуемо правь инсталлятор сам или качай по ссылке выше!

image

image

Но перед началом новой установки нужно грамотно удалить chroot так, чтобы не накрячить пользовательские файлы из смонтированных каталогов:

MyBookLive:~# /etc/init.d/chroot_debian.sh stop MyBookLive:~# /etc/init.d/chroot_debian.sh remove reboot MyBookLive:~# rm -fr /DataVolume/debian/ 

Теперь можно снова начать установку. Важно отметить, лучше это делать с командой sudo, иначе chroot ставит не все пакеты и, как следствие, так же не запускается. Если ты всё сделал, как написал я, то в итоге мы получаем готовую песочницу и стимулятор фантазии. Как ей управлять — подробно описано тут, но всё же, я постараюсь объяснить.

Чтобы запустить chroot необходимо написать в консоли:

MyBookLive:~# /etc/init.d/chroot_debian.sh start 

Сам по себе chroot запускается автоматически во время запуска MBL, но всё же… Во время старта также запускаются сервисы, прописанные в /DataVolume/debian/chroot-services.list. Важно отметить, что имена приложений в этом файле соответствуют именам файлов из каталога /DataVolume/debian/etc/init.d/.

После запуска необходимо войти в среду chroot:

MyBookLive:~# chroot /DataVolume/debian/ 

Пока ты находишься в chroot-среде, ты можешь без боязни устанавливать всё что угодно и экспериментировать! В среде установлен полноценный дистрибутив Debian Wheezy. Это по истине самая настоящая песочница для воображения! Чтобы выйти из среды chroot и вернуться в среду MBL, необходимо ввести команду exit:

(chroot-debian)/# exit 

Чтобы остановить среду, введи:

MyBookLive:~# /etc/init.d/chroot_debian.sh stop 

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

MyBookLive:~# /DataVolume/debian/chroot_debian.sh install 

Удалить среду можно остановив её, а за этим удалив скрипт автозапуска среды. После этого необходимо перезагрузить MBL и вычистить полностью директорию /DataVolume/debian/:

MyBookLive:~# /etc/init.d/chroot_debian.sh stop MyBookLive:~# /etc/init.d/chroot_debian.sh remove MyBookLive:~# reboot MyBookLive:~# rm -fr /DataVolume/debian/ 

Собственно, этим методом я и удалял результат косячной установки chroot в прошлый раз.

Настраиваем chroot

Теперь стоит заняться настройкой chroot-среды под свои нужды. Тут для каждого есть стимул разгулять свою фантазию. Я лишь приведу пример, как это сделал я, поэтому этот раздел носит больше рекомендательный характер. Если мы ещё не в chroot’е, то самое время в него войти:

MyBookLive:~# chroot /DataVolume/debian/ 

Для начала я бы порекомендовал установить 3 важных пакета, которых в среде chroot не оказалось (sudo, wget и cron). Они нам обязательно пригодятся. Поэтому:

(chroot-debian)/# apt-get install sudo wget cron 

Теперь можно расширить список репозиториев системы. Для этого необходимо добавить репозитории в наш /etc/apt/sources.list. Однако в среде chroot у нас есть только один редактор и имя ему – mcedit:

(chroot-debian)/# mcedit /etc/apt/sources.list 

В список нужно добавить эти репозитории, заменив уже существующий набор:

deb http://mirror.yandex.ru/debian/ wheezy main deb http://mirror.yandex.ru/debian/ stable main contrib non-free deb-src http://mirror.yandex.ru/debian/ stable main contrib non-free deb http://archive.debian.org/debian/ lenny main deb-src http://archive.debian.org/debian/ lenny main deb http://ftp.us.debian.org/debian/ squeeze main deb-src http://ftp.us.debian.org/debian/ squeeze main 

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

(chroot-debian)/# sudo apt-get update 

При возникновении проблем с публичными ключами GPG ты уже знаешь что делать (это мы проходили при настройке корневой среды MBL).

По умолчанию установлен текстовый редактор mcedit и лично меня он устраивает, но по желанию можно установить nano, vim, ed и прочие на свой вкус. В таком случае нужно выбрать редактор по-умолчанию:

(chroot-debian)/# update-alternatives --config editor 

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

Теперь, пожалуй, можно установить русский язык в chroot-среде. Лично я предпочитаю использовать английский, но если тебе проще общаться с девайсом именно на кириллице – нет проблем. Всё же, я рекомендую это сделать, дабы избежать проблем названиями файлов на кириллице. Сделаем это следующим образом:

(chroot-debian)/# sudo apt-get update (chroot-debian)/# sudo apt-get install locales (chroot-debian)/# sudo dpkg-reconfigure locales 

После выполнения последней команды, на экране появится список локалей. Необходимо нажимать клавишу Enter до тех пор, пока не появится экран ввода номера локали. Русская локаль находится под номером 349 (пакет ru_RU.UTF-8). Далее будет предоставлен выбор вариантов локалей по-умолчанию. У меня были такие:

1. None 2. ru_RU.UTF-8 

Выбираем второй и соглашаемся с системой. Теперь необходимо покинуть chroot-среду и вернуться в MBL:

(chroot-debian)/# exit 

Добавляем в файлы (через редактор nano, как мы это уже делали выше, когда меняли версию прошивки MBL) /DataVolume/debian/root/.bashrc и /DataVolume/debian/root/.profile в конце по 2 строки:

export LANG='ru_RU.UTF-8' export LC_ALL='ru_RU.UTF-8' 

Сохраняем изменения и снова можем зайти в chroot и проверить, что консоль стала нам отвечать русским текстом. Если появятся проблемы с отображением русских букв, то стоит установить кодировку UTF-8 в настройках PUTTY: Настройки->Разделы->Окно->Кодировка->Кодировка->UTF-8:

image

В качестве приятного дополнения можно установить и приложение для мониторинга температуры жёсткого диска. Лично я посчитал, что это мне может в будущем понадобиться:

(chroot-debian)/# sudo apt-get install hddtemp (chroot-debian)/# hddtemp /proc/1/cwd/dev/sda 

Благодаря этому пакету я теперь знаю, что температура жёсткого диска 63 градуса Цельсия.
В принципе, для меня лично этих настроек достаточно! Двигаемся дальше?

Устанавливаем облачное хранилище ownCloud

Ну что, %username%, именно сейчас начинается, пожалуй, самое интересное. Давно мечтал иметь своё облако, которое не лимитирует объем жёсткого диска. И сабж подходит под все мои хотелки более чем – есть клиент под Windows и Android! Необходимую документацию и дистрибутивы мы без труда можем найти на сайте проекта ownCloud.
Процесс установки расписывать подробно не стану. Весь процесс опирается на эти туториал и пост. Перед началом установки необходимо разобраться с зависимыми пакетами, которые надо проинсталлировать:

(chroot-debian)/# sudo apt-get install apache2 php5 php5-gd php-xml-parser php5-intl (chroot-debian)/# sudo apt-get install php5-sqlite php5-mysql php5-pgsql smbclient curl libcurl3 php5-curl 

Ранее мы уже проинсталлировали пакет wget и он нам сейчас как раз понадобится. Начинаем с его помощью загрузку и установку ownCloud:

(chroot-debian)/# wget http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_12.04/all/owncloud_5.0.11-0_all.deb (chroot-debian)/# sudo dpkg -i /owncloud_5.0.11-0_all.deb 

Если возникнут проблемы с NTP сервером, то просто выполни команду:

(chroot-debian)/# sudo apt-get -f install 

У нас уже есть установленный пакет apache2. Но он не запускается по причине того, что требует для себя 80 порт. Однако, этот порт уже занят апачем корневой системы и на нём висит, не много-не мало, а web-интерфейс MBL. Лично я не захотел лишаться web-интерфейса, поэтому решил, что ownCloud вполне успешно поработает на моё благо на 81 порту. Однако стоит помнить, что для доступа к ownCloud из облака необходимо будет пробросить 80 порт роутера на 81 порт MBL. Остановим апач и отредактируем конфигурацию его портов /etc/apache2/ports.conf:

(chroot-debian)/# /etc/init.d/apache2 stop (chroot-debian)/# mcedit /etc/apache2/ports.conf 

В файле у директивы Listen сменим порт с 80 на 81. Нажмём F2 для сохранения и F10 для выхода из редактора:

image

Теперь снова стоит запустить апач:

(chroot-debian)/# /etc/init.d/apache2 start 

Если мы всё сделали правильно, то по ссылке http://mybooklive:81/owncloud/ должна открыться страница ownCloud! Ура!

image

Теперь нам необходимо создать каталог хранения файлов облака. Я рекомендую для этого создать каталог вне каталога /mnt/Public/, чтобы к данным облака не было публичного доступа. Однако вы сами в праве решать, исходя из своих требований, где этот каталог должен находиться. Приступим:

(chroot-debian)/# mkdir -p /mnt/ownCloud/data (chroot-debian)/# chmod -R a+rwx /mnt/ownCloud 

Так же, если необходимо дать доступ к директори по сети, то необходимо создать аналогичную директорию через web-интерфейс MBL.

Приступим к настройке web-интерфейса. Нам необходимо придумать логин\пароль администратора облака, назначить созданную нами выше директорию с данными, а так же выбрать базу данных. Обычно я отдаю предпочтение MySQL, но в этот раз решил поэкспериментировать с SQLite. В прочем, при выборе MySQL в качестве БД будьте готовы ввести название БД для ownCloud, а так же логин и пароль пользователя MySQL. Если всё готово, нажимаем “Завершить установку”.

image

image

Ура, оно того стоило! Осталось теперь скачать клиент для Windows, OS X, Linux, Android или iOS. Документация доступна тут. Однако, это ещё не всё. Для успешной работы нам также необходимо добавить демон apache2 в файл автозагрузки chroot-среды. Для этого отредактируем файл /chroot-services.list:

(chroot-debian)/# mcedit /chroot-services.list 

И добавим в него строку с именем сервиса:

apache2 

Отлично. Стоит напомнить, что ownCloud – это конечно хорошо, но нагружает он девайс не плохо! По крайней мерее у меня.

Установка Inadyn

Облако — это хорошо, когда оно видно не только в домашней сети, иначе проку с него не много! В решении этого вопроса я воспользовался опытом уважаемого товарища phoenixweiss в его туториале. Однако хочу отметить один важный момент, поэтому прошу сначала ознакомиться с материалом по ссылке! Необходимо, чтобы inadyn стартовал при запуске chroot-среды. В принципе, это сделать не сложно, прописав его в Crontab с директивой reboot, чтобы он поднимался автоматически при загрузке системы. Однако, установив пакет cron и прописав таким образом в него inadyn, получил понимание того, что директива reboot совершенно не работает в chroot.

Подумал! Придумал! Зачем изобретать велосипед, ведь у нас уже есть очень кошерный способ автозагрузки важных для нас пакетов через /chroot-services.list. Им то и решил воспользоваться. Однако, чтобы наш пакет запустился, запускающий файл для пакета должен иметь расположение /etc/init.d/inadyn и реагировать на параметры start/stop/restart/reload/status. Осталось, правда, научиться писать Bash-скрипты, но и это для меня (человека, который второй раз в жизни видит консоль Linux в живую) оказалось не сложно, пару часов гугления и я родил свой первый скрип:

Содержимое файла /etc/init.d/inadyn

#!/bin/sh  # Проверяем параметры запуска case $1 in 	start) # Старт 		# Если пакет запущен, он вернёт свой PID 		if [ -z "$(pidof inadyn)" ]; 		then 			# Если PID пустой, значит пакет не запущен! Запустим пакет 			/usr/sbin/inadyn 			echo "[ \033[1;32mok\033[0m ] Starting DNS Server: inadyn." 		Else 			# Иначе пакет запущен! 			echo "[ \033[1;31mfailure\033[0m ] Starting DNS Server: inadyn already running." 		fi 		;; 	stop) # Стоп 		# Если пакет запущен, он вернёт свой PID 		if [ -z "$(pidof inadyn)" ]; 		then 			# Если PID пустой, значит пакет не запущен и останавливать нечего 			echo "[ \033[1;31mfailure\033[0m ] Stoping DNS Server: inadin is not running." 		Else 			# Иначе пакет запущен. Убиваем его по PID 			for pid in $(pidof inadyn) 			do 				kill -9 "$pid" 			done 			echo "[ \033[1;32mok\033[0m ] Stoping DNS Server: inadin." 		fi 		;; 	restart|reload) # Перезапуск 		$0 stop 		sleep 3 		$0 start 		;; 	status) # Статус 		# По аналогии, выводим статус 		if [ -z "$(pidof inadyn)" ]; 		then 			echo "[ \033[1;33minfo\033[0m ] Status DNS Server: inadin is not runned." 		else 			echo "[ \033[1;33minfo\033[0m ] Status DNS Server: inadin is runned." 		fi 		;; 	*) 	echo "Usage: $0 {start|stop|restart|reload|status}" 	exit 1 	;; esac  exit 0 

Сохраним этот код в файл /etc/init.d/inadyn. Опять же, ленивые без проблем могут скачать готовый скрипт по ссылке. Теперь мы можем добавить строку с названием пакета в файл /chroot-services.list и проверить, остановив и запустив среду chroot Превосходно!

image

Установка torrent-клиента Transmission

Пожалуй, лучший torrent-клиент для MBL – это Transmission. Давайте же быстрее его установим:

(chroot-debian)/# sudo apt-get install transmission-daemon 

Если установка прошла успешно, то по её окончанию будет запущен демон transmission-daemon. Для управления демоном используются следующие команды:

(chroot-debian)/# /etc/init.d/transmission-daemon start (chroot-debian)/# /etc/init.d/transmission-daemon stop (chroot-debian)/# /etc/init.d/transmission-daemon reload 

Тут не сложно понять, что для чего нужно. Так же необходимо поправить настройки transmission-daemon, которые располагаются в файле /etc/transmission-daemon/settings.json. Файл имеет формат JSON. Можно его настроить самостоятельно, а можно скачать мой конфигурационный файл по ссылке, предварительно переправив ссылки на каталоги. С описанием всех директив можно ознакомиться по ссылке. В моём конфиге уже настроен автоподхват .torrent файлов из каталога /mnt/Torrents/Init/ и автоматически начинается скачивание торрентов.

Так же, чтобы демон transmission автоматически запускался со стартом chroot, нужно добавить строку “transmission-daemon” в файл /chroot-services.list относительно корня каталога chroot.

Для проверки результата выполним перезагрузку chroot-среды. Если всё прошло отлично, мы увидим это:

image

Для доступа в web-интерфейс нужно перейти по ссылке http://mybooklive:9091/transmission/web/. Для детальной информации предлагаю посетить сайт проекта, а если кто-то ищет, где утянут gui, то велком сюда!

Теперь наш MBL стал немного круче, чем простая коробочка с Linux на борту. Но это ещё не всё!

Установка медиа сервера MediaTomb

Каждый, конечно, сам для себя решает, какой медиа сервер использовать, однако лично для меня Twonky мало! Стоял выбор между установка miniDLNA и MediaTomb. Сделал выбор в пользу второго.

Для начала остановим работу службы Twonky сервера на MBL. Повредить он нам в принципе не должен, но всё же, лучше отключить его за ненадобностью:

MyBookLive:~# /etc/init.d/twonky stop 

А так же в разделе Settings->Media->Twonky Service в web-оболочке MBL.

image

Далее, переключаемся в среду chroot и запускаем установку MediaTomb:

(chroot-debian)/# sudo apt-get install mediatomb 

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

(chroot-debian)/# sudo apt-get install ffmpegthumbnailer ffmpeg 

Для корректной работы Mediatomb, всё же, я рекомендую установить русскую локаль, иначе кириллические имена файлов в системе и web-интерфейсе будут выглядеть так: “????????????.avi”. Для управления приложением используются команды:

(chroot-debian)/# /etc/init.d/mediatomb start (chroot-debian)/# /etc/init.d/mediatomb stop (chroot-debian)/# /etc/init.d/mediatomb restart 

По аналогии с Transmission, тут всё легко. Теперь стоит немного модифицировать настройки приложения, файл которых расположен в /etc/mediatomb/config.xml. Более подробную информацию по описанию конфигурации можно почерпнуть по ссылке. Однако, можно использовать и мой конфигурационный файл, предварительно заменив в нём 14-ую строку “uuid:88be34d6-51bd-4cd4-a4a3-a663dd068969” на аналогичную из вашего дефолтного конфига (ну а если её там не было – оставляй мою). Судя по опыту интернет-сообщества, у некоторых с такими настройками не стримятся mkv файлы. В таком случае строку 91 моего конфига стоит заменить на одну из строк ниже:

<map from="mkv" to="video/x-mkv"/> <map from="mkv" to="video/x-msvideo"/> 

После этого стоит перезапустить сервер и попробовать попасть в web-интерфейс медиасервера по ссылке http://mybooklive:49152/.

image

Если web-интерфейс успешно открылся, значит всё работает отлично! В нём можно расшаривать директории с медиа-файлами. Осталось теперь прописать mediatomb в автозагрузку /chroot-services.list (последней строкой, сразу после transmission-daemon, нужно добавить mediatomb). После перезагрузки chroot теперь должны запуститься apache2, inadyn, transmission и mediatomb – отлично!

image

У проекта есть сайт, где, естественно, можно найти исчерпывающую информацию. Ещё нашёл хороший faq по mediatomb на русском, мануал по подключению субтитров к mediatomb и информацию по настройке транскодирования (ссылка1, ссылка2). Настраивать их не стал, так как нет по факту телеящика с поддержкой DLNA (его приобретение ожидается только после окончания ремонтных работ дома), поэтому, возможно, на эту тему статью дополню позже.

Установка Monitorix

Monitorix является одним из лучших, на мой взгляд, пакетов для мониторинга состояния железа. Его преимущества заключаются в том, что он по сути не нагружает MBL постоянной генерацией данных, а генерирует их только в момент обращения пользователя к web-интерфейсу пакета. Ну что же, установим его? Для начала нам необходимо установить зависимые пакеты:

(chroot-debian)/# sudo apt-get install rrdtool librrds-perl libwww-perl libdbi-perl libemail-date-format-perl libmime-lite-perl libmime-types-perl  libnet-daemon-perl libplrpc-perl nullmailer 

Какие-то из пакетов уже были установлены, какие-то ещё нет – не страшно! Теперь начинаем устанавливать сам Monitorix:

(chroot-debian)/# sudo wget -P / http://www.monitorix.org/monitorix_3.3.0-izzy1_all.deb (chroot-debian)/# sudo dpkg -i /monitorix_3.3.0-izzy1_all.deb 

Если процесс установки остановится в связи с нехваткой зависимых пакетов, то исправляем ситуацицию:

(chroot-debian)/# sudo apt-get -f install (chroot-debian)/# sudo dpkg -i /monitorix_3.3.0-izzy1_all.deb 

Теперь, когда установка завершена, нам необходимо отредактировать файл /etc/apache2/conf.d/monitorix.conf и заменить в нём соответствующие настройки на код ниже:

<Directory /usr/share/monitorix/cgi-bin/> 		DirectoryIndex monitorix.cgi 		Options ExecCGI 		order deny,allow 		deny from all 		allow from all # Ну или пишем IP-адрес, с которого хотим заходить в web-интерфейс </Directory> 

Теперь перезапускаем apache2 и сам monitorix:

(chroot-debian)/# /etc/init.d/monitorix restart (chroot-debian)/# /etc/init.d/apache2 restart 

И проверяем работу пакета через web-интерфейс http://mybooklive:81/monitorix/.

image

Если всё сделано верно, то ты увидишь тоже, что на скринах выше. Стоит так же помнить, что настройки программы находятся в файлы /etc/monitorix.conf. Вооружившись документацией с сайта проекта, можно настроить самому, ну или скачать мой файл конфигурации.

Заключение

Ну вот, %username%, приложив немного усилий, на выходе мы получили коробку с достойным функционалом, песочницу и стимулятор фантазии. В статье я настроил MBL исключительно под свои хотелки, но перспективы его использования теперь стали по истине безграничными! После установки Chroot мы развязали себе руки, и теперь, словно скульптор, можем приступать к лепке своих творений! Желаю успехов и творческого полёта. И надеюсь, что сообщество с интересом встретит перспективу дальнейшего совершенствования девайса!

ссылка на оригинал статьи http://habrahabr.ru/post/196384/