Установка MDM+Noolite на Debian 8.7 jessie. Пошаговая инстр.

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

Дмитрий Иванов
Сообщения: 79
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 24 раза

Установка MDM+Noolite на Debian 8.7 jessie. Пошаговая инстр.

Сообщение Дмитрий Иванов » Вт фев 07, 2017 8:06 pm

Делал себе памятку по установке - решил поделиться.
Устанавливал на Mini-ITX плату с интегрированным процессором ASUS N3050I-C; ОЗУ - 2GB; HDD 2,5" 500GB.
СпойлерПоказать
asus3050.jpg
asus3050.jpg (29.22 КБ) 6734 просмотра
Устанавливаю саму систему Debian 8.7
В процессе установки задаю:

Код: Выделить всё

Страна: Европа/Минск
Имя компа: MDM
Имя пользователя: md
Разметка  диска вручную (четыре первичных раздела):

Код: Выделить всё

0,5 Gb - /boot
1 Gb - раздел подкачки
10 Gb - /root
50 Gb - /home (держать музыку и т.п.) 
(остальную емкость можно еще для чего-нить использовать позже)

Выбираю компоненты: 

Код: Выделить всё

ssh-сервер
стандартные системные утилиты. 
В процессе установки Debian с дистрибутива net-install система должна иметь доступ в инет. (соответственно в сети должен быть DHCP).
После окончания установки заходим под рутом и устанавливаем sudo (далее все команды из под рута)

Код: Выделить всё

apt-get install sudo
Включаем пользователя md в группу sudo:

Код: Выделить всё

usermod -aG sudo md
разрешаем пользователю md повышение прав без запроса пароля (нужно для работы модуля Noolite, там все команды идут с префиксом sudo):

Код: Выделить всё

nano /etc/sudoers
В конец файла добавляем:
md ALL=(ALL) NOPASSWD: ALL
Разрешаем пользователю root вход по ssh:

Код: Выделить всё

nano /etc/ssh/sshd_config
изменить PermitRootLogin с no на yes:
PermitRootLogin yes
/etc/init.d/ssh restart
С этого момента можно подключиться с другого компа через ssh клиента (putty, например).
Установим mc:

Код: Выделить всё

apt-get install mc
Устанавливаем NTP:

Код: Выделить всё

aptitude install ntp ntpdate
Ставим apache:

Код: Выделить всё

apt-get install apache2 apache2-utils apache2-doc
Установим права на директорию www:

Код: Выделить всё

chown -R md:md /var/www
Установить mySQL (в ходе установки попросит задать пароль):

Код: Выделить всё

apt-get install mysql-server mysql-client
Установить PHP и PHP Curl:

Код: Выделить всё

