Налаштування debian linux як сервер для домашньої автоматизації

"Пінгвіни, вони ж психи." (М / ф "Мадагаскар")

У своїй вступній статті "Розумний будинок своїми руками" я спробував розповісти, чому я вирішив створювати систему автоматизації будинку самостійно. Нагадаю коротко, що справа все навіть не в ціні готових і перевірених рішень (хоча, знаючи ціни. Матеріал "готові рішення для системи Розумний Дім"), а більше в бажанні досліджувати цю область і спробувати зібрати з окремих кубиків ціле. Саме з цієї причини в якості операційної системи сервера був вибрав Linux. Ця операційна система якнайкраще вписується в ідеологію конструювання, тому що сама по собі ця ОС зібрана як конструктор з різних модулів, написаних різними людьми.

ОС Linux має, крім того, такі переваги і гідності:

  • Відкритий вихідний код (можна завжди розібратися як працює та чи інша програма, і навіть поправити її для своїх потреб)
  • Linux є абсолютно безкоштовним
  • Не дуже високі вимоги до апаратних ресурсів комп'ютера
  • відмінна продуктивність
  • гнучкість
  • стабільність роботи
  • Велика кількість безкоштовних прикладних програм і рішень
  • Величезна кількість форумів і документації, в яких можна знайти відповіді на більшість питань

При цьому є й свої недоліки:

  • Відносна складність установки і використання (користувач повинен мати деякі навички)
  • Чи не для всіх пристроїв доступні драйвери і не завжди можливості пристрою підтримуються драйвером повністю

Linux на поточний момент - це скоріше не якась конкретна операційна система, а ціле сімейство. Ядро у них одне, а набір програм і способи конфігурації різні.
Я взяв один з Лінукс, а саме Debian. Чому саме Debian? По-перше, Debian щодо налагоджений лінукс, зі стабільними і протестованими на предмет сумісності набором програм. По-друге, для Debian досить часто випускаються оновлення, перш за все, з області надійності і безпеки. По-третє, це популярний лінукс, а значить я, не будучи гуру в Лінукс, зможу знайти відповіді на багато питань. Також для Debian написано багато мінлива (документації), що відносяться до специфіки цього дистрибутива.

Я не буду переписувати керівництво по установці. Ви прочитаєте це в інших джерелах, якщо це буде необхідно (я, до речі, не читав). Нас линукс цікавить як сервер для домашньої автоматизації. Фактично, базовий пакет програм, що входять в Desktop, містить велику частину того, що нам потенційно може знадобитися. Забігаючи трохи вперед скажу, що ядро ​​моєї системи автоматизації використовує пакет owfs для управління 1-wire компонентами. Програми управління написані на PHP і perl. Використано також можливості awk, bash. Як сервер баз даних використаний MySQL, а завдання Web-сервера виконує Apache HTTPD.

Щоб встановити який-небудь пакет в Debian, потрібно виконати команду 'apt-get install ім'я пакета'

(!) Якщо ви не хочете працювати в командному рядку, то можна запустити програму управління пакетами в графічній оболонці і зробити те ж саме, знайшовши там перераховані вище і нижче по тексту пакети.

Система управління пакетами APT працює з репозитарием, якоїсь базою даних пакетів. За замовчуванням це DVD-диски дистрибутива, але краще налаштувати Debian для завантаження пакетів з Інтернету. Тоді є можливість отримувати найсвіжіші пакети, а також оновлювати наявні. Основний файл для настройки APT - /etc/apt/source.list
Для установки з DVD дисків там повинні бути такий запис:

deb cdrom: / etch contrib main

Однак якщо є доступ в Інтернет, краще прописати

Після редагування source.lst ми повинні виконати команду

Щоб закінчити з описом APT скажу, що якщо ви все ж налаштували оновлення через Інтернет, то для апгрейда пакетів можна скористатися графічним інтерфейсом або командою

Після установки owfs (для мікромережі на базі протоколу 1-wire), яка описана в окремій статті, виникла необхідність написання керуючих програм: управління освітленням, опаленням, вентиляцією. Для цих цілей була вибрана мова програмування PHP, як найбільш легкий в освоєнні і використанні. Важливим аспектом є те, що php зручно використовувати також для написання інтерфейсної частини системи для Web-сервера. Таким чином, необхідно встановити:

Підніміть мені повіки!

