Основа
О самой железке.
Прежде всего, это сама Raspberry Pi 4B 8Gb.
В качестве расширения взял корпус Argon ONE M.2 для использования SSD диска.
1Gb M.2 SSD диск
2Gb USB HDD диск
SSD взял на 1Gb для того, чтобы на нем сразу всё и собрать - и хранилище, и систему… Но данный подход не очень оправдал себя. Поэтому решил хранилища вынести всё-таки на отдельный диск. Но SSD уже менять не стал. На самом деле такой размер SSD точно избыточен (при наличии внешнего HDD).
HDD взял на 2Gb, чтобы уж с запасом ) Да и не дорогие они сейчас.
Для умного дома еще брал стик Zigbee CC2531, но это уже совсем другая история - про умный дом. Поэтому, если вдруг дойду до описания моих экспериментов с умным домом на основе «Малинки», то там уже и этот опыт опишу.
Итак, по порядку.
Сборка и установка OS
Первым делом - установка OS на «Малинку».
Особенность в установке на SSD в том, что нужно переключить в «Малинке» источник загрузки.
Важно! Заранее позаботьтесь о наличии у вас USB-кабеля USB A(m) - USB A(m), в простонародье именуемый «папа-папа». Без него будет не просто решить проблему записи непосредственно на SSD операционной системы.
Для этого есть отличное описание вот тут:
https://struchkov.dev/blog/raspberry-home-cloud-services-ecosystem/
Однако, данную инструкцию я использовал только до раздела «Первичная настройка».
Если коротко, то суть в том, что надо еще до сборки корпуса переключить режим загрузки Raspberry PI c MicroSD на USB (SSD диск по сути будте подключен к PI через USB).
Для этого выполняем следующую последовательность:
1. Скачиваем на обыкновенный компьютер с сайта https://www.raspberrypi.com/software/ программу Raspberry PI Imager последней версии.
2. На MicroSD записываем утилиту USB Boot. Для этого подключаем MicroSD к нашему компьютеру, запускаем скачанную программу, в ней выбираем
Choose OS –> Misc utility images –> Bootloader –> USB Boot.
Далее выбираем источник - нашу MicroSD.
3. Вставляем MicroSD в Raspberry, запускаем ее и ждём 3-4 минуты. Всё это должно сопровождаться частым миганием красного диода на «Малинке».
4. Выключаем PI, вынимаем MicroSD.
Наш девайс готов к загрузке через USB.
Далее, собираем малинку в корпус по инструкции, вставляем в него SSD диск.
Единственное, не вставляем пока USB-мост, который соединяет как раз модуль с SSD диском с основной частью «Малинки».
Вот тут нам и понадобится тот самый кабель «папа-папа».
Не подключая Raspberry к питанию, нижний модуль с SSD диском подключаем этим кабелем к компьютеру, на который мы установили Raspberry PI Imager. Если предварительно наш диск был отформатирован, то компьютер его увидит как внешний диск.
В программе выбираем тип операционной системы, которую собираемся использовать. Я использую Raspberry Pi OS Lite (64-bit) без графического интерфейса, т.к. работаю с «Малинкой» удаленно через SSH посредством терминала.
Все дальнейшие описания будут именно под этот тип инсталляции.
В этом случае выбираем
Raspberry PI OS (other) -> Raspberry Pi OS Lite (64-bit).
В источнике выбираем появившийся внешний диск (у меня это был ARGON).
Первичную настройку и настройку Удаленного доступа можно сделать сразу в программе Raspberry PI Imager, нажав перед запуском записи, нажав кнопку «шестеренка» и включив там сразу SSH сервер и заведя основного пользователя. Однако, если вы это забудете сделать (как обычно забываю я), то далее я опишу как это сделать.
Нажимаем кнопку «записать».
Всё. Raspberry Pi заряжен и готов к работе.
Вставляем USB-мост, подключаем к питанию, запускаем.
Первичная настройка
Как я уже сказал, я пользуюсь версией операционной системы без графического интерфейса. И часть того, что будет описано в следующих двух разделах актуально, если вы таки не нажали на шестеренку при записи системы на SSD.
Однако, самую первую настройку всё равно проще производить с экрана Raspberry. Поэтому я подключаю к ней по HDMI монитор и USB клавиатуру и делаю два действия.
1. Завожу основного пользователя (если не менять, то это будет пользователь pi, но я меняю на привычного мне пользователя.
2. Настраиваю SSH сервер, чтобы дальше можно было работать с Raspberry удаленно.
Да. Пока, всё, что мы делаем - это без пробрасывания нашего сервера наружу, поэтому в некоторых случаях я на этом этапе «снижаю требования» к безопасности. Однако, если вы сразу предполагаете делать свой сервер внешним, то позаботьтесь уже на этом этапе о безопасности, придумав достаточно сложный пароль для вашего основного пользователя.
Итак, подключаю «малинку» к монитору и клавиатуре и вижу запрос на имя пользователя и затем на пароль к нему (его запросят дважды).
После этого устройство полностью готово.
Сразу, не отходя от кассы, смотрим IP адрес нашего устройства, запустив команду:
ifconfig
Я подключил «Малинку» сразу к проводной сети, поэтому меня интересует адрес устройства eth0. Назовем его server-IP. У меня это был 192.168.50.89.
Далее, для удобства, на уровне роутера, я присвоил этот адрес как статический своему серверу, чтобы он вдруг неожиданно не поменялся по DHCP - мало ли что?
Удаленный доступ
Ну и напоследок запускаю сервер SSH на Raspberry, чтобы уже всё остальное делать дистанционно.
Всё с той же клавиатуры и монитора выполняю следующие действия:
sudo raspi-config
Запускается программа настройки «Малинки».
Нас там будет интересовать несколько вещей, но прежде всего это удаленный доступ.
Идем в
Interfacing Options -> SSH
и выбираем YES.
Всё… Удаленный доступ включен.
Пробуем подключиться с другого компьютера удаленно. У меня это Mac, поэтому я просто запускаю Terminal:
ssh USER@server-IP
Здесь:
USER - это то имя пользователя, которого вы создали (по-умолчанию это пользователь pi)
server-IP - это IP адрес «Малинки» из команды ifconfig.
У меня, соответственно, это выглядит так:
ssh uuu@192.168.50.89
Если всё сделано правильно, то вы увидите запрос пароля для указанного пользователя, и далее попадете в терминал самой «Малинки».
Супер!
Возможно, что введя указанную выше команду вы получите сообщение:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Это означает, что вы уже раньше подключались, скорее всего, по SSH к данному адресу, и вам необходимо заменить ключ подключения.
Тогда вам уже на удаленном компьютере нужно выполнить следующие действия:
cd ~
rm .ssh/known_hosts
После этого еще раз выполнить команду подключения по SSH.
Система запросит у вас согласие на генерацию нового ключа, отвечаете с клавиатуры «yes». Вводите пароль.
Всё должно получиться…
Локализация
Вообще, пока еще монитор и клавиатура подключены к Raspberry, можете побегать по меню и посмотреть доступные настройки.
Так, вы можете поменять пароль созданному пользователю, разогнать процессор и многое другое. Но нас будет интересовать лишь несколько опций:
1. Настройка русской локализации.
Заходим в
Localisation Options -> Locale
В списке находим ru_RU.UFT-8 UFT-8 (или те, которые нужны именно вам) и ставим *напротив. Нажимаем Ok.
Нас запрашивают локализацию по-умолчанию. Я оставляю en, но если вы хотите, то можете сделать ru - тогда все системные сообщения, подсказки и пр. система будет выдавать на русском языке.
2. Ставим нашу тайм-зону.
Localisation Options -> Timezone
Там всё просто.
Всё. Пока достаточно.
Отключаем монитор и клавиатуру - они нам больше не понадобятся. По крайней мере, в ближайшее время.
Обновление и перезапуск
Наша «Малинка» готова к следующим нашим шагам. Но перед этим обновим систему до последней версии.
Все дальнейшие шаги можно, безусловно, выполнять и на самом сервере, но я их уже делаю дистанционно:
sudo apt update
sudo apt full-upgrade
sudo rpi-update
sudo reboot
Тюнинг корпуса Argon
Немного меняем обороты вентилятора корпуса, чтобы он был тише. Опция совершенно не обязательная.
Скачиваем программу управления:
curl https://download.argon40.com/argon1.sh | bash
Смотрим текущую температуру (просто для оценки):
vcgencmd measure_temp
Настраиваем новые параметры:
argonone-config
Выбираем пункт 2.
Далее устанавливаем параметры. Я ставлю их так:
55 - 30%
60 - 50%
65 - 100%
Далее займемся монтированием дисков и обеспечения к ним доступа с других устройств.
Почему и зачем я этим занимаюсь, написано здесь:
Домашний сервер. Личная экосистема. Пролог.
#RaspberryPi #УмныйДом #ХочуКомфорт #ДомашнийСервер #ЛичнаяЭкосистема