Помощь

Структура системы

Сервер

Серверное оборудование

В качестве сервера используется микрокомпьютер Raspberry Pi 2, в корпусе с системой охлаждения.
Операционная система устанавливается на microSD карту, (рекомендуемый объем - 16ГБ). Для резервирования базы данных используются 2 внешние USB flash-карты уменьшенного форм-фактора и одинакового объема (рекомендуемый объем - 16ГБ). Требуется постоянное подключение к интернету или другому источнику точного времени (например, GPS).
Требуется источник бесперебойного питания.

Настройка сервера

Запись операционной системы Raspbian Jessie на microSD карту:

sudo dd bs=4M if=2015-09-24-raspbian-jessie.img of=/dev/sdd

Настройка конфигурации: сменить пароль, включить ssh, настроить часовой пояс, включить профиль разгона "Pi2".

Expand Filesystem
Internationalization Options
	Locale: ru.utf8
	Timezone: Asia/Almaty
Overclock:
	Profile: Pi2
Advanced Options:
	hostname: timecoding
	SSH: Enable

Обновление системы:

sudo apt-get update
sudo apt-get upgrade

Установка статического IP адреса в файле /etc/network/interfaces:

auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.0.246
netmask 255.255.255.0
gateway 192.168.0.250
network 192.168.0.0
broadcast 192.168.0.255

Установка NTP:

sudo apt-get install ntp

Установка NGINX:

sudo apt-get install ntp

Установка PHP-FPM:

sudo apt-get install php5-fpm php-apc

Установка MySQL:

sudo apt-get install mysql-client mysql-server php5-mysql

Клиенты

Терминалы

Запись операционной системы Raspbian Wheezy на microSD карту:

sudo dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/sdd

Настройка конфигурации: сменить пароль, включить ssh, настроить часовой пояс, включить профиль разгона "turbo".

Expand Filesystem
Internationalization Options
	Locale: ru.utf8
	Timezone: Asia/Almaty
Overclock:
	Profile: turbo
Advanced Options:
	hostname: timecoding1
	SSH: Enable

Настройка хоста сервера: в файле /etc/hosts создать ссылку на IP адрес сервера с доменом i.timecoding.tk

192.168.0.246    i.timecoding.tk

Настройка NTP: в файле /etc/ntp.conf добавить IP адрес TimeCoding сервера:

server 192.168.0.246 iburst

Отключение засыпания экрана, в файле /etc/lightdm/lightdm.conf в разделе [SeatDefaults] необходимо добавить:

xserver-command=X -s 0 dpms

Установка браузера Chromium:

sudo apt-get update
sudo apt-get install chromium-browser

Отключение отображения курсора на экране:

sudo apt-get install unclutter

Установка HTML загрузчика:

mkdir /home/pi/timecoding
touch /home/pi/timecoding/timecoding.loader.html

Вставить в файл /home/pi/timecoding/timecoding.loader.html текст:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <title>Time Coding Loader</title>
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <style>
 body{
  margin:0;
  overflow:hidden;
 }
 iframe{
  -webkit-transform: rotate(90deg);
  margin: -80px cialisfrance24.com 80px;
 }
 </style>
 </head>
 <body onLoad="document.getElementById('timecoding_iframe').focus();">
 <iframe id="timecoding_iframe" width="320" height="480" frameBorder="0" scrolling="no"
src="http://i.timecoding.tk/terminal_touch.320x480.php?terminal_id=timecoding"></iframe>
 </body>
</html>

Настройка автозагрузки:

sudo mkdir /home/pi/.config/autostart
sudo touch /home/pi/.config/autostart/timecoding.desktop

В файл /home/pi/.config/autostart/timecoding.desktop внести:

[Desktop Entry]
Type=Application
Exec=chromium-browser -incognito -kiosk /home/pi/timecoding/timecoding.loader.html

Установка драйвера монитора:

sudo wget http://timecoding.tk/misc/3.5-touchscreen-driver/LCD-show.tar.gz
sudo tar xvf LCD-show.tar.gz 
sudo cd LCD-show/
sudo ./LCD35-show

Дополнительное оборудование

Дополнительное оборудование работает через интерфейс GPIO. Пример скрипта, подающего сигнал через GPIO 26 в течение 1 секунды:

#!/bin/bash
echo 26 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio26/direction
echo 1 > /sys/class/gpio/gpio26/value
sleep 1
echo 0 > /sys/class/gpio/gpio26/value
echo 26 > /sys/class/gpio/unexport

Настоятельно рекомендуется использовать оптроны, для оборудования с автономным питанием.