Documentation Raspberry Pi 3 - Carte SD Originale¶
Vue d'ensemble¶
Ce document décrit la configuration complète du Raspberry Pi 3 avant migration vers le boot réseau (NFS).
Sauvegarde effectuée le : 2026-03-07
Emplacement backup : proxmox (.32):/root/rpi3-backup/
Système d'exploitation¶
- OS : Raspberry Pi OS (Debian 11 Bullseye)
- Architecture : ARM64
- Kernel : kernel8.img
Services principaux¶
1. Gammu-SMSD (Gateway SMS)¶
Permet l'envoi et la réception de SMS via modem USB GSM.
Paquet : gammu-smsd v1.42.0
Config : /etc/gammu-smsdrc
Port modem : /dev/ttyUSB0
Téléphone : 0685397996
[gammu]
port = /dev/ttyUSB0
connection = at
synchronizetime = yes
[smsd]
PhoneId = 0685397996
Service = files
RunOnReceive = /var/www/html/sms/receive.sh
RunOnFailure = /var/www/html/sms/error.sh
# Répertoires spool
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/
# Base de données MySQL
Driver = native_mysql
Host = localhost
User = gammu_user
Password = mot_de_passe_securise
Database = qoku6768_tgtg
Script réception (/var/www/html/sms/receive.sh) :
- Envoie webhook vers Home Assistant : http://192.168.1.23:8123/api/webhook/-receivedsms-06550
- Envoie notification Telegram (bot: 6801412263)
Script envoi (/var/www/html/sms/send.php) :
- API PHP pour envoyer des SMS via gammu-smsd-inject
- Paramètres : ?numero=XXX&texte=YYY
2. RFLink vers TCP (Somfy RTS)¶
Bridge série vers TCP pour contrôler les volets Somfy via RFLink.
Script : /etc/init.d/usbToTCP.sh
Port série : /dev/ttyUSB1 (57600 baud)
Port TCP : 8844
3. MariaDB¶
Version : MariaDB 10.5.29
Base : qoku6768_tgtg
Usage : Stockage SMS reçus + données TGTG
Règles udev¶
/etc/udev/rules.d/97-rts.rules¶
Crée un lien symbolique /dev/volets pour le RFLink.
/etc/udev/rules.d/98-sim800.rules¶
Lien symbolique /dev/sms pour le modem GSM principal.
/etc/udev/rules.d/99-sim7600.rules¶
Lien symbolique /dev/smsbackup pour le modem GSM de secours.
Configuration Boot¶
/boot/config.txt (extraits importants)¶
dtparam=audio=on
camera_auto_detect=1
display_auto_detect=1
dtoverlay=vc4-kms-v3d
arm_64bit=1
enable_uart=1
/boot/cmdline.txt (original)¶
Crontabs¶
root¶
@reboot /etc/init.d/usbToTCP.sh
@reboot ip route add default via 192.168.1.254 dev eth0
@reboot rm -frd /var/spool/gammu/outbox/*
0 */1 * * * /etc/init.d/usbToTCP.sh
15 8,19 * * * wget ... http://192.168.1.26/tgtg/cron.php
*/1 * * * * wget ... http://192.168.1.26/tgtg/crons/statsPaniers.php
12 8 * * * wget ... http://192.168.1.26/tgtg/crons/updateTgtgAppVersion.php
0 3 * * * /home/jeremie/scripts/dailySqlBackup.sh
0 0,15,30,45 * * * /usr/bin/php /var/www/html/tgtg/crons/eventLog.cron.hourly.php
jeremie¶
Utilisateurs¶
| User | UID | Home | Rôle |
|---|---|---|---|
| root | 0 | /root | Administration |
| jeremie | 1000 | /home/jeremie | Utilisateur principal |
| www-data | 33 | /var/www | Serveur web |
Paquets installés (importants)¶
| Paquet | Version | Usage |
|---|---|---|
| gammu | 1.42.0 | Gestion modem GSM |
| gammu-smsd | 1.42.0 | Daemon SMS |
| socat | 1.7.4.1 | Bridge série/TCP |
| mariadb-server | 10.5.29 | Base de données |
| php7.3 | 7.3.33 | Scripts web |
| php7.4 | 7.4.33 | Scripts web |
Structure des fichiers sauvegardés¶
/root/rpi3-backup/
├── boot/
│ ├── cmdline.txt # Params boot originaux
│ └── config.txt # Config Pi
├── crontabs/
│ ├── jeremie # Crontab jeremie
│ └── root # Crontab root
├── etc/
│ ├── gammu-smsdrc # Config Gammu
│ ├── init.d/
│ │ └── usbToTCP.sh # Script RFLink
│ └── udev/rules.d/
│ ├── 97-rts.rules # Symlink /dev/volets
│ ├── 98-sim800.rules # Symlink /dev/sms
│ └── 99-sim7600.rules # Symlink /dev/smsbackup
├── home/
│ ├── .gammurc # Config Gammu user
│ ├── .ssh/
│ │ ├── github7 # Clé SSH privée
│ │ ├── github7.pub # Clé SSH publique
│ │ └── known_hosts
│ └── scripts/
│ ├── dailySqlBackup.sh
│ ├── listUSB.sh
│ └── ...
├── scripts/
│ └── usbToTCP.sh
├── var-www/sms/
│ ├── error.sh # Handler erreur SMS
│ ├── receive.sh # Webhook réception SMS
│ ├── retryBackup1.sh # Retry via modem backup
│ ├── send.php # API envoi SMS
│ └── logs/
├── usbToTcp.py # Alternative Python
└── sdcard-full-20260307.img.gz # Image partielle (erreur I/O)
Migration vers Boot NFS (LXC 141)¶
Fichiers à restaurer sur /srv/nfs/rpi3/¶
- Config Gammu :
/etc/gammu-smsdrc - Règles udev :
/etc/udev/rules.d/97-rts.rules,98-sim800.rules,99-sim7600.rules - Scripts SMS :
/var/www/html/sms/* - Répertoires spool : Créer
/var/spool/gammu/{inbox,outbox,sent,error} - Services systemd :
gammu-smsd.service(paquet standard)rflink-tcp.service(créer manuellement)
Services systemd à créer¶
/etc/systemd/system/rflink-tcp.service¶
[Unit]
Description=RFLink to TCP Bridge (socat)
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/socat /dev/ttyUSB1,b57600 TCP-LISTEN:8844,reuseaddr,fork
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Paquets à installer sur le rootfs NFS¶
Configuration réseau¶
- IP Pi : DHCP depuis AdGuard
- Gateway : 192.168.1.254
- DNS : 192.168.1.32
Notes importantes¶
- Le RFLink utilise
/dev/ttyUSB1(pas USB0) - Le modem GSM utilise
/dev/ttyUSB0 - Le webhook SMS va vers HA sur 192.168.1.23 (pas .152)
- La base MySQL
qoku6768_tgtgcontenait les données TGTG - Les crontabs TGTG pointent vers 192.168.1.26 (ancien serveur web)
Statut Migration Boot NFS¶
Migration effectuée le : 2026-03-07 Statut : ✅ Opérationnel
Architecture Boot Réseau¶
┌─────────────────────────────────────────────────────────────────┐
│ Proxmox (.32) │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ LXC 141 - pxe-rpi (.191) │ │
│ │ ├─ dnsmasq : TFTP + Proxy DHCP (PXE options) │ │
│ │ └─ /srv/tftp : bootloader + kernel Pi3 │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ├─ NFS Server : /srv/nfs/rpi3 (rootfs Raspberry Pi OS) │
│ └─ IP Proxmox : 192.168.1.32 │
└─────────────────────────────────────────────────────────────────┘
│
│ PXE Boot + NFS Root
▼
┌─────────────────────────────────────────────────────────────────┐
│ Raspberry Pi 3 (.26) │
│ ├─ Boot TFTP : récupère kernel + initramfs depuis .191 │
│ ├─ Root NFS : monte /srv/nfs/rpi3 depuis .32 │
│ ├─ /dev/sms (ttyUSB0) : Modem GSM CH340 (Gammu) │
│ └─ /dev/volets (ttyUSB1) : RFLink CH340 → TCP:8844 │
└─────────────────────────────────────────────────────────────────┘
Services Opérationnels¶
| Service | État | Port | Description |
|---|---|---|---|
| gammu-smsd | ✅ Actif | - | Gateway SMS via modem GSM |
| rflink-tcp | ✅ Actif | 8844 | Bridge RFLink série→TCP |
Règles udev (NFS rootfs)¶
Fichier : /srv/nfs/rpi3/etc/udev/rules.d/90-usb-serial.rules
# Règles udev basées sur les ports USB physiques
# Car les deux CH340 ont le même idVendor:idProduct (1a86:7523)
# RFLink (CH340 sur port USB 1-1.5) -> /dev/volets
SUBSYSTEM=="tty", KERNELS=="1-1.5:1.0", SYMLINK+="volets", MODE="0666"
# Modem SMS SIM800 (CH340 sur port USB 1-1.3) -> /dev/sms
SUBSYSTEM=="tty", KERNELS=="1-1.3:1.0", SYMLINK+="sms", MODE="0666"
# SIM7600 Modem 4G (backup) -> /dev/smsbackup
SUBSYSTEM=="tty", ATTRS{idVendor}=="1e0e", ATTRS{idProduct}=="9001", ATTR{bInterfaceNumber}=="02", SYMLINK+="smsbackup", MODE="0666"
Services systemd¶
gammu-smsd.service :
[Unit]
Description=Gammu SMS Daemon
After=network.target dev-sms.device
Wants=dev-sms.device
StartLimitIntervalSec=300
StartLimitBurst=5
[Service]
Type=simple
ExecStartPre=/bin/sleep 3
ExecStart=/usr/bin/gammu-smsd --config /etc/gammu-smsdrc
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
rflink-tcp.service :
[Unit]
Description=RFLink to TCP Bridge (socat)
After=network.target dev-volets.device
Wants=dev-volets.device
[Service]
Type=simple
ExecStart=/usr/bin/socat /dev/volets,b57600,raw,echo=0 TCP-LISTEN:8844,reuseaddr,fork
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target