Aller au contenu

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

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

#!/bin/bash
socat /dev/ttyUSB1,b57600 TCP-LISTEN:8844,reuseaddr &

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

SUBSYSTEM=="tty", KERNELS=="1-1.5:1.0", SYMLINK+="volets"
Crée un lien symbolique /dev/volets pour le RFLink.

/etc/udev/rules.d/98-sim800.rules

SUBSYSTEM=="tty", KERNELS=="1-1.3:1.0", SYMLINK+="sms"
Lien symbolique /dev/sms pour le modem GSM principal.

/etc/udev/rules.d/99-sim7600.rules

SUBSYSTEM=="tty", KERNELS=="1-1.2.4:1.2", SYMLINK+="smsbackup"
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)

console=serial0,115200 console=tty1 root=PARTUUID=... rootfstype=ext4 fsck.repair=yes rootwait

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

@reboot /etc/init.d/usbToTCP.sh

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/

  1. Config Gammu : /etc/gammu-smsdrc
  2. Règles udev : /etc/udev/rules.d/97-rts.rules, 98-sim800.rules, 99-sim7600.rules
  3. Scripts SMS : /var/www/html/sms/*
  4. Répertoires spool : Créer /var/spool/gammu/{inbox,outbox,sent,error}
  5. Services systemd :
  6. gammu-smsd.service (paquet standard)
  7. rflink-tcp.service (créer manuellement)

Services systemd à créer

[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

apt install -y gammu gammu-smsd socat php-cli

Configuration réseau

  • IP Pi : DHCP depuis AdGuard
  • Gateway : 192.168.1.254
  • DNS : 192.168.1.32

Notes importantes

  1. Le RFLink utilise /dev/ttyUSB1 (pas USB0)
  2. Le modem GSM utilise /dev/ttyUSB0
  3. Le webhook SMS va vers HA sur 192.168.1.23 (pas .152)
  4. La base MySQL qoku6768_tgtg contenait les données TGTG
  5. 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

Vérification

# Test connexion SSH
ssh root@192.168.1.26

# Statut services
systemctl status gammu-smsd rflink-tcp

# Test RFLink (commande PING - pas d'émission RF)
echo -e '10;PING;\r\n' | nc localhost 8844
# Réponse attendue : 20;XX;PONG;

# Test envoi SMS
gammu-smsd-inject TEXT 0612345678 -text "Test SMS"