apt-get install php5 php5-cgi php5-cli libapache2-mod-php5 php5 php-pear php5-xcache php5-gd php5-mysql php5-xdebug php5-common php5-dev
apt-get install curl libcurl3 libcurl3-dev php5-curl
Установить phpmyadmin (в ходе установки указать тип сервера apache2, пароль для mysql и задать пароль для самого phpmyadmin:

Код: Выделить всё

apt-get install phpmyadmin
Настройка веб-сервера:
Настраиваем запуск Apache от имени пользователя md (понадобится для нормальной работы оборудования noolite)

Код: Выделить всё

nano /etc/apache2/envvars
Найти следующие 2 строки и заменить в них имя пользователя на md (изначально там www-data)

Код: Выделить всё

export APACHE_RUN_USER=md
export APACHE_RUN_GROUP=md
Включаем mod rewrite:

Код: Выделить всё

a2enmod rewrite
service apache2 restart
Правим конфиг apache:

Код: Выделить всё

nano /etc/apache2/apache2.conf
В секции <Directory /> прописать  AllowOverride All (вместо none) в 4х случаях.
nano /etc/apache2/sites-available/000-default.conf
Исправить /var/www/html на /var/www
Правим конфиг PHP:

Код: Выделить всё

nano /etc/php5/apache2/php.ini
и
nano /etc/php5/cli/php.ini
меняем в двух файлах: 
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
поиск в nano ctrl+w

Код: Выделить всё

/etc/init.d/apache2 restart
Веб-сервер готов. Можно проверить, запустив http://IP_Majordomo/phpmyadmin
Последний раз редактировалось Дмитрий Иванов Ср фев 08, 2017 6:56 pm, всего редактировалось 10 раз.
За это сообщение автора Дмитрий Иванов поблагодарил:
th1s (Ср май 24, 2017 2:16 pm)
Рейтинг: 1.23%
Дмитрий Иванов
Сообщения: 79
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 24 раза

Re: Установка на Debian 8.7 jessie

Сообщение Дмитрий Иванов » Вт фев 07, 2017 8:14 pm

Установка Majordomo:

Код: Выделить всё

mkdir /home/md/majordomo
cd /home/md/majordomo
wget http://majordomo.smartliving.ru/download/_majordomo_linux_100b.tar.gz
tar xvfz _majordomo_linux_100b.tar.gz
sudo cp -rp /home/md/majordomo/html/* /var/www
sudo cp -rp /home/md/majordomo/html/.htaccess /var/www
Установить поддержку звука:

Код: Выделить всё

apt-cache search alsa
aptitude install alsa-utils alsa-base alsa-tools
alsactl init
Проверить установку, запустив микшер:
alsamixer
и
alsamixer -V all
Запустить phpmyadmin, создать базу db_terminal и импортировать базу db_terminal. (Скачать дистрибутив на комп http://majordomo.smartliving.ru/downloa ... 00b.tar.gz и распаковать базу db_terminal на комп)

Отредактировать конфиг Majordomo, указав пароль к БД (который задавали при установке MySQL или завести через phphmyadmin отдельного пользователя):

Код: Выделить всё

nano /var/www/config.php
service apache2 restart
Ручной запуск циклов:

Код: Выделить всё

sudo -u md php /var/www/cycle.php
Для автозапуска циклов:

Код: Выделить всё

crontab -e -u md
Добавить строку в конец:
@reboot /usr/bin/php /var/www/cycle.php
Можно заходить через веб-интерфейс (http://ip_majordomo)
Последний раз редактировалось Дмитрий Иванов Вт фев 07, 2017 8:38 pm, всего редактировалось 1 раз.
Дмитрий Иванов
Сообщения: 79
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 24 раза

Re: Установка на Debian 8.7 jessie

Сообщение Дмитрий Иванов » Вт фев 07, 2017 8:22 pm

Установка медиа возможностей:
Установить mplayer:

Код: Выделить всё

apt-get install mplayer
для проверки:
su md
mplayer /var/www/sounds/dingdong.mp3
Установим VLC плейер:

Код: Выделить всё

apt-get install vlc
Автозапуск vlc over http (12345 - это пароль):

Код: Выделить всё

crontab -e -u md
Добавить строку в конец:
@reboot vlc -I http --http-password 12345
Настройка терминала:
Панель управления => Настройки => Терминалы => Main
тип плеера: VLC over HTTP; порт: 8080; пароль: 12345
Для проверки можно установить из Маркета дополнений Радио 101 и проверить работу vlc, запустив прямо из админки...
Активация Text to Speach:
Панель управления => настройки => общие настройки Text-to-speech engine переключить на Yandex, в поле Yandex tts key ввести соответствующий ключ.
Дмитрий Иванов
Сообщения: 79
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 24 раза

Re: Установка на Debian 8.7 jessie

Сообщение Дмитрий Иванов » Вт фев 07, 2017 8:34 pm

Дальше можно обновлять систему через панель управления, но я предпочел сделать на этом этапе резервную копию средствами линукс. Перед тем как это делать, надо остановить циклы (удобно через утилиту htop), апач, командой service apache2 stop и mySQL, командой service mysql stop.

Код: Выделить всё

tar cvpzf /backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys / 
После окончания процесса в корне появится файл backup.tgz.
Восстановить из резервной копии (тоже убив предварительно циклы и остановив апач и mysql):

Код: Выделить всё

tar xvpfz /backup.tgz -C / 
Можно подключить флешку и скопировать туда backup.

Код: Выделить всё

blkid - узнать имя устройства (например, sdb4)
mkdir /mnt/fls - создаем точку монтирования
mount /dev/sdb4 /mnt /fls - монтируем. 
Дополнительно можно делать резервную копию базы данных через phpmyadmin (экспорт в формате sql), ну и конечно есть встроенные средства majordomo.

P.S. После обновления перестал работать встроенный Yandex TTS, пришлось устанавливать модуль из Маркета и уже в него вбивать TTS Key.
Последний раз редактировалось Дмитрий Иванов Ср фев 08, 2017 6:49 pm, всего редактировалось 2 раза.
Дмитрий Иванов
Сообщения: 79
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 24 раза

Re: Установка MDM на Debian 8.7 jessie. Пошаговая инструкция

Сообщение Дмитрий Иванов » Ср фев 08, 2017 6:39 pm

Поддержка оборудования NooLite
Установим поддержку модулей Noolite (РС1ххх и RX2164):

Код: Выделить всё

apt-get install libusb-1.0-0
wget https://github.com/olegart/noolite/archive/master.zip
unzip master.zip
cd noolite-master
./configure && make && make install
nano  /etc/init.d/nooliterx
СпойлерПоказать

Код: Выделить всё

#!/bin/sh
### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO
#
# nooliterx     Starts and stops the NooLite RX1164 receiver daemon
#
# chkconfig: 2345 55 25
# description: NooLite RX1164 smart home wireless receiver daemon
#
# Source function library.
#. /etc/rc.d/init.d/functions

nooliterx="/usr/local/bin/nooliterx"
prog=$(basename $nooliterx)

lockfile="/var/lock/nooliterx"
pid_file="/var/run/${prog}.pid"

stdout_log="/var/log/$prog.log"
stderr_log="/var/log/$prog.err"


get_pid() {
    cat "$pid_file"
}

is_running() {
    [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}

do_start() {
    [ -x $nooliterx ] || exit 5
    echo -n $"Starting $prog: "
    sudo $nooliterx -d >> "$stdout_log" 2>> "$stderr_log" &
    echo $! > "$pid_file"
        if ! is_running; then
            echo "Unable to start, see $stdout_log and $stderr_log"
            exit 1
        fi
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

do_stop() {
    echo -n $"Stopping $prog: "
    kill `get_pid`
    sudo pkill -f noolite
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

case "$1" in
  start|"")
        do_start
        ;;
  restart|reload|force-reload)
        echo "Error: argument '$1' not supported" >&2
        exit 3
        ;;
  stop)
        do_stop
        ;;
  *)
        echo "Usage: mountall.sh [start|stop]" >&2
        exit 3
        ;;
esac

:

Код: Выделить всё

chmod 0755 /etc/init.d/nooliterx
Создать файл:

Код: Выделить всё

nano /etc/noolite.conf
следующего содержания:

Код: Выделить всё

command = wget -qO- http://localhost/ajax/noolite.html?channel=%ch\&command=%cm\&d0=%d0\&d1=%d1\&d2=%d2\&d3=%d3 $
timeout = 250
запуск сервиса приемника:

Код: Выделить всё

/etc/init.d/nooliterx start
поместим в автозапуск:

Код: Выделить всё

update-rc.d nooliterx defaults
Далее через маркет установить модуль Noolite.
СпойлерПоказать
...Недавно переставил все с нуля и столкнулся со странной проблемой при компиляции noolite, почему-то в системе не хватало пакетов. Пришлось доустановить gcc и make, а так же переустановить libusb... так же может понадобиться отредактировать файл src/Makefile и поменять там строки:

Код: Выделить всё

CC = gcc на CC = gcc -std=gnu99
CPP = gcc -E на CPP = gcc -stc=gnu99 -E
после этого make && make install
Внимание!
Т.к. модуль Noolite использует перед командами префикс sudo, а Apache работает из под обычного пользователя, надо отключить запрос пароля при повышении прав (после sudo). Для этого надо поправить файл sudoers:

Код: Выделить всё

nano /etc/sudoers
В конец файла добавляем:

Код: Выделить всё

md ALL=(ALL) NOPASSWD: ALL
Так же надо Apache запускать из под пользователя, которому разрешено повышение прав без пароля:

Код: Выделить всё

nano /etc/apache2/envvars
Найти следующие 2 строки и заменить в них имя пользователя на md (изначально там www-data)

Код: Выделить всё

export APACHE_RUN_USER=md
export APACHE_RUN_GROUP=md
(в первом посте эти правки уже есть)
Последний раз редактировалось Дмитрий Иванов Чт фев 23, 2017 7:49 pm, всего редактировалось 6 раз.
Аватара пользователя
igorewa
Сообщения: 506
Зарегистрирован: Ср дек 21, 2016 11:54 pm
Откуда: Киев
Благодарил (а): 11 раз
Поблагодарили: 42 раза

Re: Установка MDM+Noolite на Debian 8.7 jessie. Пошаговая ин

Сообщение igorewa » Ср фев 08, 2017 7:31 pm

У вас на материнке есть LVDS разъем к которому можно подключить ноутбучную сенсорную матрицу и использовать ее как терминал. У вас не возникало такого желания? я сейчас активно думаю над этим, ищу даташит на свою материнку чтобы понять как подключить сенсор. у меня ASUS H110T
ASUS H110T, I5 7500, DDR4-16Gb, SSD256 . WIN10 64 (LTSB)
Дмитрий Иванов
Сообщения: 79
Зарегистрирован: Вс фев 28, 2016 11:36 pm
Благодарил (а): 17 раз
Поблагодарили: 24 раза

Re: Установка MDM+Noolite на Debian 8.7 jessie. Пошаговая ин

Сообщение Дмитрий Иванов » Ср фев 08, 2017 8:19 pm

igorewa писал(а):У вас на материнке есть LVDS разъем к которому можно подключить ноутбучную сенсорную матрицу и использовать ее как терминал. У вас не возникало такого желания? я сейчас активно думаю над этим, ищу даташит на свою материнку чтобы понять как подключить сенсор. у меня ASUS H110T
Есть LVDS. Регулярно возникает) Но пока я ограничиваюсь гуглением небольших матриц б.у. "занедорага"... Правда не для терминала, а так, в диагностических и познавательных целях... А желание возникает поставить на него иксы c VLC и поставить под телек, правда там уже 2 шт Android TV приставки живут...
iapet
Сообщения: 289
Зарегистрирован: Вт авг 18, 2015 6:23 pm
Благодарил (а): 8 раз
Поблагодарили: 36 раз

Re: Установка MDM+Noolite на Debian 8.7 jessie. Пошаговая ин

Сообщение iapet » Ср фев 08, 2017 9:13 pm

igorewa писал(а):У вас на материнке есть LVDS разъем к которому можно подключить ноутбучную сенсорную матрицу и использовать ее как терминал. У вас не возникало такого желания? я сейчас активно думаю над этим, ищу даташит на свою материнку чтобы понять как подключить сенсор. у меня ASUS H110T
Да простят меня пользователи, а какой даташит Вы ищите? Ое еа сайте Асуса в свободном доступе. И не даташит это (не бывает даташитов на мат платы, service repair manual бывает) а User's manual. LVDS имеет стандартный кабель. Вам так-же нужен кабель с инвертора (подсветки) и правильно выставленное питание подсветки. И никаких проблем. mini-STX Асус нормально работает с 17'' монитором от ноутбука.
ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm
Благодарил (а): 38 раз
Поблагодарили: 45 раз

Re: Установка MDM+Noolite на Debian 8.7 jessie. Пошаговая ин

Сообщение ipz » Ср фев 08, 2017 9:39 pm

Отличная инструкция. Только из обязательного я бы добавил включение 'short_open_tag = On' в обоих php.ini. (Хотя, может в этом дистрибутиве Debian он не отключен по умолчанию)

Из необязательного - запуск MDM как сервиса, как описано здесь:http://majordomo.smartliving.ru/Main/SetupRaspberryPi2. Там, правда, расписано для пользователя pi, а в /etc/init.d/majordomo указан user="root", хотя надо указать пользователя из под которого хотите запустить MDM.

Если придираться, то не давал бы права sudo для web сервера.
serghei
Сообщения: 2539
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 294 раза
Поблагодарили: 273 раза

Re: Установка MDM+Noolite на Debian 8.7 jessie. Пошаговая ин

Сообщение serghei » Ср фев 08, 2017 9:58 pm

Так вот как теперь не потерять тему на форуме? С учетом плодящихся повторяющихся постов? И акцент сделать на плату. Если через полгода захотеть купить материнку , так ведь не найти будет ((.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить