smartgic.prepi
Rola Ansible: Prepi
Ta rola Ansible zastosuje pewne konfiguracje, aby uzyskać najlepszą wydajność z płyty Raspberry Pi 4B i późniejszych.
prepi
oznacza "Przygotuj Raspberry Pi".
Najpierw, ważna, WAŻNA uwaga: Ty decydujesz o wyborach dokonanych za pomocą tej roli, wybierasz, które oprogramowanie układowe[1], które EEPROM[2] chcesz używać. Ta sama zasada dotyczy funkcji podkręcania[3]. Pamiętaj, że podkręcanie wymaga odpowiedniego aktywnego systemu chłodzenia.
Z tym, co powiedziano, ta rola wykonuje następujące zadania (w zależności od Twoich życzeń):
- Zaktualizuj system operacyjny Raspberry Pi do najnowszej wersji
- Dodaj repozytorium backports Debiana (możliwe do dostosowania)
- Zaktualizuj oprogramowanie układowe, używając gałęzi
next
, która dostarcza jądro 5.10 i edge firmware (możliwe do dostosowania) - Zaktualizuj EEPROM, używając wersji
beta
, która dostarcza nowe funkcje (możliwe do dostosowania) - Skonfiguruj
initial_turbo
, aby przyspieszyć proces rozruchu - Podkręć Raspberry Pi do 2Ghz (możliwe do dostosowania)
- Zamontuj
/tmp
na RAMDisk - Optymalizuj opcje montowania partycji
/
, aby poprawić odczyt/zapis karty SD - Zarządzanie interfejsami I2C, SPI i UART (możliwe do dostosowania)
- Ustaw kontroler CPU na
performance
, aby uniknąć przełączania kontekstu między funkcjami jądraidle*
(możliwe do dostosowania) - Zainstaluj i skonfiguruj PulseAudio (nie na cały system) (możliwe do dostosowania)
- Uruchom ponownie Raspberry Pi, gdy nowe oprogramowanie układowe lub EEPROM są zainstalowane (możliwe do dostosowania)
Ta rola została opracowana na Raspberry Pi 4B z Raspberry Pi OS 64-bit.
Proszę zapoznać się z linkami do dokumentacji poniżej przed podjęciem jakichkolwiek decyzji.
- [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
Wymagania
- Płyta Raspberry Pi 4B i późniejsze
- Raspberry Pi OS 64-bit (wymagana dla płyt z więcej niż 4 GB RAM)
Zmienne RoLi
Dostępne zmienne wymienione są poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml
):
---
# Użytkownik systemowy do dodania do grup systemowych jak gpio, audio, itd...
prepi_pi_user: pi
# Ustaw nazwę hosta dla Raspberry Pi
prepi_hostname: smartgic-pi4b8-13
# Ustaw kontroler CPU
# - ondemand (mniejsze zużycie energii, ale mniej wydajności)
# - performance (większe zużycie energii, ale większa wydajność)
prepi_cpu_governor: performance
# Użyj szybkich serwerów DNS (CloudFlare i Google)
# Pamiętaj, że jeśli używasz serwera DHCP, te zmiany zostaną nadpisane
prepi_nameservers:
- 1.1.1.1
- 8.8.8.8
# Zaktualizuj oprogramowanie układowe
prepi_firmware_update: yes
# Którą gałąź oprogramowania układowego użyć
# - master (stabilna)
# - next (edge firmware i jądro)
prepi_firmware_branch: next
# Którą wersję EEPROM użyć
# - critical (rzadko aktualizowany)
# - stable (aktualizowany, gdy nowe/zaawansowane funkcje zostały pomyślnie przetestowane)
# - beta (nowe lub eksperymentalne funkcje są testowane tu jako pierwsze)
prepi_eeprom: beta
# Podkręcanie CPU/GPU
prepi_overclock: yes
# Używaj ostrożnie, ten parametr pozwala na wyższe napięcie
prepi_force_turbo: no
# Częstotliwość CPU do podkręcania
# Jeśli Raspberry Pi jest niestabilny, spróbuj obniżyć zegar
prepi_cpu_freq: 2000
# Częstotliwość GPU do podkręcania
prepi_gpu_freq: 650
# Napięcie do użycia, im wyższy zegar CPU, tym wyższe napięcie powinno być
# 6 jest limitem, gdy prepi_force_turbo jest ustawione na no, wyższe napięcie może uszkodzić płytę
prepi_voltage: 6
# Włącz interfejs I2C
prepi_i2c_enable: yes
# Włącz interfejs SPI
prepi_spi_enable: yes
# Wyłącz interfejs UART
prepi_uart_enable: no
# Zainstaluj i skonfiguruj PulseAudio
prepi_pulseaudio: yes
# PulseAudio utrzymujące się po odłączeniu użytkownika i uruchamiające się przy rozruchu.
prepi_pulseaudio_daemon: yes
# Włącz repozytorium backports Debiana, aby uzyskać najnowsze pakiety
prepi_backports_enable: yes
# Uruchom ponownie Raspberry Pi, gdy nowe oprogramowanie układowe lub EEPROM są zainstalowane
prepi_reboot: yes
# Wyłącz konfigurację ekranu powitalnego (przy użyciu wersji desktopowej Raspberry Pi OS)
prepi_disable_onboarding_screen: yes
Zależności
Takie same jak w sekcji wymagań.
Przykładowy Playbook
Plik inwentarzowy z grupą rpi
, która ma jeden host nazwany rpi4b01
z adresem IP 192.168.1.97
.
[rpi]
rpi4b01 ansible_host=192.168.1.97 ansible_user=pi
Podstawowy playbook działający na grupie rpi
, używający użytkownika pi
do połączenia przez SSH (na podstawie inwentarza) z kilkoma dostosowanymi zmiennymi.
---
- hosts: rpi
gather_facts: no
become: yes
# Zainstaluj Pythona, używając surowego modułu, aby upewnić się, że wymagania są zainstalowane
pre_tasks:
- name: Zainstaluj Pythona 3.x, wymaganie 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
Licencja
MIT
Informacje o autorze
Jestem Gaëtan Trellu (goldyfruit), porozmawiajmy :) - 2021
Apply some configurations to obtain the best performances from a Raspberry Pi 4 board and later.
ansible-galaxy install smartgic.prepi