smartgic.prepi

Ansible Galaxy Discord

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 kernel idle* (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.

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

À propos du projet

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

Installer
ansible-galaxy install smartgic.prepi
Licence
apache-2.0
Téléchargements
214
Propriétaire
Build smart things with magic and love!