prepi

Ansible Galaxy Discord

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.

Пожалуйста, прочитайте ссылки на документацию ниже перед принятием каких-либо решений.

Требования

  • Плата 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
Лицензия
apache-2.0
Загрузки
204
Владелец
Build smart things with magic and love!