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

в 21:41, , рубрики: apache2, chroot, Debian, linux, mediatomb, my book live, owncloud, ssh, transmission, Накопители, метки: , , , , , , , ,
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-мордой, кушающее побольше медиа и имеющее возможность конфигурироваться. Twonky67 отметается в силу своей не бесплатности.
  5. Иметь интерфейс для мониторинга состояния девайса, чтобы знать чем он “дышит”.
  6. Кому как, а мне, как web-разработчику, хотелось бы иметь и свой домашний web-сервер под свои личные мини-проекты и разработки (как альтернатива Denwer’у), однако его настройкой займёмся позже, когда у меня будет значительно больше времени.

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

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

Мой энтузиазм был на пределе, так как я помнил первый успешный опыт общения с терминалом своего Debian. Первое, о чём я долго мечтал сделать – это обновить версию прошивки моего MBL. На момент приобретения девайса, на нём была установлена прошивка 02.41.05-034. Последней на сегодняшний день является 02.42.03-027. Не обновлялся исключительно из-за того, что эта процедура неизбежно приводит к стиранию всего установленного мною софта. Но теперь я установлю chroot и всё будет в порядке! Запасся двумя внешними USB-HDD по 750Gb каждый и перенёс все нужные данные с MBL, что настоятельно рекомендую сделать и тебе, %username%. В процессе я успел потереть пару раз файлы на 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 "[ 33[1;32mok33[0m ] Starting DNS Server: inadyn."
		Else
			# Иначе пакет запущен!
			echo "[ 33[1;31mfailure33[0m ] Starting DNS Server: inadyn already running."
		fi
		;;
	stop) # Стоп
		# Если пакет запущен, он вернёт свой PID
		if [ -z "$(pidof inadyn)" ];
		then
			# Если PID пустой, значит пакет не запущен и останавливать нечего
			echo "[ 33[1;31mfailure33[0m ] Stoping DNS Server: inadin is not running."
		Else
			# Иначе пакет запущен. Убиваем его по PID
			for pid in $(pidof inadyn)
			do
				kill -9 "$pid"
			done
			echo "[ 33[1;32mok33[0m ] Stoping DNS Server: inadin."
		fi
		;;
	restart|reload) # Перезапуск
		$0 stop
		sleep 3
		$0 start
		;;
	status) # Статус
		# По аналогии, выводим статус
		if [ -z "$(pidof inadyn)" ];
		then
			echo "[ 33[1;33minfo33[0m ] Status DNS Server: inadin is not runned."
		else
			echo "[ 33[1;33minfo33[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 мы развязали себе руки, и теперь, словно скульптор, можем приступать к лепке своих творений! Желаю успехов и творческого полёта. И надеюсь, что сообщество с интересом встретит перспективу дальнейшего совершенствования девайса!

Автор: kreexus

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js