smartgic.prepi
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 kernelidle*
(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.
- [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
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
Apply some configurations to obtain the best performances from a Raspberry Pi 4 board and later.
ansible-galaxy install smartgic.prepi