Вот и пришло время настройки моего мини компьютера для работы в информационном зеркале. Я выбрал операционную систему Raspbian с php решением вывода информации от Michael Teeuw под названием Magic Mirror. В интернете есть большое количество вариантов установки Magic Mirror, но проблема в том, что они не подходят для одноплатника Raspbery Pi Zero W. А у меня в наличии была именно эта модификация. Так что все настройки были собраны по частям с разных форумов.
Для начала заходим по адресу https://www.raspberrypi.org/downloads/raspbian/ и скачиваем образ Raspbian Stretch with desktop.
Берём нашу microSD карту и с помощью программы Win32DiskImager заливаем на неё скаченный образ. Для этого нажимаем кнопку, отмеченную стрелкой, выбираем нужный образ, а затем нажимаем кнопку Write и дожидаемся пока программа выполнит эту операцию.
После записи образа первым делом надо зайти на карту и создать там два файла: ssh (только название без расширения) и wpa_supplicant.conf
Файл ssh мы оставляем совершенно пустым (он нам нужен только для того, чтобы включить SSH доступ, который изначально отключен), а в файле wpa_supplicant.conf забиваем нужные нам данные о сети Wi-Fi. Только надо помнить, что название сети и пароль чувствительны к регистру:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RU
network={
ssid="ИМЯ НАШЕЙ ТОЧКИ ДОСТУПА WI-FI"
psk="ПАРОЛЬ WI-FI"
key_mgmt=WPA-PSK
}
Ну что ж, на этом первый этап настройки можно считать завершённым. Теперь берём нашу microSD карту и вставляем в одноплатник, после чего подключаем питание и радуемся приветливо мигающему зелёному огоньку.
Для дальнейшей настройки мне потребовались программы Advanced_IP_Scanner и PuTTY (https://www.putty.org/). Запускаем IP_Scanner и нажимаем кнопку Сканировать. Программа покажет все устройства, подключенные к нашей сети. Если файл с настройками Wi-Fi был создан правильно, то в списке устройств мы должны увидеть строчку Raspberry. Мой одноплатник получил адрес 192.168.0.2.
Перейдём к запуску программы PuTTY. В поле Host Name вписываем IP адрес, который мы узнали из предыдущего шага, а в поле Port 22. В поле Saved Session напишите, например, MagicMirror. Жмем на кнопку Save. Выбираем в списке подключений MagicMirror.
Жмём на кнопку Open. Откроется окно консольной строки программы, где мы должны ввести логин и пароль. По умолчанию в raspbian логин — pi, а пароль — raspberry. При вводе пароля символы не отображаются, не обращайте на это внимание, просто набираете пароль и жмёте клавишу Enter.
Теперь переходим к непосредственной настройке программной части нашего устройства. Для начала отключим поддержку IPv6, так как наша сеть не использует ее, а попытки обращения к ней очень тормозят передачу данных. Для этого вводим в строку:
sudo nano /etc/sysctl.conf
Нажимаем клавишу Enter. Откроется текстовый редактор для файла sysctl.conf. В конце файла добавляем строки:
#ipv6 disable
net.ipv6.conf.all.disable_ipv6 = 1
Нажимаем Ctrl+О для сохранения изменений в файле, подтверждаем сохранение клавишей Enter. После этого нажимаем Ctrl+Х для выхода из редактора.
Теперь для перезагрузки протокола связи вводим в командную строку последовательно две команды, ввод каждой команды завершается нажатием клавиши Enter.
sudo sysctl -p
sudo /etc/init.d/networking restart
Я очень надеюсь, что у Вас есть опыт работы в командной строке DOS или Linux, либо Вы поняли алгоритм действий при работе с ней, так как далее я не буду описывать каждую настройку так подробно, а просто выделю основные действия для неё.
Обновление системы и пакетов программ:
sudo apt update && sudo apt upgrade
Обновление у меня заняло минут 30, так что можно спокойно попить чаю, просто изредка поглядывая на прогресс выполнения.
Устанавливаем программу Node. Я перепробовал много разных версий этой программы, но для стабильной работы всей системы в целом мне подошла только версия 10.11.0, так что в данном описании я буду ссылаться на неё.
sudo wget https://nodejs.org/dist/v10.11.0/node-v10.11.0-linux-armv6l.tar.xz
Данной командой мы скачали архив Node. Теперь производим его распаковку:
tar xvf node-v10.11.0-linux-armv6l.tar.xz
Ну и соответственно как таковая установка программы:
cd node-v10.11.0-linux-armv6l
sudo cp -R * /usr/local/
sudo reboot
Последней командой мы отправили наш мини компьютер в перезагрузку. Окно программы PuTTY сообщит нам об этом. Закрываем окно, ждём около минуты и снова повторяем запуск PuTTY.
Установка NPM:
sudo apt install npm
Подтверждаем буквой Y и нажатием Enter.
Скачиваем Magic Mirror с портала Github.
git clone https://github.com/MichMich/MagicMirror
По окончанию процесса переходим в папку с файлами Magic Mirror.
cd MagicMirror
Установим программу.
npm install
Если у Вас установка прервалась с ошибкой «npm ERR! Error: EACCES: permission denied, access ‘/home/pi/MagicMirror/node_modules'» удалите папку node_modules командой sudo -rm -rf node_modules и используйте npm install снова.
Копируем файл с настройками в рабочую директорию программы.
cp ~/MagicMirror/config/config.js.sample ~/MagicMirror/config/config.js
Автозапуск информационной части будем делать через графический интерфейс LXDE, так как он уже встроен и стартует по умолчанию. Для этого запускаем текстовый редактор для файла настроек автостарта рабочего стола:
sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
Для наших целей в этом файле должно быть такое содержание:
#@xscreensaver -no-splash
@/home/pi/mm_server.sh
@xset s off
@xset -dpms
@xset s noblank
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/$
@chromium-browser --noerrdialogs --kiosk http://localhost:8080
Сохраняем изменения Ctrl+О и выходим из редактора Ctrl+Х.
Теперь мы должны создать файл mm_server.sh
sudo nano mm_server.sh
В данном файле прописываем следующие команды:
#!/bin/bash
cd ~/MagicMirror
node serveronly &
sleep 30
Сохраняем изменения Ctrl+О и выходим из редактора Ctrl+Х.
sudo chmod a+x mm_server.sh
Последним штрихом настроек мне нужно было повернуть экран на 90 градусов, так как монитор в зеркале я поставил вертикально, а не горизонтально. Делается это очень просто:
sudo nano /boot/config.txt
Добавляем в конце файла строчку:
display_rotate=1
Сохраняем изменения Ctrl+О и выходим из редактора Ctrl+Х. Теперь можно перезагрузить систему командой:
sudo reboot
На этом всё. Если все настройки были сделаны правильно, то в результате перезагрузки Вы увидите на своём мониторе такую страничку.