Сегодня 16 марта, воскресенье ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7279
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Леонид Каганов
Леонид Каганов
Голосов: 2
Адрес блога: http://lleo.livejournal.com/
Добавлен: 2007-12-13 21:28:18 блограйдером Luber
 

Домашний сервер и помидоры

2014-07-07 19:48:27 (читать в оригинале)


Рассказываю. Как вы наверно помните, у меня дома долгие годы живет домашний сервер (пост о концепции домашнего сервера 2010/04/27), который занимается всякими разными задачами от раздачи интернета до квартирной электроники и прочих экспериментов. Сервер впервые был поставлен господином Морозовским году так в 2001, с тех пор пережил много переездов с железа на железо (в основном с помощью господина Семеняки), но дальнейшее его обслуживание становилось все тяжелее и тяжелее. В последние годы это была большая пыхтящая машина с кучей воткнутых карт и сопутствующей периферией:


Концепция домашнего сервера вообще-то подразумевала, что сервер един, и я им полностью управляю. На самом деле это было не так. Отдельно от нее виcела коробочка WiFi Dlink, которая грелась и раз в несколько лет сжигала свой блок питания. И как она раздает свой WiFi — никаких тонких инструментов у меня не было. Сервером я не управлял тоже — хитроумно настроенная FreeBSD 6.2 со слетевшими портами была сильно выше моей квалификации и не поддавалась никакому управлению, а Семеняка был занят. Постепенно начала сыпаться и квартирная электроника — отказал сканер отпечатка пальца, из-за поплывших параметров электроники в LPT-порту заглючила система звонков. Я отказался от LPT-порта и (после обсуждений 2013/04/08 перешел на Ардуино. К сожалению, проклятая FreeBSD 6.2 категорически не желала отправлять Ардуине команды — могла только принимать. А обновить FreeBSD со всеми ее jail, dhcp-серверами и хитрейшей картой маршрутизации — это было вне моей квалификации. Одно время я даже думал нанять админа чтобы привести сервер в порядок, но было понятно, что всех моих проблем и хотелок такой метод не решит. Одновременно я стал задумываться о том, чтобы вообще выкинуть сервер к чертовой матери и поставить какой-нибудь умный маршрутизатор, но после обсуждений 2013/08/18 пришел к выводу, что это моих проблем не решит, хотя модель роутера ASUS RT-N16, что вы особенно советовали, я запомнил.

Помог случай. Мерзейший WiFi Dlink (второй по счету в квартире) в очередной раз сжег не только свой блок питания, но и себя самого. И я купил ASUS RT-N16 в надежде раздать по квартире автономный от сервера интернет, а сервер как-то починить. Но оказалось, что сервер не нужен — все (абсолютно все) мои потребности решает эта маленькая коробочка ASUS RT-N16 с установленной на ней DD-WRT «от Олега и единомышленников». Пока я не развесил эту технику красиво и не убрал в короба провода, это выглядит так:

Основной принцип: в этой системе я всё должен уметь сам. К счастью, она оказалась сильно проще полудохлой FSD 6.2, да и мануалов по ней предостаточно. Итак, что это? Сперва пару слов о маршрутизаторе — у него 1 вход интернет-провода, 4 выхода, плюс есть на борту 2 USB-слота. Первая задача — выкинуть штатную прошивку устройства и поставить прошивку нормальную, с которой уже можно работать. Для этого используется внешняя флешка — отныне все программное добро системы лежит там. Я использовал флешку 8Гб сперва, а после воткнул туда же и внешний USB-диск 2ТБ домашнего архива. Это внешний USB, разбитый под ext3 — именно там у меня сейчас домашний сайт и swap. В принципе, можно было с флешкой не морочиться, сразу диск подключать. Хватит ли 2ТБ для домашнего файл-сервера? Раньше я думал, что нет. Но, ей богу, хранить тонны кино дома — это сегодня абсурд. А для всего остального 2ТБ хватит за глаза. Внешнюю коробку для диска надо обязательно брать с вентилятором, я взял за 800 руб такую, хотя она шумновата. Особый гемор был переписать архивы со старого сервера — там диск был разбит в формате ufs, причем с каким-то таким нетрадиционным размером блоков, что ни один Линукс его прочесть не мог. А полуразрушенный сервер BSD не читал линуксовые диски ext2/ext3/ext4. Поэтому при помощи и с советами Гоши Курячего была проведена адова операция: в сервер был воткнут чистый диск, отформатирован под ufs уже со штатными размерами блоков, на него былро всё слито, затем загружен Линукс, который _этот_ ufs уже хотя бы в режиме чтения смог увидеть и слить обратно на исходный диск, предварительно отформатированный в ext3. Не храните, братцы, диски в ufs, дохлая система. Храните в ext3.

Оказалось, что маршрутизатор не любит, когда на одном разъеме висит много чего, и диск стал отваливаться при заливке больших объемов данных. Поэтому на одном USB у меня винт и флешка, на втором — периферия: звуковые карты и Ардуина:

Звуковые карты — традиционно одна звучит наружу на лестницу, другая внутрь квартиры. Это дверной звонок, оповещения, кукушка, разные прочие сигналы и сообщения, а еще можно музыку играть. USB-карта с бесплатной доставкой по России стоит от 1{s}lt;/a>. Реально. Подорожали они сейчас — я-то брал еще по 0.91$ :) Не помню точно, какие действия я производил, чтобы установить карту в систему — кажется, никаких. Но при старте Asus я гружу такие модули (а если были загружены, на всякий случай предварительно выгружаю):

