Вводная часть
Установка системы на Raspberry Pi 2,3
Я опишу самый простой, на мой взгляд, способ для начинающих.
Всё действие будет происходить в Ubuntu 18.04.
Для справки по командам служит команда «man» + нужная команда.
Или нужная команда с ключём --help
1. Установка операционной системы Raspbian Stretch Lite на microSD карту.
MicroSD карта должна быть 10 класса и ёмкостью от 8 гигабайт.
Вставьте SD карту в компьютер и введите команду:
![](https://habrastorage.org/r/w1560/webt/li/ti/y4/litiy47g_6lk1faubuj78odw3vi.png)
В примере карта определяется как mmcblk0, далее я буду использовать это имя.
Затем, чтобы очистить карту от записанной ранее информации (потом мы будем делать образ диска) нужно её стереть командой:
Данная команда требует прав суперпользователя, для этого необходимо добавить в начале ключевое слово «sudo». Здесь и далее я привожу команды без sudo. При вводе команд используйте автодополнение (клавиша Tab) это нужно для контроля правильности ввода команд и путей к файлам. Пока выполняется команда можно скачать свежий дистрибутив операционной системы.
Скачиваем отсюда: raspberrypi.org
Нам нужен Raspbian Stretch Lite. Распаковываем скачанный zip, нам нужен файл с расширением img — это образ диска который мы будем копировать на карту. Итак, если мы имеем образ диска и команда dd завершилась, то идем дальше.
Копируем образ на карту:
после завершения вводим команду:
Вынимаем карту и вставляем обратно.
Создаем пустой файл на диске boot нашей карты:
Это нужно для того чтобы на Raspberry запускался ssh сервер.
Карту нужно безопасно извлечь, вставить в Raspberry, подключить проводную сеть и подать питание. Если нет блока питания на 2 апмера, то запитать можно от компьютера имеещего USB3. При первой загрузке система увеличит размер дисков до размеров карты, это займет некоторое время.
Для того чтобы узнать IP адрес нашей RPi можно использовать утилиту «arp-scan». Если она не установлена — ставим:
Узнаём имя нашей сетевой карты:
или
![](https://habrastorage.org/r/w1560/webt/sg/kr/6w/sgkr6wb793k2l4dmscvleeo_4pa.png)
У меня wifi карта с именем wlp1s0.
Запускаем arp-scan:
![](https://habrastorage.org/r/w1560/webt/vk/fz/oh/vkfzohdrqybskrape13_qijsf8e.png)
Мне нужен RPi c IP 192.168.0.114 адрес присваивается по DHCP и может быть любым.
Заходим на RPi по ssh:
нужно ввести yes при первой идентификации, затем ввести пароль пользователя pi — raspberry.
Если нам удалось зайти на Raspberry, вводим команду:
Эта команда выключает RPi.
Нужно снова вставить карту в компьютер. Сейчас понадобится программа «gparted», если она не установлена — ставим:
Запускаем gparted, нужно изменить размер диска mmcblk0p2 оставьте в конце неразмеченную область 300-500 мегабайт или 2-3% от размера карты, это нужно для того чтобы наш образ помещался на карты разных производителей, а они могут различаться по размеру. В результате должно получиться примерно так:
![](https://habrastorage.org/r/w1560/webt/pi/gq/y1/pigqy1qfzik2laujmitutxwzn8g.png)
После завершения работы с gparted можно сделать резервную копию карты, чтобы в случае проблем в дальнейших экспериментах иметь уже готовый образ.
теперь мы всегда можем восстановить наш диск командой:
В результате мы имеем 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
При первом запуске нужно будет выбрать текстовый редактор, nano — будет самым привычным.
![](https://habrastorage.org/r/w1560/webt/ki/dr/an/kidranxamlfdaux2i76x5c0vjf4.png)
Для того чтобы работали расписания добавим следующие настройки:
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
Настройка часового пояса производится командой:
Для увеличения ресурса SD карты можно остановить логирование и удалить swapfile:
(Я думаю это должно уменьшить вероятность выхода из строя SD карты или порче данных при внезапных отключениях RPi в процессе эксплуатации):
Установка программ:
Для homekit2mqtt нужно установить nodejs:
Проверяем установленную версию
Установка node-red:
Запускаем:
![](https://habrastorage.org/r/w1560/webt/m7/es/jj/m7esjjrer1ip2vflmp_bgqagxle.png)
В адресной строке браузера наберите IP адрес RPi 192.168.0.10:1880
![](https://habrastorage.org/r/w1560/webt/ki/u_/qk/kiu_qkhawjr3-za-urpaetmamj4.png)
Завершаем node-red жмем Ctrl+c, переходим в директорию .node-red
И устанавливаем пакеты для node-red, они могут понадобится для тестирования, настройки и коммуникации различных устройств.
Возвращаемся в домашний каталог
Установка homekit2mqtt:
Можно попробовать запустить homekit командой
![](https://habrastorage.org/r/w1560/webt/o_/nr/wb/o_nrwbgde08t8wxz1f40goswfhc.png)
Он запустится с настройками по умолчанию и можно добавить новое устройство в программе «Дом» на вашем iPhone или iPad
Пароль пользователя pi оставим текущий.
Теперь, когда всё установлено и проверено нужно сделать резервную копию нашей SD карты тем же способом что и ранее. Сейчас всё готово для установки системы автоматики.
Установка системы на Raspberry Pi 2,3
Я опишу самый простой, на мой взгляд, способ для начинающих.
Всё действие будет происходить в Ubuntu 18.04.
Для справки по командам служит команда «man» + нужная команда.
man ls
Или нужная команда с ключём --help
ls --help
1. Установка операционной системы Raspbian Stretch Lite на microSD карту.
MicroSD карта должна быть 10 класса и ёмкостью от 8 гигабайт.
Вставьте SD карту в компьютер и введите команду:
lsblk
![](https://habrastorage.org/webt/li/ti/y4/litiy47g_6lk1faubuj78odw3vi.png)
В примере карта определяется как 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
![](https://habrastorage.org/webt/sg/kr/6w/sgkr6wb793k2l4dmscvleeo_4pa.png)
У меня wifi карта с именем wlp1s0.
Запускаем arp-scan:
arp-scan -I wlp1s0 -l
![](https://habrastorage.org/webt/vk/fz/oh/vkfzohdrqybskrape13_qijsf8e.png)
Мне нужен 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% от размера карты, это нужно для того чтобы наш образ помещался на карты разных производителей, а они могут различаться по размеру. В результате должно получиться примерно так:
![](https://habrastorage.org/webt/pi/gq/y1/pigqy1qfzik2laujmitutxwzn8g.png)
После завершения работы с gparted можно сделать резервную копию карты, чтобы в случае проблем в дальнейших экспериментах иметь уже готовый образ.
dd if=/dev/mmcblk0 | bzip2 > raspbian.bz2
теперь мы всегда можем восстановить наш диск командой:
bzcat raspbian.bz2 | dd bs=4M of=/dev/mmcblk0
В результате мы имеем microSD карту с готовой к работе операционной системой и её резервную копию.
2. Настройка Raspbian Stretch Lite.
Заходим на RPi по
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 — будет самым привычным.
![](https://habrastorage.org/webt/ki/dr/an/kidranxamlfdaux2i76x5c0vjf4.png)
Для того чтобы работали расписания добавим следующие настройки:
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
![](https://habrastorage.org/webt/m7/es/jj/m7esjjrer1ip2vflmp_bgqagxle.png)
В адресной строке браузера наберите IP адрес RPi 192.168.0.10:1880
![](https://habrastorage.org/webt/ki/u_/qk/kiu_qkhawjr3-za-urpaetmamj4.png)
Завершаем 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
![](https://habrastorage.org/webt/o_/nr/wb/o_nrwbgde08t8wxz1f40goswfhc.png)
Он запустится с настройками по умолчанию и можно добавить новое устройство в программе «Дом» на вашем iPhone или iPad
Пароль пользователя pi оставим текущий.
Теперь, когда всё установлено и проверено нужно сделать резервную копию нашей SD карты тем же способом что и ранее. Сейчас всё готово для установки системы автоматики.