Дек 242023
 

Ну что, вот и я решил для начинающих собрать основной костяк необходимого материала, чтобы начать без особых проблем работу с этим не самым продуктивным, но получившим бешенную популярность девайсом. Конечно, на рынке после него появилось куча клонов, подражателей и более мощных устройств, но основоположником и «закладывателем» канонов можно с уверенностью сказать стал именно Raspberry Pi. Уже появилась не одна итерация этого замечательного устройства, в чем то хуже, в чем то лучше предшественника, но сегодня за основу мы возьмем Raspberry Pi 3B+. Все, что будет написано ниже, точно будет работать (да и я уверен, что большинство команд будет работать и на более поздних и ранних устройствах, так как совместимость бешенная). Итак, к топкам.

Первое правило!
Если у вас есть внешний кредл для накопителя от которого запитывается Raspberry и вы попытаетесь так же одновременно подключить USB кабель как второй источник, то это может привести к печальным последствиям.
ПОЭТОМУ! Только один источник питания на плату, защиты на нем от этого нет, иначе спалите устройство.

Далее. У нас есть образ скачанный с официального сайта raspberrypi.com, надо его чем то записать. Есть конечно вариант, сделать это с помощью официальной утилиты, но более универсальным инструментом на текущий момент мне показался BalenaEtcher, очень всеядный и до безумия простой инструмент. Если на нем все сработало, значит 100% будет все хорошо.
Да, забыл упомянуть, операционную систему, я использую без иксов, чистый консольный вариант, так называемый Lite образ, поэтому о десктопе можно не думать )

После записи образа, и запуска девайса, с последних версий, нам в принудительном порядке потребуется создать нового пользователя. Это требование безопасности, и я его полностью поддерживаю.
Т.е. связка логин/пароль pi/raspberry УЖЕ ПО УМОЛЧАНИЮ не заботает, имейте ввиду.

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

Если мы заинтересованы в беспроводном подключении, нам нужно будет задать параметры беспроводной сети.
Для этого нужно открыть FAT раздел, который спокойно открывается под Windows (если этого не произойдет по умолчанию, после записи образа), то заходим в диспетчер дисков, и присваиваем вручную диску букву.
Открыв его, мы в обязательном порядке должны увидеть там файл config.txt, если это так, для нас это будет маркером, что раздел выбран правильно, можно читать дальше.
Возвращаемся к Wi-Fi.
Создаем в корне файл wpa_supplicant.conf
В него мы заносим информацию о нашей точке доступа:

country=US # US = USA, CA = Canada, DE = Germany, RU = Russia etc.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
    ssid="WIFI_NETWORK_NAME"
    psk="WIFI_PASSWORD"
    key_mgmt=WPA-PSK #This works with WPA2-PSK
}

После перезагрузки устройства, он автоматически скопируется по нужно нам пути:

/etc/wpa_supplicant/wpa_supplicant.conf

Поэтому, если вдруг первый запуск был пропущен, а нам необходимо подключиться к нашей сети Wi-Fi, то создаем файл по пути указанном выше, и записываем данные нашей сети.
Не забываем про команды:

sudo ifdown wlan0
sudo ifup wlan0

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

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

wpa_passphrase "12345678"

Заменяем получившуюся строку в конфиге на:

psk=450c6c130a6308081a2c7cbc0af3653627b08c44478be55b0980e4bdf34ee74f

Переходим к следующему пункту. Если нам сразу после записи образа на диск нужно активировать SSH, то в корне того же логического раздела, где лежит config.txt, необходимо создать пустой файл без расширения с наименованием ssh
Этого будет достаточно для того, чтобы произвести первый запуск девайса.
Но, если мы хотим автоматизировать создание пользователя, то нужно будет опять же в корне того же логического раздела, где лежит config.txt, создать файл userconf без расширения.
Он должен содержать в себе текст в одну линию:

username:encrypted-password

Для генерации пароля нам понадобится уже существующая машина с установленным например debain и пакетом openssl, как я и говорил ранее.

echo 'mypassword' | openssl passwd -6 -stdin

После всех этих манипуляций достаем накопитель, и подключаем его к Raspberry Pi.
Подключаем монитор, и ждем загрузки.
!Если после загрузки, нас не пускает по SSH, обязательно обновляем, и перезагружаем:

apt-get update
apt-get upgrade

После этого должно в консоль без проблем пустить.

Тюнинг:

1. Девайс наглухо завис, но он собран в корпус, и вообще к нему не сильно удобно подлазить?
Выход есть. Нужно приобрести кнопку на замыкание и впаять на плате пин обозначенный RUN
Замыкание этого пина с землей на гребенке, вызывает аппаратную перезагрузку устройства.
Толком про это нигде не написано, так что пользуйтесь.

2. Следующий вариант, когда нам нужно выключить устройство с кнопки (опять же на замыкание), хотя я честно говоря не нашел этому применение.
Для этого открываем файл /boot/config.txt
и вносим дополнение:

#Push button for shutdown
dtoverlay=gpio-shutdown,gpio_pin=21

Пояснение: При замыкании gpio 21 (40 контакт) и земли, происходит принудительная остановка всех сервисов и корректное выключение устройства.

Для управления кулером при превышении порога 60 градусов, через ножку GPIO26, нужно в файле /boot/config.txt прописать:

#FAN control
dtoverlay=gpio-fan,gpiopin=26,temp=60000

Пишем скрипт для наблюдения за температурой процессора и графического процессора temper.sh:

#!/bin/bash
 
echo -n "Temp CPU: "
echo `cat /sys/class/thermal/thermal_zone0/temp | sed -e 's/\(..\)\(.*\)/\1.\1/'`
 
echo -n "Temp GPU: "
echo `vcgencmd measure_temp|cut -c6-9`

Не забываем, что необходимо сделать скрипт исполняемым

chmod +x ./temper.sh

Чтобы проверить, что кулер будет корректно включаться после указанного порога выше 60 градусов, нужно «немного» подогреть процессор до нужной температуры.
«Нагревать» процессор будет утилита sysbench, которую предварительно нужно установить:

apt-get install sysbench

Запуск утилиты с задействованием 4 ядер:

sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 --validate run

Для перманентного отключения светодиодов на текущий момент мне известно 2 способа:
1. Надо открыть конфиг загрузки /boot/config.txt и добавить туда:

# Disable the PWR LED.
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off
 
# Disable the ACT LED.
dtparam=act_led_trigger=none
dtparam=act_led_activelow=off

2. Прописываем в rc.local команды автозагрузки:

nano /etc/rc.local
echo none > /sys/class/leds/ACT/trigger
echo none > /sys/class/leds/PWR/trigger

Для отключения индикаторов активности LAN подключения, нужно в конфиг загрузки /boot/config.txt добавить:

#LED LAN port
dtparam=eth_led0=14
dtparam=eth_led1=14

Два способа отключения модулей Wi-Fi и Bluetooth, если необходимо
1. Прописываем изменения в файле /etc/modprobe.d/raspi-blacklist.conf

# Wi-Fi
blacklist brcmfmac
blacklist brcmutil
# Bluetooth
blacklist btbcm
blacklist hci_uart

2. Прописываем изменения в файле config.txt

#Disable WiFi
dtoverlay=disable-wifi
#Disable bluetooth
dtoverlay=disable-bt
а также нужно отключить службу systemd, которая инициализирует модем, чтобы он не пытался использовать UART
$ sudo systemctl disable hciuart

А вообще, после первого запуска устройства, если вообще ничего не настраивать заранее, есть замечательный мастер, через который можно настроить очень многое:

raspi-config

Можно еще к устройству подключить таймер точного времени DS3231, инструкция для этого есть в полезных ссылках.

Полезные ссылки:
Подключение к Raspberry Pi
Wiki raspberry
Настройка WiFi на Raspberry Pi
Настройка сети Raspberry Pi 3
Использование часов реального времени на DS3231 в Raspberry Pi
Тюнинг Raspberry Pi
Управление светодиодами Raspberry Pi
An update to Raspberry Pi OS Bullseye
Raspberri pi 3 b+ Кнопка сброса и кнопка включения питания
Кнопка выключения для Raspberry Pi
Raspberry Pi — умное управление собственным активным охлаждением
Настройка Raspberry Pi 3
Записки по Rasberry Pi
Raspberry pi powerdown and powerup button
Описание Raspberry Pi
Raspberry Pi, настройка для работы в режиме Headless
Как включить SSH на Raspberry Pi
Подключение по SSH
Raspberry Pi OS Fan Temperature Control [Howto 2021]
Control a Cooling Fan on a Raspberry Pi 3
Raspberry Pi OS Fan Control
Control fan speed Raspberry Pi 3B+
Raspberry Pi 3/4 active smart cooling. Управление активным воздушным охлаждением
Терморегулятор оборотов вентилятора — несколько простых схем.
Очень простое автоматическое управление вентилятором охлаждения для блоков питания и усилителей.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)