показать
/sbin/rmmod snd-timer
/sbin/rmmod snd-hwdep
/sbin/rmmod snd-rawmidi
/sbin/rmmod snd
/sbin/rmmod snd-page-alloc
/sbin/rmmod soundcore

/sbin/insmod soundcore
/sbin/insmod snd-page-alloc
/sbin/insmod snd
/sbin/insmod snd-rawmidi
/sbin/insmod snd-hwdep
/sbin/insmod snd-timer
/sbin/insmod snd-pcm
/sbin/insmod snd-mixer-oss
/sbin/insmod snd-pcm-oss
/sbin/insmod snd-usb-lib
/sbin/insmod snd-usb-audio

Это самодельная коробка с электроникой и реле на базе Ардуино. Например, она открывает дверной замок (замок квартиры электрический). Обычно на этот месте паникеры начинают мне задавать вопросы. Мол, а если заглючит, если электричество отрубят? Отвечаю: этот замок стоит около 8 лет. Проблем с ним не было (а вот прежние механические раз в три года ломались и их выпиливали болгаркой). Замок так просто не ломается (там еще сигнализация самодельная). И у него, как у любого нормального электронного замка есть личинка со штатным ключом. Ключ есть у наиболее консервативных членов семьи. Поэтому если вырубят энергию более чем на полчаса (иначе UPS выдержит), просто откроем ключом. Но вообще он открывается электронно, и это дико удобно. Например, я могу открыть дверь приехавшим гостям, находясь не дома — с мобильника через интернет. И для срабатывания замка я использую 12 вольт от блока питания Asus, чтоб не ставить отдельный блок.
Нормально, никаких проблем. Кстати, Ардуино с Asus согласуется прекрасно. При запуске системы я делаю такую инициализацию:

показать
/sbin/rmmod ftdi_sio
/sbin/rmmod usbserial

/sbin/insmod usbserial
/sbin/insmod ftdi_sio

/bin/stty -F /dev/ttyUSB0 57600 -echo

Новый оптический сканер отпечатков пальцев лежит в коробочке и ждет своего часа, мне все лень с ним разобраться. Но я пока нашел другую игрушку, может даже более удобную — RFID-RC522. Это бесконтактный сканер NFC-ключей, он стоит с доставкой от 135 руб. Штуковина довольно просто подключается к Ардуине шестью проводками и позволяет организовать открытие замка при поднесении к двери ключа. Которым может быть все, что угодно — два ключа в комплекте, московская социальная карта, и даже просто старые карточки метро, это все протокол Mifare 13.56MHz. Для экспериментов я просто спустился в метро и набрал карт из корзинки для отработанных карт. У каждой карты свой уникальный номер, программируешь Ардуину пускать в дом по списку.

