Ajout de la prise en charge du mode headless pour le système timelapse, y compris la configuration des variables d'environnement, l'amélioration de la connexion WiFi et la vérification de l'accessibilité de la caméra. Création d'un script d'installation pour les dépendances nécessaires en mode headless.
This commit is contained in:
51
script.sh
51
script.sh
@@ -39,7 +39,11 @@ cleanup() {
|
||||
trap 'cleanup 1' INT TERM
|
||||
|
||||
log "==============================================================="
|
||||
log "Démarrage du système timelapse"
|
||||
log "Démarrage du système timelapse (mode headless)"
|
||||
|
||||
# Configuration des variables d'environnement pour mode headless
|
||||
export LIBCAMERA_LOG_LEVELS=3
|
||||
export DISPLAY=:0
|
||||
|
||||
# Fonction pour se connecter au WiFi avec plusieurs tentatives
|
||||
connect_wifi() {
|
||||
@@ -47,9 +51,38 @@ connect_wifi() {
|
||||
local password="kingcard"
|
||||
local retries=0
|
||||
|
||||
log "Vérification de l'interface WiFi..."
|
||||
if ! ip link show | grep -q wlan0; then
|
||||
log "Interface WiFi non trouvée ou désactivée"
|
||||
# Essayer d'activer l'interface si elle existe
|
||||
if ip link show wlan0 &>/dev/null; then
|
||||
log "Tentative d'activation de wlan0"
|
||||
ip link set wlan0 up
|
||||
sleep 2
|
||||
fi
|
||||
fi
|
||||
|
||||
while [ $retries -lt $MAX_RETRIES ]; do
|
||||
log "Tentative de connexion WiFi ($((retries+1))/$MAX_RETRIES)"
|
||||
nmcli dev wifi connect "$ssid" password "$password"
|
||||
|
||||
# Essayer d'abord avec nmcli si disponible
|
||||
if command -v nmcli >/dev/null 2>&1; then
|
||||
nmcli dev wifi connect "$ssid" password "$password"
|
||||
# Sinon essayer avec wpa_supplicant
|
||||
elif command -v wpa_cli >/dev/null 2>&1; then
|
||||
# Créer un fichier de configuration wpa_supplicant
|
||||
wpa_conf="/tmp/wpa_supplicant.conf"
|
||||
echo "network={" > $wpa_conf
|
||||
echo " ssid=\"$ssid\"" >> $wpa_conf
|
||||
echo " psk=\"$password\"" >> $wpa_conf
|
||||
echo "}" >> $wpa_conf
|
||||
|
||||
# Utiliser wpa_supplicant pour se connecter
|
||||
wpa_supplicant -i wlan0 -c $wpa_conf -B
|
||||
sleep 2
|
||||
dhclient wlan0
|
||||
rm -f $wpa_conf
|
||||
fi
|
||||
|
||||
if check_internet; then
|
||||
log "Connexion WiFi établie"
|
||||
@@ -70,6 +103,17 @@ check_internet() {
|
||||
return $?
|
||||
}
|
||||
|
||||
# Vérifier si la caméra est accessible
|
||||
check_camera() {
|
||||
if libcamera-still --list-cameras &>/dev/null; then
|
||||
log "Caméra détectée et accessible"
|
||||
return 0
|
||||
else
|
||||
log "ERREUR: Caméra non détectée ou non accessible"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# S'assurer que le répertoire de configuration existe
|
||||
mkdir -p "$CONFIG_DIR"
|
||||
|
||||
@@ -79,6 +123,9 @@ connect_wifi
|
||||
# Vérifier si les chemins Python sont corrects
|
||||
export PYTHONPATH="$BASE_DIR:$PYTHONPATH"
|
||||
|
||||
# Vérifier que la caméra est accessible
|
||||
check_camera
|
||||
|
||||
if check_internet; then
|
||||
log "Connecté à internet"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user