Вводная часть

Установка системы на Raspberry Pi 2,3

Я опишу самый простой, на мой взгляд, способ для начинающих.

Всё действие будет происходить в Ubuntu 18.04.

Для справки по командам служит команда «man» + нужная команда.

man ls

Или нужная команда с ключём --help

ls --help


1. Установка операционной системы Raspbian Stretch Lite на microSD карту.

MicroSD карта должна быть 10 класса и ёмкостью от 8 гигабайт.
Вставьте SD карту в компьютер и введите команду:

lsblk



В примере карта определяется как mmcblk0, далее я буду использовать это имя.

Затем, чтобы очистить карту от записанной ранее информации (потом мы будем делать образ диска) нужно её стереть командой:

dd if=/dev/zero of=/dev/mmcblk0

Данная команда требует прав суперпользователя, для этого необходимо добавить в начале ключевое слово «sudo». Здесь и далее я привожу команды без sudo. При вводе команд используйте автодополнение (клавиша Tab) это нужно для контроля правильности ввода команд и путей к файлам. Пока выполняется команда можно скачать свежий дистрибутив операционной системы.

Скачиваем отсюда: raspberrypi.org
Нам нужен Raspbian Stretch Lite. Распаковываем скачанный zip, нам нужен файл с расширением img — это образ диска который мы будем копировать на карту. Итак, если мы имеем образ диска и команда dd завершилась, то идем дальше.

Копируем образ на карту:

dd if=/path/to/raspbian.img of=/dev/mmcblk0 bs=4M status=progress

после завершения вводим команду:

sync

Вынимаем карту и вставляем обратно.

Создаем пустой файл на диске boot нашей карты:

touch /media/$USER/boot/ssh

Это нужно для того чтобы на Raspberry запускался ssh сервер.

Карту нужно безопасно извлечь, вставить в Raspberry, подключить проводную сеть и подать питание. Если нет блока питания на 2 апмера, то запитать можно от компьютера имеещего USB3. При первой загрузке система увеличит размер дисков до размеров карты, это займет некоторое время.

Для того чтобы узнать IP адрес нашей RPi можно использовать утилиту «arp-scan». Если она не установлена — ставим:

apt install arp-scan

Узнаём имя нашей сетевой карты:

ip a

или

netstat -i



У меня wifi карта с именем wlp1s0.

Запускаем arp-scan:

arp-scan -I wlp1s0 -l



Мне нужен RPi c IP 192.168.0.114 адрес присваивается по DHCP и может быть любым.

Заходим на RPi по ssh:

ssh pi@192.168.0.114

нужно ввести yes при первой идентификации, затем ввести пароль пользователя pi — raspberry.

Если нам удалось зайти на Raspberry, вводим команду:

init 0

Эта команда выключает RPi.

Нужно снова вставить карту в компьютер. Сейчас понадобится программа «gparted», если она не установлена — ставим:

apt install gparted

Запускаем gparted, нужно изменить размер диска mmcblk0p2 оставьте в конце неразмеченную область 300-500 мегабайт или 2-3% от размера карты, это нужно для того чтобы наш образ помещался на карты разных производителей, а они могут различаться по размеру. В результате должно получиться примерно так:



После завершения работы с gparted можно сделать резервную копию карты, чтобы в случае проблем в дальнейших экспериментах иметь уже готовый образ.

dd if=/dev/mmcblk0 | bzip2 > raspbian.bz2

теперь мы всегда можем восстановить наш диск командой:

bzcat raspbian.bz2 | dd bs=4M of=/dev/mmcblk0

В результате мы имеем microSD карту с готовой к работе операционной системой и её резервную копию.

2. Настройка Raspbian Stretch Lite.

Заходим на RPi по ыыр ssh. Для настройки статических адресов проводной сети и wifi нужно в конец файла /etc/dhcpcd.conf добавить следующие настройки:

interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=8.8.8.8, 8.8.4.4
interface wlan0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=8.8.8.8, 8.8.4.4


С данными настройками RPi будет иметь одинаковый IP по проводной или wifi сети.

Файл для настройки wifi — /etc/wpa_supplicant/wpa_supplicant.conf
добавляем в него следующие настройки:

network={
ssid=«NAME»
psk=«PASS»
}

где NAME и PASS имя и пароль от wifi сети. Если заранее неизвестно где предстоит использовать нашу RPi, то имя и пароль можно будет вписать потом.

Добавим задачи в программу cron

crontab -e

При первом запуске нужно будет выбрать текстовый редактор, nano — будет самым привычным.



Для того чтобы работали расписания добавим следующие настройки:

PATH=/usr/sbin:/usr/bin:/sbin:/bin
SHELL=/bin/bash


И сами задачи, будем записывать время каждой загрузки и продолжительность непрерывной работы, это будет полезной информацией в дальнейшем.

reboot sleep 60 && date >> my-reboot.txt
@weekly uptime >> my-uptime.txt


Для выхода комбинация клавиш Ctrl+x, Y, Enter

Настройка часового пояса производится командой:

dpkg-reconfigure tzdata

Для увеличения ресурса SD карты можно остановить логирование и удалить swapfile:

(Я думаю это должно уменьшить вероятность выхода из строя SD карты или порче данных при внезапных отключениях RPi в процессе эксплуатации):

apt update
apt purge dphys-swapfile
apt autoremove --purge
apt install busybox-syslogd
dpkg --purge rsyslog

Установка программ:

apt install mosquitto mosquitto-clients sqlite3 libsqlite3-dev mc htop arp-scan vim supervisor python-pip python3-pip python-virtualenv python-dev

pip install psutil paho-mqtt
pip3 install psutil paho-mqtt 

Для homekit2mqtt нужно установить nodejs:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
apt-get install -y nodejs

Проверяем установленную версию

node -v
nodejs -v

Установка node-red:

npm install -g --unsafe-perm node-red

Запускаем:

node-red



В адресной строке браузера наберите IP адрес RPi 192.168.0.10:1880



Завершаем node-red жмем Ctrl+c, переходим в директорию .node-red

cd .node-red

И устанавливаем пакеты для node-red, они могут понадобится для тестирования, настройки и коммуникации различных устройств.

npm i node-red-dashboard node-red-contrib-sonos node-red-contrib-knx node-red-node-serialport node-red-contrib-globalcache node-red-contrib-counter 

Возвращаемся в домашний каталог

cd

Установка homekit2mqtt:

apt install libavahi-compat-libdnssd-dev
npm install -g homekit2mqtt --unsafe-perm

Можно попробовать запустить homekit командой

homekit2mqtt



Он запустится с настройками по умолчанию и можно добавить новое устройство в программе «Дом» на вашем iPhone или iPad

Пароль пользователя pi оставим текущий.

Теперь, когда всё установлено и проверено нужно сделать резервную копию нашей SD карты тем же способом что и ранее. Сейчас всё готово для установки системы автоматики.

Комментарии (0)