Как стать автором
Обновить

Хедкраб на страже квартиры. Еще и на машинке вышивать умеет



Все и сразу


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


Этому решению уже пара лет, поэтому фотографий в процессе не будет. Я рассмотрю его преимущественно с точки зрения видеонаблюдения и парочки других интересных на мой взгляд аспектов. Что-то из информации уже могло устареть.

Технические требования вылились в некую изначальную минимальную конфигурацию для первого этапа:
  • Энергоэффективность повлекла за собой двухъядерный Atom на mini-ITX плате с пассивным кулером
  • Файлопомойка и торренты в купе с предыдущим пунктом «зеленый» HDD на 2 Tb
  • 2 Gb б/у RAM купленной по случаю по прикидкам должно было хватать для моих нужд
  • Максимально бесшумный БП


Здравствуйте, это канал об аниме?


Имея на руках такой минимум, конечно же захотелось его опробовать. За неимением корпуса и нормальных кнопок включения/перезагрузки, все эти действия производились замыканием контактов кончиком ножниц, к чему никого не призываю. Стоит ли говорить, что выбор пал на Linux для установки? Однако стОит упомянуть, что ОС не хотела ставиться с флэшки, пока я не накатил штук 5 апдейтов на BIOS, причем в строго определенном порядке, и это несколько смутило меня в то время. Однако же Ubuntu 11.х радостно встала и подарила много затянувшихся вечеров и ночей любви, позволяя себя изучать, ломать и переставлять. Об этом этапе жизни людей есть много статей и ресурсов.

А что это вы тут делаете


На мой взгляд, в деле видеонаблюдения неброскость никому не мешала, поэтому если и делать глазок, то только не выдающим себя. Отсюда простая логическая цепочка. Внешний вид обычного глазка. Никаких устройств сверх самого глазка. Значит инфракрасная подсветка и массив торчащих и отливающих красным источников света отпадает, тогда остается только высокая чувствительность.

Убедившись, насколько это вообще можно в России при наших законах и судах, в законности этого подхода, начал поиск подходящей камеры. Согласно исследованиям того времени, ч/б CCTV экземпляры имеют значительно более высокую чувствительностью, нежели цифровые. Практически единственный годный вариант, готовый к употреблению — KPC-190DV.

Очевидно, что просто так компьютеру мало интересен аналоговый сигнал, даже если забить молотком BNC разъем в USB. На самом деле этот пункт был продуман до покупки системы, потому к тех. требованиям добавился обязательный PCI порт для какой-то платы-адаптера.
Первой попыткой было прикрутить к этому всему ТВ-тюнер. Сразу скажу, что идея была не очень удачная, поэтому следующим шагом стала специализированная плата видео захвата. Они позволяют подключать одновременно N аналоговых камер, поддерживают кодирование на лету и что-то еще жутко полезное.

Параллельно изучались возможные программы для работы с видео потоком, в процессе которого я наткнулся на avreg.net от соотечественников. Их сайт был крайне полезен при выборе платы захвата, т.к. содержит перечисление поддерживаемые карточки и понадобившееся позднее ссылка на драйвера под Linux. Сами разработчики тоже оставили приятное впечатление от общения по каким-то вопросам возникшим у меня, однако в итоге что-то не срослось, и я выбрал не их продукт. Тем не менее, была выбрана карта Orient SDVR-404A на процессоре Techwell TW6805A.

Голый Motion при своем некотором минимализме, полностью подходил под мои задачи. Отдельным тонким моментом был подбор выдаваемого им разрешения. Камера выдает сигнал в ТВЛ, нам же нужно разрешение в пикселях. Поиск показал, что единого и общепринятого отображения ТВЛ в пиксели нет, но путем каких-то расчетов, в интернетах кто-то выдал цифры: 768*576. Они стоят у меня и по сей день и вполне устраивают.

