smartgic.prepi

Ansible Galaxy Discord

Ansible Role: Prepi

Este rol de Ansible aplicará algunas configuraciones para obtener el mejor rendimiento de una placa Raspberry Pi 4B y versiones posteriores.

prepi significa "Preparar Raspberry Pi".

Primero, una advertencia muy, MUY importante: Tú eres responsable de las decisiones que tomes con este rol, decides qué firmware[1], qué EEPROM[2] quieres usar. La misma regla se aplica a la función de overclocking[3]. Recuerda que el overclocking requiere un sistema de enfriamiento activo adecuado.

Dicho esto, este rol realiza las siguientes tareas (dependiendo de tus deseos):

  • Actualiza Raspberry Pi OS a la última versión
  • Agrega el repositorio backports de Debian (personalizable)
  • Actualiza el firmware usando la rama next, que proporciona el kernel 5.10 y firmware de frontera (personalizable)
  • Actualiza la EEPROM usando la versión beta, que ofrece características avanzadas (personalizable)
  • Configura initial_turbo para acelerar el proceso de arranque
  • Haciendo overclocking a la Raspberry Pi a 2Ghz (personalizable)
  • Monta /tmp en un RAMDisk
  • Optimiza las opciones de montaje de la partición / para mejorar la lectura/escritura de la tarjeta SD
  • Administra las interfaces I2C, SPI y UART (personalizable)
  • Establece el gobernador de la CPU a performance para evitar cambios de contexto entre las funciones del kernel idle* (personalizable)
  • Instala y configura PulseAudio (no en todo el sistema) (personalizable)
  • Reinicia la Raspberry Pi cuando se instalen nuevos firmware o EEPROM (personalizable)

Este rol se ha desarrollado en una Raspberry Pi 4B con Raspberry Pi OS 64-bit.

Por favor, lee los enlaces de documentación a continuación antes de tomar decisiones.

Requisitos

  • Placa Raspberry Pi 4B y versiones posteriores
  • Raspberry Pi OS 64-bit (requerido para placas con más de 4GB de RAM)

Variables de Rol

Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml):

---
# Usuario del sistema para agregar al grupo del sistema, como gpio, audio, etc...
prepi_pi_user: pi

# Establecer el nombre del host de Raspberry Pi
prepi_hostname: smartgic-pi4b8-13

# Establecer el gobernador de la CPU
#  - ondemand (menos consumo de energía pero menos rendimiento)
#  - performance (más consumo de energía pero más rendimiento)
prepi_cpu_governor: performance

# Utilizar servidores DNS rápidos (CloudFlare y Google)
# Ten en cuenta que si usas un servidor DHCP, estos cambios serán anulados
prepi_nameservers:
  - 1.1.1.1
  - 8.8.8.8

# Actualizar el firmware
prepi_firmware_update: yes

# Qué rama de firmware usar
#  - master (estable)
#  - next (firmware y kernel de frontera)
prepi_firmware_branch: next

# Qué versión de EEPROM usar
#  - critical (actualizado raramente)
#  - stable (actualizado cuando se han probado con éxito características nuevas/avanzadas)
#  - beta (nuevas características o experimentales se prueban aquí primero)
prepi_eeprom: beta

# Hacer overclocking a la CPU/GPU
prepi_overclock: yes

# Usar con precaución, este parámetro permite usar un voltaje más alto
prepi_force_turbo: no

# Frecuencia de CPU para overclocking
# Si la Raspberry Pi es inestable, intenta reducir la frecuencia
prepi_cpu_freq: 2000

# Frecuencia de GPU para overclocking
prepi_gpu_freq: 650

# Voltaje a usar, cuanto mayor sea la frecuencia de la CPU, mayor debe ser el voltaje
# 6 es el límite cuando prepi_force_turbo está configurado como no, un voltaje más alto podría dañar tu placa
prepi_voltage: 6

# Habilitar interfaz I2C
prepi_i2c_enable: yes

# Habilitar interfaz SPI
prepi_spi_enable: yes

# Deshabilitar interfaz UART
prepi_uart_enable: no

# Instalar y configurar PulseAudio
prepi_pulseaudio: yes

# PulseAudio persistente cuando el usuario se desconecta y se inicia al arrancar.
prepi_pulseaudio_daemon: yes

# Habilitar repositorio backports de Debian para obtener los últimos paquetes
prepi_backports_enable: yes

# Reiniciar la Raspberry Pi cuando se instalen nuevos firmware o EEPROM
prepi_reboot: yes

# Desactivar la configuración de pantalla de inicio (cuando se utiliza la versión de escritorio de Raspberry Pi OS)
prepi_disable_onboarding_screen: yes

Dependencias

Las mismas que en la sección de requisitos.

Ejemplo de Playbook

Archivo de inventario con el grupo rpi que tiene un host llamado rpi4b01 con la dirección IP 192.168.1.97.

[rpi]
rpi4b01 ansible_host=192.168.1.97 ansible_user=pi

Playbook básico que se ejecuta en el grupo rpi utilizando el usuario pi para conectarse a través de SSH (basado en el inventario) con algunas variables personalizadas.

---
- hosts: rpi
  gather_facts: no
  become: yes

  # Instalar Python usando el módulo raw para asegurarse de que se cumplen los requisitos
  pre_tasks:
    - name: Instalar Python 3.x requisito de 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

Licencia

MIT

Información del Autor

Soy Gaëtan Trellu (goldyfruit), ¡hablemos! :) - 2021

Acerca del proyecto

Apply some configurations to obtain the best performances from a Raspberry Pi 4 board and later.

Instalar
ansible-galaxy install smartgic.prepi
Licencia
apache-2.0
Descargas
214
Propietario
Build smart things with magic and love!