У будь-якої автоматизованої системи повинен бути інтерфейс, через який вона спілкується з користувачем. Повинен же я якось контролювати роботу електронного мозку. Та й інформація, наприклад, з датчиків температури і вологості, потрібна не тільки для управління опаленням, а й для того, щоб не одягнути в мороз замість шуби і валянок пляжний костюм. Причому для мене було важливо, щоб цей інтерфейс був доступний з будь-якого комп'ютера в будинку, а також ззовні, з Інтернету. Для реалізації цієї задумки ідеально підходить технологія Web в загальному і HTTPD-сервер Apache зокрема. Не потрібно забувати і про спосіб зберігання різних даних. Для зберігання об'ємних табличних даних потрібна система управління базами даних СУБД. Наприклад, інформацію з усіх датчиків і виконавчих механізмів я зберігаю в окремих таблицях. Таким чином, через Web-інтерфейс можна завжди отримати інформацію про те, коли відбулася та чи інша подія, який модуль спрацював або побудувати місячний графік зовнішньої температури, споживаної електроенергії або води.

Тому мені треба було встановити Apache httpd і MySQL

Після установки Apache2 і MySQL вони автоматично сконфігурує і запустяться. Також ці програми будуть додані в автозавантаження.

Моя твоя не розуміти.

Кілька слів про мовну налаштування. В принципі Apache2 ніякої особливої ​​настройки не вимагає. Але я вирішив працювати в кодуванні Windows-1251 (CP1251), тому прописав в конфігураційний файл /etc/apache2/apache2.conf таку опцію

З MySQL-сервером в цьому сенсі значно складніше. Щоб MySQL гарантовано говорив по-російськи, створював, зберігав і видавав дані російською, а точніше на 1251-російській, в його конфігураційний файл в блок [mysqld] потрібно прописати:

Рішення, як то кажуть, не фонтан, але працює. Треба тільки мати на увазі, що для суперкористувача, root, будь-якого іншого, у якого є необмежені права на базу, все одно буде встановлена ​​кодування latin1.

Linux Mint хороший на робочому столі. Барвистий, звичний користувачам Windows (особливо з оточенням MATE), поставляється з повноцінним браузером Mozilla Firefox і т.д. Як сервер він може працювати як і будь-який інший Linux. В основі Mint лежить Ubuntu. Але часто в Linux Mint трапляються дрібні косяки. Взяти хоча б систему друку і ПО hplip. У мене принтер HP LaserJet P1566. В 17.2 працював. В 17.3 перестав. У наступній 17.4 знову запрацює. І так у них багато в чому.

Збирати сервер на ОС Windows не планую.

Це я до того, що до вибору заліза треба підходити чітко знаючи що треба. І якщо бігають зайві кілька штук то у що їх вигідніше вкинуть.

Грубо кажучи вся метушня навколо оверклокерской пам'яті на 90% - пустушка.
Єдина ніша для такої пам'яті - додатки, критичні до пропускної здатності пам'яті.
Жодне з використовуваних в розумному будинку додатків таким не є (DBMS, HTTPD якщо і впираються то в диск) а іншим ніяк
нетреба мультігігабайти в секунду кудись слати.

PS. Було б цікаво побудувати серверок, який відповідає виключно за умнодомовие завдання (медіаліб все-таки більше до лиця спеціалізованому HTPC)
І побудувати коробочку на основі mini-ITX плати з процесором класу Celeron-Pentium на Ivy Bridge і SSD (причому SSD не через швидкості а через безшумності і меншого напруження з охолодженням).
У підсумку отримати "шибко розумну коробочку" може оголосити на форумі щось на зразок-кікстартера? Тобто скінемсі хлопці на проект - якщо покатит то такі коробочки можна буде потім по собівартості наштампувати всім скинувши (+ враховуючи частку) + пересилка
Заодно проект зможе отримати стусана в плані виходу на інший рівень (в розрізі універсалізірованія модулів як виконавчого типу, так і probe sensors)
Тому як брешіть у власному будинку це звичайно прекрасно - робиш під себе але зазвичай
такі системи не витримують виносу в світ. Коли вся разномахровость залізяк навколишнього світу накинеться на нього.
А так дивишся і допив б хто там шматочок, тут шматочок. Тут свій модуль для пральки намалював там холодильник в інтернет випустив%)))))))

PS. У конфе вашого сервака Раптор і оверовская пам'ять. Якщо про Раптор в принципі сперечатися нема про що - він тупо швидше звичайних. Хіба що запитати - невже все вперлося в disk io і чи не час ставити ssd на ключове місце затикаючи? Те ваша пам'ять - гроші на вітер (на чистих Бенч перевага ще видать, а в реальному софт - вже немає).

Далі вам необхідно запустити сервер мережі. Для USB пристроїв робиться це, наприклад, так:
/ Opt / owfs / bin / owserver -u -p 3000
Якщо вам потрібен owfs (уявлення пристроїв в файлової структурі, то команда наступна)
/ Opt / owfs / bin / owfs -s 3000 / mnt / 1wire /

Власне, все. Якщо будуть в подальшому складності, створюйте тему в форумі.

Схожі статті