Для большей надежности системы от проблем в духе «ой, и регистратор вынесли», которыми страдают решения с простыми аппаратными рекордерами, выбрано очевидное решение: камера пишет в папку DropBox`а. Немножко статистики из практики: месяц жизни моего самого верхнего этажа занимает примерно 1-1,2Gb при записи кадров с движением, плюс к каждому видео один jpg снимок с «наибольшим количеством движения».

Нельзя просто взять и купить mini-ITX корпус


Этим все сказано. Нужен был корпус, позволяющий вместить еще и PCI карточку: прощайте тонкие и аккуратные корпуса-книжки. В поисках эстетики отбор шел больше по изображениям, нежели техническим характеристикам, кроме вместимости. Я долго не мог поверить, что это корпус для ПК, но уже попался: Lian Li T1. К сожалению меньшинства человеческой расы, готового покупать это, данная модель находится в «Historic» секции сайта. Он обладает всеми очевидными недостатками, как то: сборка пыли, большая занимаемая площадь, весьма условная устойчивость ног. Если в статике он еще ничего, то атаку ребенка или запрыгнувшую кошку уже не выдержит. Но этот вид оправдывает все, пока он есть, даже если, вместо элегантности, упомянутой в начале, вышло что-то иное.

Во славу роя


Судьба или слепой случай свел меня с прекрасной девушкой, которая нередко лицезреет спину теперь уже мужа за спасением мира от очередной напасти, в том числе и в StarCraft. Она и предложила оживить большую страшную конструкцию на подоконнике, заменяющую собой цветы, чарующими звуками зергов.

Не уверен, что она хоть на грамм говорила серьезно, но я скачал около 80 мегабайт звуков этой прекрасной расы и начал под них медитировать, и на меня снизошло озарение. В жертву рою была принесена USB гарнитура c отказавшей вибрацией на басах и микрофоном. Все было разобрано, а ненужное вырезано, выпаяно, обрезано, обмотано богохульной зеленой изолентой. Итогом стала вот такая катушка из двух скрепленных останков. Кричит она достаточно громко, чтобы услышать звук из кухни и шокировать новых гостей, если нет шумов громких; но достаточно тихий, чтобы не вздрагивать сидя близко.


Взяв друга, более меня разбирающегося в bash, поставил цель: воспроизводить случайную «реплику» в случайное время в рамках диапазона. Лень вынудила меня на этот постыдный поступок, вместо самостоятельного изучения bash, но такова правда. После того, как костяк скрипта был готов, некоторое время мне пришлось потратить на поиск легкого аудио плеера, который можно запускать без GUI из bash с параметрами. Были найдены несколько штук и опробованы в бою. Эксперименты показали, что звучит это крайне резко и неестественно. Победителем стал VLC в своей инкарнации cvlc. Я смог на нем настроить что-то вроде плавного нарастания звука у каждого нового трека как для переходов между песнями.

Два года круглосуточных хрипов, хлюпаний, предсмертных воев и визгов не смогли помешать ни свадьбе, ни психическому здоровью нас и кошки Тушёнки. Кажется…


Сам скрипт, прописанный в автозапуск:
#!/bin/bash

play_random_sound()
{
	b=($@)
	rnumber=$((RANDOM%${#b[*]}))
	cvlc --play-and-exit ${b[$rnumber]}
}

IFS=$'\n'
i=0
a={}
for NAME in $(find ~/Dropbox/Zerg -type f)
do
	a[$i]=$NAME
	i=`expr $i + 1` 
done

while true; do
	play_random_sound ${a[@]}
	time_to_wait=`expr $((RANDOM%3500)) + 5`
	sleep $time_to_wait
done


Там вашу маму в телевизоре показывают!


Motion можно мониторить на сконфигурированном порту, в моем случае:
Каждый раз, чтобы узнать, кто стучится, открывать браузер и ссылку на практике оказалось чуть менее удобно, чем ожидалось. Решение оказалось довольно простым. Для связи карточки и видеоглазка изначально был куплен тройной «сиамский» кабель RCA/RCA/DC. Второй «тюльпан» задумывается производителем для звука. Но что могло мне помешать купить разветвитель и заполучить сразу два кабеля с сигналом? Правильно, поэтому был заказан маленький дисплей для парковочной камеры автомобиля и разветвитель, чтобы присосаться к одному блоку питания с камерой. Таким образом, сигнал параллельно идет на дисплей и карточку. Камера имеет соотношение сторон не адекватное разрешению, поэтому вид у всего очень растянутый.


Дополнительные опции


Параллельно с остальными задачами мой домашний Зергокраб держит на себе:
  • Торренты / Deluge
  • Файлопомойка / Samba
  • Виртуальная машина с Redmine/SVN/FTP по большей части работавшая из коробки с сайта www.turnkeylinux.org / VirtualBox
  • Удаленный доступ / Team Virewer
  • Все это запитано через UPS от APC. Просто пальцем в небо, плюс немного комментариев с Яндекс.Маркета, плюс скидка в Ситилинке. В общем, думаю, все как у всех. На него заведено самое необходимое: Хедкраб, роутер, питание камеры и дисплея.
  • Роутер из простых моделей TP-Link в стоковой прошивке поддерживает no-IP и DynDNS, что используется для доступа на виртуальную машину с Redmine/SVN/FTP. Она объявлена как DMZ на роутере, который в свою очередь физически установлен на «брюшке» домашнего сервера. На мой взгляд выглядит приемлемо-гармонично.


Юридический аспект


Он просто есть и уже неплохо изложен по ссылке в самом начале. Надеюсь, что вся эта система никогда не пригодится, но возможно когда-то она поможет мне или соседям. Кстати еще на одной двери лестничной клетки глазок подозрительно похож на мой…

С чем не удалось справиться и ограничения


В связи с спецификой кажется дров на карточку, пришлось перебороть себя и отказаться от современных версий Ubuntu. Финальная версия живет на 10.10 LTS.

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



Вот такая без прикрас история домашнего животного сервера.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.