На Гиктаймс уже не раз и не два размещались статьи про сборку своего домашнего NAS/медиа-сервера/ТВ-приставки и тому подобных произведений чешущихся и относительно прямых рук. Для тех, кто любит подобное рукоблудие, или планирует сам заняться таковым, ниже представлена еще одна вариация на эту тему.
Началось все 26 лет пару месяцев назад, когда на работе стало намечаться явное затишье, и уровень решения технических задач в крови начал понемногу падать. Захотелось чем нибудь занять руки и голову. Так как начинать ремонт в квартире в преддверие зимы — не очень хорошая, да и в целом затратная идея, выбор пал на что-нибудь не столь глобальное. В частности на системный блок, подключенный к телевизору в гостиной, используемый для просмотра локально лежащих фильмов/сериалов, торрент ТВ, хранения в себе кучи жестких дисков с «очень полезной информацией» и самое главное — музыкальной коллекцией и дампом базы одной не очень легальной интернет библиотеки.
Да, да, да. Как кто-то сказал:
Мадам, я старый пират, и мне не известны слова лицензионного соглашения.
Решение принято: хочу избавиться от большой шумной коробки, которая стрекочет кучей жестких дисков, а так же заменить модель управления с мыши и клавиатуры на что-нибудь вроде пульта или смартфона. Также, попутно было бы неплохо организовать доступ к музыкальной коллекции из внешнего мира с возможностью прослушивания из откуда угодно.
В лучших традициях тайм менеджмента ставим себе список целей, которых хотим достигнуть:
По железу:
- Нужен компактный корпус
- В который можно запихнуть много жестких дисков
- Он должен быть тихим
- Делать его будем самостоятельно (все ведь ради того, чтобы занять себя)
- Результат должен быть не сильно страшным (иначе не получить добро супруги на установку его на видном месте)
По софту:
- Результат должен управляться без мыши/клавиатуры
- Помимо локально библиотеки видео необходим доступ к «Торрент ТВ»
- Торрент качалка, чего уж там
- У всего этого должен быть простой и понятный интерфейс
- Доп. цель 1: Получить доступ к музыкальной библиотеке извне
- Доп. цель 2: Получить возможность искать и загружать на смартфон книги из домашней библиотеки
Железная часть
Итак пора закончить мусолить идею и приступить к ее воплощению. Рассчитываем на использование комплектующих легко доступных и легко модернизируемых форм факторов, так как во первых — чтобы упростить возможность последующего апгрейда и во вторых — так как у меня уже имеется microATX мат плата Elitegroup H81H3-M4, а так же процессор core I3 4150 и пару планок DDR3 памяти для нее.
Первым делом необходимо определиться в форм фактором корпуса и расположением компонентов внутри него. Помимо материнской платы внутри у нас еще будет жить аж 4 полноразмерных жестких диска различной емкости и производителей, а так же надо придумать что-то с питанием и отсутствием шума.
Изначально очень не хотелось располагать внутри корпуса разобранный ATX блок питания. Во первых он требует какого-никакого дополнительного охлаждения, а во вторых сам по себе довольно не маленький. К счастью, к нам на помощь приходят наши братья-китайцы с вот такой замечательной вещью:
Одним концом это замечательное изделие подключается непосредственно к 24-х пиновому разъему питания на мат плате, а вторым к внешнему 12-ти вольтовому блоку питания необходимой мощности. В описании к преобразователю говорится, что он работает при нагрузках до 160 ватт, чего с лихвой должно хватить под нашу задачу.
Для того, чтобы сразу заказать БП для этого преобразователя пришлось на коленке подсчитать предполагаемую мощность для него. Согласно данным на жестких дисках, каждый из них будет потреблять около 7-10Вт при работе. Плюс стоит учитывать, что при запуске дисков их потребление краткосрочно может достигать 150% от номинального. Соответственно для 4-х жестких дисков с запасом должно хватить около 60Вт. Дальше — труднее: для процессоров и материнских плат найти аналогичные значение очень не просто: для процессоров везде указывается только TDP — количество рассеиваемого тепла, но ни в одной спецификации Intel не указывает именно потребляемую мощность (хотя буду рад узнать, что я не прав, если меня кто-либо ткнет лицом в место, где это можно посмотреть), аналогичная ситуация с производителями мат плат. Для мат платы приблизительно смог вспомнить, что пару лет назад где то читал о том, что потребление типичнго представителя Low-end класса не превышает 20-30Вт. Соответственно, учитывая что сейчас все зациклены на экономичности железа, это значение смело можно уменьшать до 18-20Вт. Для процессора же не оставалось ничего, кроме как трезво представить, что современный Core I3 ну никак не может потреблять больше 40-50Вт. Итого получилось что теоретически мне должно хватить 120 ваттного блока питания.
Забегая вперед могу сказать, что мои расчеты оправдались, и заказанный мной 12-ти вольтовый блок питания на 10А вполне себе справился с поставленной задачей и успешно питает медиа-сервер, не смотря на мои сомнения в том, что надписи китайцев будут сильно расходиться с реальной мощностью БП.
Избавившись от самого неоднозначного компонента, не долго мудрствуя набрасываем приблизительную схему будущей коробочки, и представляем себе сколько и каких деталей нам потребуется изготовить:
Не особо мудрствуя материнскую плату и отсек с жестким дисками было решено расположить в горизонтальной плоскости, рядом друг с другом. Жесткие диски сначала собираются вместе с отдельный блок, выполненный из длинной детали, расположенной справа на наброске, согнутой в виде буквы «П», после чего она устанавливается внутрь основного корпуса и прикручивается к ее нижней стенке. Для гашения вибрации внутренняя сторона детали будет оклеена тонким поролоном.
Между отсеком с жесткими дисками и материнской платой устанавливается дополнительная перегородка, которая будет дополнительным ребром жесткости, а так же будет упором для верхней крышки корпуса, и не позволит ей «играть» из-за отсутствия упора.
Первоначальный набросок проходит несколько доработок, на нем продумывается как будет реализовано охлаждение, порты, кнопки, после чего он плавно перерастает во вполне себе аккуратный чертеж (FRW, DWG, PDF), выполненный в духе полного наплевательства на все нормы проектирования:
К этому моменту очень остро встал вопрос из чего же собственно все это «счастье» изготавливать и как скреплять между собой. Выбор, естественно пал на самый доступный подручный материал: боковые панели от старого, ушедшего в лучший мир башенного сервера. Опять же забегая вперед, могу сказать, что это решение было и удачным и не удачным одновременно: с одной стороны — корпус получился очень монументальным, не скрипучим и не «играющим», но с другой стороны — в собранном виде коробочка весит ~7 кг, что для компактного медиа-сервера мягко говоря не мало. Так же толщина и качество металла сильно снизили скорость скорость работ.
Но раз уж выбор сделан. назад пути нет. Не особо придумав как по быстрому качественно перенести чертежи на металл, я просто распечатал детали в размере 1 к 1 (кстати, именно к таких пропорциях выполнен чертеж, на случай, если кто-то попробует пройти по моим стопам), и приклеил к металлу обычным канцелярским клеем-карандашом. Между прочим, очень удобное решение: приклеенный чертеж держится достаточно крепко, чтобы не отвалиться во время резки или сверления (только надо проследить, чтобы клей был нанесен по всей поверхности соприкосновения металла и бумаги) и в то же время, по завершении работ, отработавший чертеж удаляется в месте с клеем с металла в считанные секунды под струей теплой воды. После приклеивания становится ясен фронт работ:
Первоначально предполагалось выполнить распил при помощи болгарки с последующим наведением лоска. Однако первые тесты (на отдельно взятом листе металла) показали, что после обрезки, выполненной таким образом у меня вряд ли получится что-либо собрать, из-за чего пришлось отказаться от этой затеи в пользу вполне себе ручной и неторопливой ножовки по металлу, а так же дремеля для экстренных случаев и мест где нужна особая точность.
Первый блин, вопреки ожиданиям, оказался совсем не комом, и «всего» через полтора часа активной работы ножовкой (не берите для поделок толстые серверные корпуса) на выходе был первый материальный плод трудов:
В последствии этап распила затянулся на две-три недели, так как на одну деталь в любом случае было необходимо выделить не менее 2-3 часов (после распила необходимо выполнить обработку краев дремелем с абразивной насадкой, чтобы не остаться без пальцеа), из-за чего каждый вечер заниматься этим не было желания. Но, как известно, вода камень точит, и через некоторое время был готов вот такой набор:
Как можно заметить, из восьми планируемых деталей, здесь лежит всего 6. Это потому что, как только было выпилено дно корпуса и стойка для дисков, руки тут же потянулись к параллельному развертыванию и отладки программной части, в связи с чем над телевизором временно поселилась вот такая инженерная конструкция:
В процессе сборки скелета корпуса был обнаружен фундаментальный и не исправимый баг, с которым пришлось мириться: плата, преобразователя, подключающая в 24-х пиновый разъем питания на материнской плате оказалось достаточно толстой (так как там 2 платы) и упиралась в одну из планок оперативной памяти, из-за чего и та и другая оказались под небольшим углом в 5-7 градусов, как это видно на ужасной картинке ниже:
Преобразователь во время работы, естественно, греется. И, естественно, самой горячей частью он прижат к планке памяти. Однако меня частично успокаивает, что преобразователь и память находятся вплотную к краю платы с той стороны, где в последствии окажется корпусный вентилятор. Так как он будет находиться буквально в 2 сантиметрах от всего этого безобразия — будем надеяться тепло от преобразователя будет отводиться достаточно эффективно, чтобы не привести к выходу из строя одной из планок памяти.
Про программную часть я расскажу после аппаратной, поэтому пока не будем на нее отвлекаться, и продолжим наши упражнения с ножовкой и дремелем. Точнее ножовка нам далее уже не поможет и ее придется отложить в сторону. Ее место теперь займет дрель. При помощи дрели и дремеля выполняем сверление и пропил всех технических отверстий, предусмотренных конструкцией:
Хозяйке на заметку: несмотря на то, что более дорогие «алмазные» отрезные диски для дремеля (от 100р) гораздо более долговечные, режут они значительно хуже, чем обычные отрезные диски по металлу за 20р, так как они сами выполнены из металла, и в процессе резки сильно нагреваются. Приходится делать остановку каждые 5-7 см (еще раз привет толстому металлу серверного корпуса) и прибегать к стакану с холодной водой для охлаждения диска. Сам металл при резке таким диском так же сильно нагревается.
Однако, такой диск просто незаменим при разметке изгибов. При отсутствии специального оборудования для гибки металла, в домашних условиях это можно сделать следующим образом:
- По будущей линии сгиба (на моих чертежах — пунктир) алмазным отрезным диском пропиливаем небольшую канавку (не увлекаемся — не более трети миллиметра, нам просто нужно чтобы металл согнулся ровно по ней, а не начал рваться по этой линии)
- Начиная от края, плоскогубцами слегка приподнимаем отгибаемый край (градусов на 15, не более) продолжаем упражнение на протяжении всей длинны детали, смещая плоскогубцы не более, чем на сантиметр за раз
- Как только мы получили угол в ~15 градусов, начинаем все с начала, доводя угол до ~45 градусов
- За 2-3 итерации доводим угол до прямого
- располагаем деталь на краю условного верстака с ровным прямым углом, и простукиваем получившийся изгиб молотком для того, чтобы сравнять неизбежно получившиеся волны на металле
Чем не торопливее выполняется данная процедура, тем более ровный изгиб получится в результате. Ключевую роль играет постепенное поднятие изгибаемой части детали, так как слишком резкий изгиб приведет к появлению очень больших волн на загнутом краю, от которых будет очень трудно избавиться.
Итак, у нас есть детали, в них вырезаны все необходимые отверстия, в нужных местах выполнены загибы, в которых будет выполняться скрепление деталей самое время собрать все это воедино, чтобы выполнить окончательную подгонку, и сгладить неизбежные неровности. Засовывать «кишки» в корпус мы пока не будем, так как после сборки нам предстоит еще один этап шлифовки, а может и обрезки краев, но некоторые технические элементы на корпусе закрепить все таки надо, чтобы убедиться в том, что они подходят на свои места, и не мешают сборке и установке прочих компонентов:
Так как сердцем нашего медиа-центра является ни разу не холодный Core I3, и жестких дисков в него вставлено не мало, от активного охлаждения отказаться не удалось. Поэтому для минимизации шума были взяту два 12-ти сантиметровых корпусных вентилятора без регуляции оборотов (безжалостно были срезаны со старых БП вместе с хромированными решетками и, бинго, оказались подшипниковыми, что очень хорошо) и подключены к 5-ти вольтовому питанию. На минимальных оборотах уровень шума на грани слышимости — любой, даже самый тихий бытовой звук — будь то птицы за окном, хождение по комнате или храп кота напрочь заглушают тихий шелест кулеров.Кнопки включения и перезагрузки приобретаются в ближайшем отделе радиодеталей на ваш вкус.
Раз уж хромированные решетки кулеров задали тон, то для сборки корпуса будем использовать алюминиевые вытяжные заклепки, которые будут размещаться поверх облицовочного материала — они дешевы, просты в монтаже и немного разбавят наш уныло черный ящик.
После часа сборки и подгонки деталей друг к другу получается наша бета версия корпуса:
Жесткость металла вновь сыграла с нами злую шутку — из-за ручной гибки дна и крышки корпуса (на этих деталях подгиб осуществлялся со всех 4-х сторон) обе детали немного повело по диагонали. для исправления данного досадного бага, в загнутых частях пришлось выполнить перпендикулярные пропилы, для придания деталям некой гибкости. После этих, а так же еще нескольких небольших правок, все выступающие части были нежно зашлифованы, все неровные углы были безжалостно выправлены, а все не идеальные прорезы были решительно исправлены.
Когда на весах перфекционизма и чувства реальности стало намечаться какое-то равновесие, было принято волевое решение что пора наводить красоту, и выполнять окончательную сборку (особенно учитывая, что софтверная часть была уже давно готова, одобрена супругой и во всю использовалась даже в виде отдельно лежащих комплектующих).
Так как для качественной покраски металла, которая предполагалась изначально, в идеале необходимо убирать старую краску, добиваться сглаживания всех изъянов да и искать где-то место, где будет выполняться сама окраска (на улице к этому моменту уже стало глубоко за ноль), пришлось плюнуть на это дело, и прибегнуть к услугам виниловой самоклеющейся пленки. И опять же: это было очень хорошее решение: обработка одной детали заняла менее 10 минут (за исключение задней крышки с ее вентиляционной решеткой), а результат позволил скрыть мелкие огрехи, которые неизбежно бросаются в глаза.
Уже через полтора часа вместо страшненького но целого корпуса передо мной лежала груда симпатичных, но снова разобранных деталей:
В из-за приступа воспаления чувства прекрасного, оклейке подверглись даже внутренние детали, скрытые от глаз:
Итак, все пути назад окончательно отрезаны и пришло время произвести окончательную сборку после которой будет самое время либо торжествовать победу, либо прочувствовать горечь поражения.
Небольшой факап: блок жестких дисков с питанием и SATA шлейфами и фронтальные кулера до этого не оказывались в корпусе одновременно, в связи с чем при сборке был обнаружен неприятный сюрприз: уместить кабеля так, чтобы они не лезли в кулер оказалось очень не просто. Из-за этого пришлось заняться аккуратной укладкой проводов, хотя изначально это не планировалось (все равно даже верхнюю крышку решил посадить на заклепки, что бы руки не чесались туда лезть).
Так как изначально на преобразователе были доступны только один SATA и один MOLEX коннекторы — их пришлось срезать и переделать под свои потребности: один SATA коннектор заменить 4-мя, а MOLEX остался для подключения охлаждения. Очень удобно оказалось то, что преобразователь очень компактный, и из него выходит только 2 набора проводов (вход для БП и выход для периферии) — в процессе укладки кабелей он не мешается, и его можно подключить когда уже все готово и спрятано.
Из-за конструктивных особенностей корпуса, материнскую плату пришлось поднять на нестандартную высоту (использовалось 3 стандартных стойки для материнской платы, вкрученные друг в друга). Это позволило все километры проводов уместить непосредственно под платой. Весь вид портит только пучок хаотичных разноцветных проводов от передней панели и кнопок включения, идущий в тайник под платой. Один из SATA шлейфов рыжий, чтобы через 5 лет все таки вспомнить на каком из дисков установлена система (ну, и еще это просто стильно). Немного синей изоленты (левый нижний угол) для душевного спокойствия — производитель не озаботился тем, чтобы заизолировать места соединения проводов и контактов разъема, а мне было лень распаивать их, чтобы одеть термоусадку. К тому же разъем выведен достаточно далеко от всего остального:
Как истинно рисковые люди, сначала закрываем верхнюю крышку, закрепляем ее заклепками и делаем несколько фото, а уже после этого подключаем все это к телевизору, и проверяем не забыли-ли мы чего-нибудь подключить:
Знаете как трудно в ручную ровно высверлить ровно 100 дырок в металле? Вот и я не знаю — я высверлил их не ровно:
Пригодились пробковые самоклеящиеся ножки для мебели: при немаленьком весе корпус стоит основательно, при попытке подвинуть его делает это неохотно, и бесшумно. Так же видны волны на стыке между нижней и передней стенкой корпуса — тот самый результат стишком поспешной гибки металла:
Но несмотря не оставшиеся небольшие изъяны, все это довольно органично поселилось под телевизором, рядом со старыми добрыми Microlab SOLO 2:
На протяжении всего процесса сборки, мне казалось, что я все таки немного переборщил с размерами, но в итоге корпус оказался вполне приемлемых размеров: 35x22x15 см. Обошлась бы мне покупка заводского корпуса дешевле? Да. Определенно да. Одних только материалов инструментов и прочих мелочей было куплено более чем на 2 тыс. рублей. И это без учета того, что на неспешное изготовление корпуса у меня ушло не меньше 50 часов. Оправдывает ли результат ожидания? Лично я получил то, что хотел: небольшой и очень тихий корпус, а так же занятие для рук и головы в свободное время (ведь именно это было первоначальной задачей). Если же цель просто получить корпус — то гораздо выгоднее потратить эти 50 часов на зарабатывание денег и купить заводской вариант.
Программная часть
С железной частью мы разобрались. Теперь посмотрим что у нас с софтом, и что же мы получили от этой коробки. Звезды сложились так, что я оказался скорее Windows администратором, в связи с чем выбор программной платформы для меня не был особым душевным терзанием, однако, все используемые мной в качестве «дополнительных обвесов» продукты имеют свои Linux и MacOS версии и являются открытыми или просто бесплатными.
Первое, что было установлено после развертывания ОС, ее обновления и создания пользователя без администраторских прав это открытая система домашнего кинотеатра KODI (ранее так же известная как XBMC). Из всех протестированных вариантов оболочек для домашних кинотеатров это, пожалуй, самая гибкая и расширяемая. Помимо встроенного функционала управления локальным контентом KODI поддерживает дополнительные плагины, которые ставятся как из официального, так и из сторонних репозиториев. Без особого труда KODI был очень легко подружен с «Торрент ТВ» (согласно инструкции на сайте самого «Торрент ТВ»), а так же с кинопоиском и рутрекером (посмотрим, перестанет ли работать в Казахстане после блокировки). Взаимодействие с плеером работает по следующей схеме: по названию, или каким либо критериям из базы кинопоиска выбирается какой-либо фильм/сериал, на экране отображается вся информация о нем, а так же волшебная кнопочка «скачать/смотреть», при нажатии которой выводится список найденных на трекере раздач этого фильма. После выбора раздачи он автоматически передается торрент клиенты для загрузки. Закачка выполнятся последовательно идущими блоками, что дает возможность начать просмотр фильма сразу же после постановки его на загрузку. Управляется все это чудо при помощи приложений для Android и iOS. На всякий резервный случай, или для особых «эстетов» так же подключена вот такая штука:
Рассматривать платформу KODI более подробно в рамках данного поста не вижу особого смысла, так как про него может быть сказано множество слов, и на нем может быть реализовано очень не мало идей. По желанию сообщества — про это могу написать отдельную статью, поэтому движемся дальше.
Так как все основные цели для ПО оказались достигнуты, обратим взор к дополнительным пунктам: вывешивание свой музыкальной коллекции лицом в интернет, чтобы всегда иметь к ней доступ. Эдакий свой, карманный, Google Play Music, столь любимый и используемый мной даже после перехода с Android на iOS. В силу определенных причин в течении еще 10 месяцев я не смогу пользоваться этим сервисом: неприятной неожиданностью оказалось то, что в год можно подключить к нему только 10 устройств, а отключить только 4. Это обстоятельство вгоняет меня в непреодолимую печаль. Изначально я пытался развеять ее при помощи веб интерфейса KODI, однако работал он на удивление не стабильно на 40-ка мегабитном канале, и не решал проблему с проигрыванием музыки на смартфоне. Хотя, я могу ему это простить, ведь он рассчитан в первую очередь на работу внутри локальной сети и проигрывания видео/аудио локально. Поэтому пришлось обратиться к поисковику, который выдал мне для решения моей проблемы просто прекрасный инструмент: Plex Media Server.
Суть ПО очень проста: оно берет вашу uPnP библиотеку, и позволяет получить к ней доступ из любой точки мира посредством веб браузера, или мобильных приложений для любой платформы. Так как часть платформы реализована на стороне разработчика настройка предельно проста: достаточно на сервере и клиенте/сайте app.plex.tv/web выполнить вход и использованием своей записи, и магия случится: в клиенте или браузере можно получить доступ к своей аудио/видео/фото библиотеке. При этом на стороне сервера при воспроизведении будет происходить перекодирование видео/аудио на лету в формат гарантированно понимаемый устройством. Для узких каналов можно выбрать качество воспроизведения. Доступ работает даже если сервер не смотрит напрямую в интернет, или не имеет статического IP адреса (не критично, так как все равно пришлось настроить проброс портов на маршрутизаторе для других целей, но бонус приятный).
Однако, есть одно неприятное ограничение для мобильных клиентов: если на телефоне/планшете вы хотите смотреть/слушать через приложение, придется заплатить либо за подписку, либо за разблокировку этой функции. При этом даже не телефона вполне комфортно пользоваться приложением через браузер, но ради такой приятной функции я не по жадничал и честно приобрел платного клиента для себя и для супруги — она теперь тоже в восторге: любимые сериалы в FullHD качестве без тормозов (в рамках города скорость загрузкивыгрузки файлов на мой импровизированный сервер составляет около 3-4Мб/сек) всегда под рукой.
Следующий вопрос — доступ к библиотеке. Тут все оказалось даже проще, чем я думал: моя библиотека — куча zip архиов и inpx индекс файлов. Для просмотра всю жизнь использовал открытый freelib, в котором после установки одной галочки в настройках включается веб интерфейс для поиска книг в каталоге, или запускается OPDS сервер, для работы с которым для всех платформ есть множество приложений.
Казалось бы что еще необходимо для счастья? Анн нет. Остановиться теперь не так то просто. Сущность человека такова, что ему всегда будет хотеться чего то большего, чем он уже имеет. Вот и я пошел на поводу у чувств, и решил, что оставлять еще одно применение сервера в моих условиях будет просто непростительным, и развернул на нем сервер SeaFile . Конечно, домашнему облачному хранилищу далеко тягаться по отказоустойчивости в такими гигантами как Google или Microsoft, но и дать безлимитное дисковое пространство со скоростью загрузки/выгрузки в 3-4 Мб они мне не в силах.
К этому моменту я понял, что мои идеи о полезной нагрузке на эту несчастную коробки иссякли и последнее, чем осталось озадачиться — вопрос резервного копирования (да, я уже принадлежу ко второй группе людей — которые уже делают резервные копии), который я, правда, еще не осилил так как колеблюсь между каким-нибудь простым и бесплатным решением и столь любимым мной, но платным Acronis.
Вместо заключения
Часть статьи, посвященная программному обеспечению получилась несколько скомканной, но это из-за того, что каждый из продуктов заслуживает отдельной статьи, поэтом буквально в паре предложений пришлось описывать возможную функциональную нагрузку каждого из них.
Надеюсь, что кому то окажутся полезными мои заметки, а кто-то откроет для себя описанные мной прекрасные бесплатные программные продукты.
Если у вас остались еще какие либо вопросы, которые я по вашему мнению раскрыл не достаточно, либо которые заслуживают отдельной статьи — пишите об этом к комментариях.
И благодарю за внимание тех немногих, кто дочитал до этого места.
P.S.: Крайне принципиальный habrastorage все вертикальные картинки положил на бок (в принципе я с ним согласен — так с ними и надо, чтобы не повадно было), но снова все разбирать, чтобы сделать «правильные» фотографии я не буду, так что прошу принять все как есть.
Автор: 2FED