prepi
Ansible Роль: Prepi
Эта Ansible роль применит определённые настройки для достижения наилучшей производительности платы Raspberry Pi 4B и других.
prepi
— это сокращение от "Подготовка Raspberry Pi".
Прежде всего, важное замечание: Вы несёте ответственность за выбор, сделанный с помощью этой роли, вы решаете, какой прошивкой[1] и каким EEPROM[2] хотите воспользоваться. То же правило относится и к функции разгона[3]. Помните, что разгон требует надлежащей активной системы охлаждения.
С учетом сказанного, эта роль выполняет следующие задачи (в зависимости от ваших пожеланий):
- Обновление Raspberry Pi OS до последней версии
- Добавление репозитория Debian backports (настраиваемый)
- Обновление прошивки с использованием ветки
next
, которая предоставляет ядро 5.10 и прошивку edge (настраиваемый) - Обновление EEPROM с использованием версии
beta
, которая предлагает новые функции (настраиваемый) - Настройка
initial_turbo
для ускорения процесса загрузки - Разгон Raspberry Pi до 2 ГГц (настраиваемый)
- Монтирование
/tmp
на RAMDisk - Оптимизация параметров монтирования раздела
/
для улучшения работы с SD-картой - Управление интерфейсами I2C, SPI и UART (настраиваемый)
- Установка governor CPU на
performance
, чтобы избежать переключения контекста между функциями ядраidle*
(настраиваемый) - Установка и настройка PulseAudio (не на уровне всей системы) (настраиваемый)
- Перезагрузка Raspberry Pi при установке новой прошивки или EEPROM (настраиваемый)
Эта роль была разработана на Raspberry Pi 4B с Raspberry Pi OS 64-bit.
Пожалуйста, прочитайте ссылки на документацию ниже перед принятием каких-либо решений.
- [1] https://www.raspberrypi.com/documentation/computers/os.html#rpi-update
- [2] https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-boot-eeprom
- [3] https://www.raspberrypi.com/documentation/computers/config_txt.html#overclocking-options
Требования
- Плата Raspberry Pi 4B и новее
- Raspberry Pi OS 64-bit (требуется для плат с более чем 4 ГБ ОЗУ)
Переменные роли
Доступные переменные перечислены ниже, вместе с их значениями по умолчанию (см. defaults/main.yml
):
---
# Системный пользователь для добавления в системные группы, такие как gpio, audio и т.д.
prepi_pi_user: pi
# Установите имя хоста Raspberry Pi
prepi_hostname: smartgic-pi4b8-13
# Установите governor CPU
# - ondemand (меньше потребление энергии, но меньшая производительность)
# - performance (большее потребление энергии, но большая производительность)
prepi_cpu_governor: performance
# Используйте быстрые DNS-серверы (CloudFlare и Google)
# Помните, что если вы используете DHCP-сервер, эти изменения будут переопределены
prepi_nameservers:
- 1.1.1.1
- 8.8.8.8
# Обновить прошивку
prepi_firmware_update: yes
# Какую ветку прошивки использовать
# - master (стабильная)
# - next (прошивка и ядро edge)
prepi_firmware_branch: next
# Какую версию EEPROM использовать
# - critical (редко обновляется)
# - stable (обновляется, когда новые/усовершенствованные функции успешно прошли бета-тестирование)
# - beta (новые или экспериментальные функции сначала тестируются здесь)
prepi_eeprom: beta
# Разгон CPU/GPU
prepi_overclock: yes
# Используйте с осторожностью, этот параметр позволяет использовать более высокое напряжение
prepi_force_turbo: no
# Частота CPU для разгона
# Если Raspberry Pi нестабилен, попробуйте уменьшить тактовую частоту
prepi_cpu_freq: 2000
# Частота GPU для разгона
prepi_gpu_freq: 650
# Напряжение, которое нужно использовать; чем выше тактовая частота CPU, тем выше должно быть напряжение
# 6 — это предел, когда prepi_force_turbo установлен в no, более высокое напряжение может повредить вашу плату
prepi_voltage: 6
# Включить интерфейс I2C
prepi_i2c_enable: yes
# Включить интерфейс SPI
prepi_spi_enable: yes
# Отключить интерфейс UART
prepi_uart_enable: no
# Установить и настроить PulseAudio
prepi_pulseaudio: yes
# PulseAudio будет работать при отключении пользователя и запускаться при загрузке.
prepi_pulseaudio_daemon: yes
# Включите репозиторий Debian backports для получения самых последних пакетов
prepi_backports_enable: yes
# Перезагрузка Raspberry Pi при установке новой прошивки или EEPROM
prepi_reboot: yes
# Отключите конфигурацию начального экрана (при использовании настольной версии Raspberry Pi OS)
prepi_disable_onboarding_screen: yes
Зависимости
То же, что и для раздела требований.
Пример Playbook
Файл инвентаризации с группой rpi
, которая имеет один хост с именем rpi4b01
и IP-адресом 192.168.1.97
.
[rpi]
rpi4b01 ansible_host=192.168.1.97 ansible_user=pi
Базовый playbook, работающий с группой rpi
, используя пользователя pi
для подключения через SSH (основано на инвентаризации) с некоторыми пользовательскими переменными.
---
- hosts: rpi
gather_facts: no
become: yes
# Установите Python, используя raw-модуль, чтобы удостовериться, что требования установлены
pre_tasks:
- name: Установить Python 3.x, требуемый для Ansible
raw: apt-get install -y python3
changed_when: no
- hosts: rpi
become: yes
vars:
prepi_hostname: smartgic-pi4b8-13
prepi_cpu_freq: 2000
prepi_cpu_governor: performance
prepi_force_turbo: yes
tasks:
- import_role:
name: smartgic.prepi
tags:
- prepi
- raspberry
Лицензия
MIT
Информация об авторе
Я Гаэтан Треллу (goldyfruit), давайте обсудим :) - 2021
Apply some configurations to obtain the best performances from a Raspberry Pi 4 board and later.
ansible-galaxy install smartgic/ansible-role-prepi