Из любопытного: у двух карт метро номер оказался одинаковым. Вряд ли это поможет злоумышленнику прийти с колодой карт и подобрать код, но все равно интересно. Еще любопытное: моя карта УЭК, по которой я хожу в метро, пару раз выдала читалке свой номер, и с тех пор говорить с ней отказывается глухо. В метро по ней я ходить продолжаю спокойно. Поскольку протокол Mifare — он и в Африке Mifare, я полагаю, что у УЭК внутре стоит какая-то паникерская блокировка от несанкционированных читалок. Для моих задач это неудобно, но конструкторскую задумку разработчиков УЭК и заботу о безопасности я вынужден оценить высоко.

Вдобавок надо сказать, что под DD-WRT вообще легко программируется. Я туда поставил Midnight Commander (не могу без него, там и редактор дивный), gcc, и вот пример программки. Это демон, который вешается в память и ждет строчку сообщения от Ардуины, а когда она придет, передает ее как параметр, запуская процедуру обработки сигнала zvonkido.php Смысл в том, что если строчку от Ардины будет ждать сам zvonkido.php (в моих задачах ожидание события длится часами и даже сутками), то он со своим консольным интерпретатором php будет жрать в памяти 16%. А бинарник жрет 1% памяти.

Итак, что сейчас делает сервер-маршрутизатор?
— раздача интернета, WiFi
— файловый архив Samba (т.н. «диск R:")
— обслуживание нескольких звуковых карт
— работа с Ардуино
— домашний вебсайт http://home.lleo.me (там пока я поставил mysql + легкий lighttpd, apache ставить не стал, думаю, как под него заточить свой движок, чтоб без mod_rewrite работал)
Я пока не знаю, какую еще придумать задачу, с которой бы он не справился. Учитывая, что USB-устройств туда можно натолкать массу (скоро я, например,восстановлю свой GSM-гейт для приема/отправки SMS).

PS1: К сожалению, закончилась неудачей попытка сделать в Asus искусственный интеллект, чтобы коробка тихо висела в углу, но отвечала на вопросы: проклятая утилитка rec не захотела писать звук со звуковой карты. Хотя другие утилиты звук пишут, но мне нужна именно эта — она умеет ждать сообщения. Скомпилировал бы кто-нибудь sox толково, и был бы разговаривающий и отвечающий на вопросы интеллект :)

PS2: Роутер Asus RT-N16 прекрасен во всех отношениях. Хотя есть еще мощнее: Asus RT-AC56U Он правда стоит в два раза дороже, но если бы я знал, что оно так хорошо полетит на этой загадочной DD-WRT, я бы купил самый мощный — мало ли какие задачи мне потребуются в будущем? В общем, если вы соберетесь покупать RT-N16, купите у меня (2681 руб, куплен 2 месяца назад, коробка, гарантия, стоит правильная прошивка, в подарок дам звуковую карту :), а я себе тогда 56U куплю.

В принципе на этом отчет о переустройстве домашнего сервера закончен (надеюсь, кому-то это будет полезно). Но девочки, я гляжу, заскучали, поэтому остаток заметки мы посвятим цветочкам и садоводству.

Два месяца назад я писал, что обустроил на балконе делянку с помидорами, и месяц назад они активно росли. Сейчас кусты выросли и цветут. Правый ящик на фотке выше, слева направо: «Томат F1 Ласка» вымахал выше всех (не уверен, что это хорошо) и опередил на голову «Томат F1 Сластена» (пара кустов в центре), а слева приютились пышные ростки «Физалиса десертного» который лично я тоже отношу к помидорам. Лично мне больше нравится крайний левый ящик:

Эти крепкие коренастые кусты — «Жемичужина желтая». Они не вымахали так высоко вверх, зато красивы, и уже покрылись цветами. Они прекрасны:

Два маленьких ящичка в центре балкона я добавил позже, недельки через три:

Это «Томат Оранжевая шапочка» и «Томат F1 Карамель». Первая — из породы темно-зеленых и коренастых, вторая — светлая, лезет вверх. Говорят, их надо как-то «прищипывать», но я начинающий огородник и пока не умею. Я только по вашим советам провожу пасынкование — ну, то есть брею подмышки выщипываю листики, которые начинают расти в стыке между ветвями и стволом. Да, Ардуину пока не приделал — поливаю сам.



это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2014/07/07.html

Тэги: программирование, сам, сделай, электроника

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.