smartgic.prepi
Rôle Ansible : Prepi
Ce rôle Ansible appliquera certaines configurations pour obtenir les meilleures performances d'une carte Raspberry Pi 4B et des modèles ultérieurs.
prepi
signifie "Préparer Raspberry Pi".
Tout d'abord, un avertissement très important : Vous êtes responsable des choix faits avec ce rôle, vous décidez quel firmware[1], quel EEPROM[2] vous souhaitez utiliser. La même règle s'applique à la fonction d'overclocking[3]. N'oubliez pas que l'overclocking nécessite un système de refroidissement actif approprié.
Cela dit, ce rôle effectue les tâches suivantes (selon vos souhaits) :
- Mettre à jour le Raspberry Pi OS à la dernière version
- Ajouter le dépôt backports de Debian (personnalisable)
- Mettre à jour le firmware en utilisant la branche
next
, qui fournit le kernel 5.10 et un firmware avancé (personnalisable) - Mettre à jour l'EEPROM en utilisant la version
beta
, qui fournit des fonctionnalités avancées (personnalisable) - Configurer
initial_turbo
pour accélérer le processus de démarrage - Overclocker le Raspberry Pi à 2 GHz (personnalisable)
- Monter
/tmp
sur un RAMDisk - Optimiser les options de montage de la partition
/
pour améliorer la lecture/écriture sur la carte SD - Gérer les interfaces I2C, SPI et UART (personnalisable)
- Définir le régime CPU sur
performance
pour éviter le changement de contexte entre les fonctions kernelidle*
(personnalisable) - Installer et configurer PulseAudio (non systémiquement) (personnalisable)
- Redémarrer le Raspberry Pi lorsque de nouveaux firmwares ou EEPROM sont installés (personnalisable)
Ce rôle a été développé sur un Raspberry Pi 4B avec Raspberry Pi OS 64 bits.
Veuillez lire les liens de documentation ci-dessous avant de prendre des décisions.
- [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
Exigences
- Carte Raspberry Pi 4B et ultérieure
- Raspberry Pi OS 64 bits (nécessaire pour les modèles avec plus de 4 Go de RAM)
Variables du Rôle
Les variables disponibles sont listées ci-dessous, avec les valeurs par défaut (voir defaults/main.yml
) :
---
# Utilisateur du système à ajouter aux groupes système tels que gpio, audio, etc...
prepi_pi_user: pi
# Définir le nom d'hôte Raspberry Pi
prepi_hostname: smartgic-pi4b8-13
# Définir le régime CPU
# - ondemand (moins de consommation d'énergie mais moins de performances)
# - performance (plus de consommation d'énergie mais plus de performances)
prepi_cpu_governor: performance
# Utiliser des serveurs DNS rapides (CloudFlare et Google)
# Gardez à l'esprit que si vous utilisez un serveur DHCP, ces changements seront remplacés
prepi_nameservers:
- 1.1.1.1
- 8.8.8.8
# Mettre à jour le firmware
prepi_firmware_update: yes
# Quelle branche de firmware utiliser
# - master (stable)
# - next (firmware et kernel avancés)
prepi_firmware_branch: next
# Quelle version de l'EEPROM utiliser
# - critical (rarement mise à jour)
# - stable (mise à jour lorsque de nouvelles fonctionnalités ont été correctement testées en beta)
# - beta (de nouvelles fonctionnalités expérimentales sont testées ici en premier)
prepi_eeprom: beta
# Overclocker le CPU/GPU
prepi_overclock: yes
# Utiliser avec précaution, ce paramètre permet d'utiliser une tension plus élevée
prepi_force_turbo: no
# Fréquence CPU à overclocker
# Si le Raspberry Pi est instable, essayez de réduire l'horloge
prepi_cpu_freq: 2000
# Fréquence GPU à overclocker
prepi_gpu_freq: 650
# Tension à utiliser, plus la fréquence CPU est élevée, plus la tension doit être élevée
# 6 est la limite lorsque prepi_force_turbo est défini sur non, une tension plus élevée pourrait endommager votre carte
prepi_voltage: 6
# Activer l'interface I2C
prepi_i2c_enable: yes
# Activer l'interface SPI
prepi_spi_enable: yes
# Désactiver l'interface UART
prepi_uart_enable: no
# Installer et configurer PulseAudio
prepi_pulseaudio: yes
# PulseAudio persistant lorsque l'utilisateur se déconnecte et démarre au démarrage.
prepi_pulseaudio_daemon: yes
# Activer le dépôt backports de Debian pour obtenir les derniers paquets
prepi_backports_enable: yes
# Redémarrer le Raspberry Pi lorsque de nouveaux firmwares ou EEPROM sont installés
prepi_reboot: yes
# Désactiver la configuration de l'écran d'accueil (lors de l'utilisation de la version bureau de Raspberry Pi OS)
prepi_disable_onboarding_screen: yes
Dépendances
Identique à la section des exigences.
Exemple de Playbook
Fichier d'inventaire avec le groupe rpi
qui a un hôte nommé rpi4b01
avec l'adresse IP 192.168.1.97
.
[rpi]
rpi4b01 ansible_host=192.168.1.97 ansible_user=pi
Playbook de base fonctionnant sur le groupe rpi
utilisant l'utilisateur pi
pour se connecter via SSH (basé sur l'inventaire) avec quelques variables personnalisées.
---
- hosts: rpi
gather_facts: no
become: yes
# Installer Python en utilisant le module brute pour s'assurer que les exigences sont installées
pre_tasks:
- name: Installer Python 3.x exigé par 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
Licence
MIT
Informations sur l'Auteur
Je suis Gaëtan Trellu (goldyfruit), discutons :) - 2021
Apply some configurations to obtain the best performances from a Raspberry Pi 4 board and later.
ansible-galaxy install smartgic.prepi