Code source wiki de Raspberry Pi
Masquer les derniers auteurs
| author | version | line-number | content |
|---|---|---|---|
![]() |
1.1 | 1 | == Système == |
| 2 | |||
| 3 | |=Élément|=Valeur | ||
| 4 | |Machine|Raspberry Pi 4 | ||
| 5 | |OS|Debian 13, sans environnement graphique | ||
| 6 | |Cible systemd|##multi-user.target## | ||
| 7 | |Réseau|Wi-Fi | ||
| 8 | |Stockage des sauvegardes|SSD USB | ||
| 9 | |||
| 10 | == Services == | ||
| 11 | |||
| 12 | === Conteneurs === | ||
| 13 | |||
| 14 | |=Service|=Rôle | ||
| 15 | |AdGuard Home|DNS local, blocage, réécriture DNS | ||
| 16 | |OLED Stats|Statistiques sur l'écran OLED du boîtier | ||
| 17 | |Portainer + Portainer Agent|Gestion Docker | ||
| 18 | |Watchtower|Mise à jour automatique des images | ||
| 19 | |||
| 20 | === Natifs === | ||
| 21 | |||
| 22 | |=Service|=Rôle | ||
| 23 | |meshtasticd|Nœud Meshtastic LoRa (HAT SX1262 en SPI) | ||
| 24 | |Jellyfin|Serveur multimédia | ||
| 25 | |MariaDB|Base de données | ||
| 26 | |fail2ban|Blocage des tentatives SSH | ||
| 27 | |smartmontools|Surveillance du SSD | ||
| 28 | |sysstat, acct|Statistiques système, comptabilité des processus | ||
| 29 | |chkrootkit, Lynis|Audit nocturne par timer | ||
| 30 | |led-anim|Animation du bandeau LED | ||
| 31 | |||
| 32 | == Outils == | ||
| 33 | |||
| 34 | Plakar (dépôt), uhubctl, yt-dlp et client meshtastic (pipx), outils RTL-SDR. | ||
| 35 | |||
| 36 | == Configuration == | ||
| 37 | |||
| 38 | === Wi-Fi : désactiver l'économie d'énergie === | ||
| 39 | |||
| 40 | Le lien décroche sur les gros transferts SFTP quand l'économie d'énergie est active : | ||
| 41 | |||
| 42 | {{code language="bash"}} | ||
| 43 | sudo nmcli connection modify "<SSID>" 802-11-wireless.powersave 2 | ||
| 44 | sudo nmcli connection up "<SSID>" | ||
| 45 | {{/code}} | ||
| 46 | |||
| 47 | === SSD USB sur pont ASMedia === | ||
| 48 | |||
| 49 | Le pont se déconnecte sous forte charge en mode UAS. Forcer le mode usb-storage en ajoutant à la ligne unique de ##/boot/firmware/cmdline.txt## (identifiants donnés par ##lsusb##) : | ||
| 50 | |||
| 51 | {{code}} | ||
| 52 | usb-storage.quirks=<VID>:<PID>:u | ||
| 53 | {{/code}} | ||
| 54 | |||
| 55 | Montage à la demande dans ##/etc/fstab##, sans bloquer le démarrage si le disque est absent : | ||
| 56 | |||
| 57 | {{code}} | ||
| 58 | UUID=<UUID> <POINT_MONTAGE> <FS> defaults,nofail,x-systemd.automount 0 2 | ||
| 59 | {{/code}} | ||
| 60 | |||
| 61 | Empêcher l'écriture sur la carte SD quand le SSD n'est pas monté (à faire sur le point de montage vide) : | ||
| 62 | |||
| 63 | {{code language="bash"}} | ||
| 64 | sudo chattr +i <POINT_MONTAGE> | ||
| 65 | {{/code}} | ||
| 66 | |||
| 67 | === SPI pour le module LoRa === | ||
| 68 | |||
| 69 | Dans ##/boot/firmware/config.txt## : | ||
| 70 | |||
| 71 | {{code language="ini"}} | ||
| 72 | dtparam=spi=on | ||
| 73 | dtoverlay=spi0-0cs | ||
| 74 | {{/code}} | ||
| 75 | |||
| 76 | === meshtasticd === | ||
| 77 | |||
| 78 | Les réglages vont dans ##/etc/meshtasticd/config.d/## : ces fichiers survivent aux mises à jour du paquet, contrairement à ##config.yaml##. | ||
| 79 | |||
| 80 | ##99-lora.yaml##, valeurs pour le HAT Waveshare SX126X : | ||
| 81 | |||
| 82 | {{code language="yaml"}} | ||
| 83 | Lora: | ||
| 84 | Module: sx1262 | ||
| 85 | DIO2_AS_RF_SWITCH: true | ||
| 86 | CS: 21 | ||
| 87 | IRQ: 16 | ||
| 88 | Busy: 20 | ||
| 89 | Reset: 18 | ||
| 90 | SX126X_ANT_SW: 6 | ||
| 91 | {{/code}} | ||
| 92 | |||
| 93 | ##98-webserver.yaml## : | ||
| 94 | |||
| 95 | {{code language="yaml"}} | ||
| 96 | Webserver: | ||
| 97 | Port: 443 | ||
| 98 | RootPath: /usr/share/meshtasticd/web | ||
| 99 | {{/code}} | ||
| 100 | |||
| 101 | === Outils Python === | ||
| 102 | |||
| 103 | {{code language="bash"}} | ||
| 104 | sudo apt install pipx | ||
| 105 | pipx install meshtastic | ||
| 106 | pipx install yt-dlp | ||
| 107 | pipx ensurepath | ||
| 108 | {{/code}} | ||
| 109 | |||
| 110 | Mise à jour : ##pipx upgrade-all##. | ||
| 111 | |||
| 112 | === led-anim === | ||
| 113 | |||
| 114 | Le script dépend de ##rpi_ws281x##, installé dans un venv dédié : | ||
| 115 | |||
| 116 | {{code language="bash"}} | ||
| 117 | sudo python3 -m venv /opt/led-anim/venv | ||
| 118 | sudo /opt/led-anim/venv/bin/pip install rpi_ws281x | ||
| 119 | {{/code}} | ||
| 120 | |||
| 121 | Il doit tourner en root : ##rpi_ws281x## accède directement au DMA et au PWM. | ||
| 122 | |||
| 123 | === Portainer Agent === | ||
| 124 | |||
| 125 | L'agent doit être à la même version que le Portainer qui le pilote : épingler son tag sur celui du serveur plutôt que ##latest##. | ||
| 126 | |||
| 127 | === Services désactivés === | ||
| 128 | |||
| 129 | ModemManager (sonde les ports série et peut perturber un nœud Meshtastic en USB), bluetooth, hciuart. |
