Всегда приятно следить за крутым хобби-экспериментом IOT, и я собрал несколько Ardunios, Trinkets и Raspberry Pi, которые всегда ждут свободных выходных. Raspberry Pi может быть удивительно универсальным маленьким компьютером, который предоставляет контакты для внешних контроллеров и датчиков, но он также может быть простым домашним сервером за 35 долларов или даже полностью функционирующим настольным компьютером с Linux.
Мои дети и я настроили свой собственный сервер Minecraft, и я сделал небольшие часы с погодой, а также поэкспериментировал с конфигурациями развертывания сервера и домашним медиа-стримером. Некоторые более сложные проекты, которые я хотел бы когда-нибудь попробовать, включают Кластер Raspberry Pi Kubernetes или Grateful Dead Time Machine. Поскольку вся ОС находится на карте Micro SD, легко сохранить несколько и прошить разные ОС, заменив их для разных проектов. На самом деле, со всеми сложными знаниями AWS и Azure, которые мне пришлось пройти для своей работы, использование Raspberry Pi для тестирования подготовки базового сервера — отличный способ сделать шаг назад и понять, что на самом деле происходит. под капотом, когда вы отправляете свои артефакты в какой-то туманный центр обработки данных с помощью простой команды.
Один набор шагов, который я всегда ищу и повторяю, предназначен для создания безголового Raspberry Pi — просто настройте ОС на SD-карте и включите ее, без клавиатуры, без монитора, только машина.
Вы, безусловно, можете загрузить Raspberry Pi с его собственной ОС, портом Debian для Linux под названием Raspbian, подключить его как настольный компьютер и сделать все вышеперечисленное. Но для меня наиболее удобным способом является настроить его в моей локальной сети Wi-Fi и подключиться к нему с рабочей станции, где я делаю все остальное, используя мою личную среду разработки и редакторы кода, чтобы также загружать программы на Raspberry Pi. Вот где идеально подходит безголовый Raspberry Pi без графического интерфейса.
В этой статье я объединил шаги из руководств, на которые я обычно ссылаюсь, чтобы у меня было несколько быстрых и простых шагов, которые нужно выполнять каждый раз, когда я собираю новый безголовый Raspberry Pi с нуля.
Предпосылки
Для этой статьи вам понадобится только Raspberry Pi, модель не имеет значения. На самом деле, большинство этих шагов больше связаны с подготовкой простого сервера Linux, поэтому их можно применить и к другому оборудованию. Вам также понадобится какое-то устройство для чтения SD-карт на вашем настольном компьютере.
Создание образа Raspberry Pi
Первый и быстрый способ настроить ОС Raspberry Pi — использовать Raspberry Pi Imager.
- Скачать копию
- Тем временем подключите SD-карту к любому устройству чтения SD-карт, которое у вас есть.
- Возможно, вы захотите переформатировать SD-карту, чтобы образ ОС был только что установлен. На компьютере с Windows я делаю это, находя диск SD-карты в проводнике в разделе «Этот компьютер» и щелкая его правой кнопкой мыши, чтобы просмотреть параметры форматирования. Выберите «FAT» в качестве типа файловой системы и значения по умолчанию для всего остального. Обратите внимание, что любые данные, уже имеющиеся на карте, будут удалены.
- После завершения загрузки Raspberry Pi Imager откройте его. Возможно, вам придется дать ему административные права на вашем компьютере.
- Вам нужно будет выбрать два варианта: 1. Выберите ОС и 2. Выберите Хранилище.
- Нажмите «Выбрать ОС» и выберите
Raspberry Pi OS (Other)
, затемRaspberry Pi OS Lite (32-bit)
. Эта версия ОС не включает среду рабочего стола, поэтому ею можно будет управлять только с терминала. - Нажмите «Выбрать хранилище», и одним из вариантов должен быть диск для SD-карты, которую вы отформатировали ранее.
- Наконец, нажмите кнопку «Запись», и имидж-сканер выполнит свою работу по загрузке загружаемой ОС на SD-карту. На моей машине этот процесс занимает около 5 минут.
SSH и сетевая конфигурация
После завершения создания образа вы можете извлечь SD-карту и загрузить Raspberry Pi с помощью монитора, а затем увидеть интерфейс командной строки Linux. Но поскольку это будет безголовая установка без периферийных устройств, нам нужно предоставить ОС дополнительную информацию, чтобы она могла подключиться к локальной сети Wi-Fi и позволить нам подключиться к ней с рабочей станции.
Если накопитель SD-карты был извлечен после записи образа, снова подключите его и откройте в Проводнике или Finder:
- Добавьте пустой файл с именем
ssh
в верхний каталог SD-карты. Файл не должен иметь расширения или какого-либо содержимого внутри. Это говорит ОС принимать SSH-соединения при загрузке. - С помощью текстового редактора создайте файл с именем
wpa_supplicant.conf
. Здесь вы добавите информацию, чтобы она могла подключаться к вашей локальной сети Wi-Fi при запуске. Вставьте следующий текст, заменив свое имя и пароль Wi-Fi:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicat GROUP=netdev
update_config=1
network={
ssid="<YOUR WIFI NAME>"
scan_ssid=1
psk="<YOUR WIFI PASSWORD>"
key_mgmt=WPA-PSK
}
- Также сохраните этот файл на SD-карте в корневом каталоге.
Первый вход
Ваша ОС Raspberry Pi должна быть в порядке. Подключите карту к Raspberry Pi и включите ее. Для загрузки потребуется всего одна или две минуты. Как только это произойдет, откройте терминал на своей рабочей станции и установите SSH-соединение, используя логин по умолчанию:
$ ssh pi@raspberrypi.local
Пароль будет raspberry
. В случае успеха вы увидите интерфейс командной строки для Raspberry Pi и готовы выполнять команды.
Набор команд в терминале будет выглядеть примерно так:
Первое, что я делаю, это меняю имя хоста. Таким образом, если я запускаю несколько Raspberry Pi на одном и том же локальном Wi-Fi, путаницы не будет.
- В терминале Raspberry Pi введите
$sudo raspi-config
. Это вызовет параметры конфигурации.
- Выберите
1 System Options
- Выберите
S4 Hostname
, и вам будет предложено изменить имя хоста. Теперь, когда вы подключитесь к машине по SSH, это будетssh pi@<NEW HOSTNAME>.local
. - Выйдите из экрана конфигурации, и вы можете перезагрузиться, если хотите.
Следующее, что нужно сделать, это как минимум изменить пароль для пользователя pi
. Мне нравится заменять пользователя pi
совершенно новым пользователем с правами администратора. Это обычные команды Linux.
- Измените пароль для
pi
на всякий случай. Введите$ passwd
и следуйте инструкциям. - Создайте нового пользователя:
$ sudo add user <USERNAME>
. Он запросит у вас пароль и запросит некоторую информацию о профиле пользователя. - Затем добавьте нового пользователя в группу
sudo
, чтобы он мог выполнять административные команды:
$ sudo usermod -aG sudo <USERNAME>
- Вы можете переключиться на нового пользователя:
$ su - <USERNAME>
- Или вы можете выйти и снова подключиться к новому пользователю:
$ sudo reboot
$ ssh <USERNAME>@<NEW HOSTNAME>.local
- После повторного подключения вы можете при желании удалить пользователя
pi
по умолчанию.
sudo deluser -remove-home pi
- И чтобы безопасно выключить Raspberry Pi:
$ sudo shutdown now
Теперь ваш Raspberry Pi настроен для автономной работы и, по крайней мере, минимально безопасен.
Редактирование кода прямо на Pi
Теперь, когда вы подготовили Raspberry Pi, вы готовы заставить его что-то делать. Вам нужно будет добавить код для запуска. По умолчанию он должен иметь рабочую среду Python. Но как передать код на Pi? Вы можете запустить простой редактор vim или nano, но это может быть немного болезненно по сравнению с редактором кода с хорошими аксессуарами на вашей локальной рабочей станции.
Один из способов обойти это — настроить свой код Raspberry Pi как удаленный репозиторий Git, записать файлы в локальный репозиторий, а затем отправить их. Раньше я так делал, это не слишком сложно, и у вас есть преимущество в том, что у вас есть локальное репо для хранения всего вашего кода и проектов, и они остаются в силе, пока вы меняете и перенастраиваете несколько настроек Raspberry Pi. Эта статья дает отличные инструкции о том, как настроить собственный удаленный репозиторий Git.
Еще более простое решение, если вы являетесь пользователем VS Code, заключается в том, что с помощью нового плагина вы можете получить доступ к каталогу на вашем Pi через SSH и редактировать файлы непосредственно на Pi в редакторе кода.
В VS Code установите плагин Remote — SSH. Затем введите CTRL/CMD + SHIFT + P
и введите Remote - SSH Connect to Host
. Он запросит URL-адрес SSH (точно так же, как указано выше), запросит пароль, затем откроется новый редактор VS Code с доступом к файловой системе Raspberry Pi.
И при всем при этом у вас есть необремененный Raspberri Pi для всей вашей домашней работы.