cClaude.rocks ☕ Le blog

L'informatique et les nouvelles technologies

Menu
déc.
20
2019
Site:
https://git.cclaude.rocks/raspbian/prepare-raspbian-sd/
Source:
https://git.cclaude.rocks/raspbian/prepare-raspbian-sd/
git:
git clone --recurse-submodules https://git.cclaude.rocks/raspbian/prepare-raspbian-sd.git

Ce billet a été édité le : 2020-02-14

Créer vos SD Raspbian pour vos Raspberry PI

Voici un outil permettant d’initialiser une SD pour votre Raspberry avec Raspbian ou Raspbian lite, puis dans un second temps d’y ajouter une configuration personnalisĂ©e.

prepare-raspbian-sd permet Ă©galement d’installer des images dont vous connaissez l’URL ou mĂȘme de crĂ©er une image Ă  partir d’une carte SD.

Cet outil est principalement conçu pour les personnes qui ont de nombreux Raspberry Pis et qui souhaitent ensuite reconstruire avec un processus automatisé.


Le code source (en anglais)


Les prérequis :

  • Une machine sous GNU Linux (entiĂšrement testĂ© sous Linux Mint),
  • La commande git pour cloner le rĂ©fĂ©rentiel.

Ce que fait l’outil :

  • TĂ©lĂ©charger la derniĂšre version de l’image Raspbian ou Raspbian lite si nĂ©cessaire,
  • TĂ©lĂ©charger une image Ă  partir de son URL (n’est pas limitĂ© aux Raspberry PI) ,
  • Initialiser la carte SD,
  • Personnaliser la carte SD (facultatif) :
    • DĂ©finir le partage de la mĂ©moire (actuellement fixĂ© Ă  16)
    • PrĂ©parer l’espace de travail BCM
    • Activer ssh
    • Ajoutez des clĂ©s publiques (<PI_USER_HOME>/.ssh/authorized_keys).
  • Sauvegarder le contenu d’une carte SD.

Installation :

Ce projet utilise des sous-modules git, il est donc nécessaire de les prendre en compte :

Comment cloner le rĂ©fĂ©rentiel. Étant donnĂ© que ce rĂ©fĂ©rentiel utilise des sous-modules git, vous devez utiliser le paramĂštre --recurse-submodules Ă  la commande git clone. Ensuite utilisez la commande prepare-raspbian-sd-install.

# cd "${home}/Sources" # Adapter Ă  votre guise.
git clone --recurse-submodules https://git.cclaude.rocks/raspbian/prepare-raspbian-sd.git
cd prepare-raspbian-sd
sudo bash prepare-raspbian-sd-install

Mise Ă  jour

Ce projet utilise des sous-modules git. Lors d’une mise-Ă -jour vous devez Ă©galement initialiser les sous-modules (cas d’ajout d’un nouveau modules) et les mettre Ă  jour :

git fetch --verbose --prune # Mise à jour des références git
git pull --ff-only          # Mise à jour de la branche courante (si nécessaire)
                            # Ne fusionnez pas avec vos modifications (le cas échéant)
git submodule init          # Initialiser des sous-modules git (si nécessaire)
git submodule update        # Mettre à jour des sous-modules git (si nécessaire)
git status                  # Affiche de l’état actuel

Exécutez ensuite à nouveau prepare-raspbian-sd-install pour mettre à niveau votre installation.

sudo bash prepare-raspbian-sd-install

DĂ©sinstallation

Dour dĂ©sinstaller l’application, vous devez utiliser :

sudo bash /usr/local/share/prepare-raspbian-sd/prepare-raspbian-sd-remove

Utilisation

L’aide :

prepare-raspbian-sd --help
prepare-raspbian-sd ACTION [OPTIONS]


Actions :
  -h, --help                Affiche le message d’aide et quitte.
  -I, --put-image FILE      Initialise la carte SD à l’aide du fichier image FILE.
  -D, --put-default-image   Initialise la carte SD en utilisant l’image dĂ©finie
                            par RASPBIAN_DEFAULT_IMG.
  -L, --put-last-image      Initialise la carte SD en utilisant la derniĂšre
                            version disponible de l’image Raspbian. TĂ©lĂ©charge
                            l’image à partir du site Web de Raspbian si
                            nécessaire.
      --configure           Appliquer la configuration de l’utilisateur sur la
                            carte SD.
  -F, --full-clone          Créer une image de la carte SD dans le répertoire
                            défini par RASPBIAN_DEFAULT_BACKUP_DIRECTORY (un nom
                            de fichier sera généré à partir de la date).
  -T, --full-clone-to FILE  Créer une image de la carte SD dans le fichier FILE.
      --compute-sd-dev-name Localise la carte SD et affiche le nom des
                            périphériques associés, puis quitte.
      --dry-run             Affiche le nom des périphériques associés à la carte SD,
                            puis quitte.

Options :
  --download-to DIR     Téléchargez une nouvelle image si nécessaire dans le
                        rĂ©pertoire donnĂ©. Si la valeur de l’option est omise la
                        valeur définie par RASPBIAN_DEFAULT_DOWNLOAD_IMAGE_DIRECTORY
                        sera utilisée.
  --desktop, --gui      Téléchargez la version de bureau de Raspbian au lieu de la
                        version allégée (version serveur).
  --dev-name DEVNAME    Force le nom du périphérique à utiliser pour la carte SD.
  --expected-img IMG    Nom de fichier d’image attendu (sans chemin). Obligatoire
                        avec action --url permet de ne pas télécharger le
                        fichier distant si un fichier local est présent.
Sécurité:
  Pour Ă©crire sur SD (Ă  l’exception de l’action --configure), l’outil vĂ©rifie que la
  carte SD n’est PAS montĂ© Vous devez exĂ©cuter umount (ou en utilisant l’interface
  graphique)
    sudo umount /dev/<DEVNAME>

L’usage typique, d’abord mettre l’image sur la carte SD :

prepare-raspbian-sd -L # ou : prepare-raspbian-sd --put-last-image

Pour cette opĂ©ration la carte SD doit ĂȘtre connectĂ©e Ă  votre ordinateur mais ne doit pas ĂȘtre montĂ©e. Depuis le bureau, vous pouvez dĂ©monter l’image ou les l’images liĂ©s Ă  cette carte SD.

Ensuite si vous souhaitez customiser la carte, utilisez :

prepare-raspbian-sd --configure # Nécessite que vous ayez paramétré votre configuration

Pour cette opĂ©ration la carte SD doit ĂȘtre connectĂ©e Ă  votre ordinateur et doit ĂȘtre montĂ©e.

Configuration

En option, vous pouvez utiliser prepare-raspbian-sd pour personnaliser la SD.

Vous avez deux options pour personnaliser le rĂ©pertoire de tĂ©lĂ©chargement par dĂ©faut, qui est l’emplacement oĂč les images seront stockĂ©es. Vous pouvez d’abord utiliser prepare-raspbian-sd-config par exemple :

DATA="$( xdg-user-dir DOCUMENTS )/raspbian-images"
DOWNLOAD="${DATA}/download" # Défini le répertoire qui recevra les images téléchargée
BACKUP="${DATA}/backups"    # Défini le répertoire qui recevra les sauvegardes de vos SD

# Créer les répertoires si nécessaire
mkdir -vp "${DOWNLOAD}" "${BACKUP}"

# Configuration (optionnel, mais recommandé)
prepare-raspbian-sd-config RASPBIAN_DEFAULT_BACKUP_DIRECTORY "${BACKUP}"
prepare-raspbian-sd-config RASPBIAN_DEFAULT_DOWNLOAD_IMAGE_DIRECTORY "${DOWNLOAD}"
prepare-raspbian-sd-config SSH_AUTHORIZED_KEYS "$( cat ~/.ssh/id_rsa.pub )"

# Configuration (optionnel, dépend de vos besoins)
prepare-raspbian-sd-config DEFAULT_SD_DEV_NAME 'mmcblk0'
prepare-raspbian-sd-config GPU_MEM '16'
prepare-raspbian-sd-config RASPBIAN_DEFAULT_IMG "${DOWNLOAD}/2019-07-10-raspbian-buster-lite.img"
  • Si la valeur RASPBIAN_DEFAULT_DOWNLOAD_IMAGE_DIRECTORY n’est pas dĂ©finie, votre dossier TĂ©lĂ©chargement sera utilisĂ©.
  • Si la valeur RASPBIAN_DEFAULT_BACKUP_DIRECTORY n’est pas dĂ©finie,
    votre dossier Documents sera utilisé.

Résumé :

Nom de variable Description de l’utilisation Valeurs typiques
DEFAULT_SD_DEV_NAME Facultatif, utilisé pour écrire sur la carte SD. mmcblk0
GPU_MEM Facultatif, utilisĂ© par --configure. Permet de configurer le partage de mĂ©moire. Si la valeur n’est pas dĂ©finie ou si elle vaut 0, la configuration de partage de mĂ©moire est ignorĂ©e 16
RASPBIAN_DEFAULT_BACKUP_DIRECTORY Requis pour pouvoir utiliser --full-clone. La variable doit contenir le chemin complet d’un rĂ©pertoire existant oĂč seront stockĂ©es vos sauvegardes SD. /home/nom_d_utilisateur/Documents/
RASPBIAN_DEFAULT_DOWNLOAD_IMAGE_DIRECTORY Simplifi l’utilisation de --download de prepare-raspbian-sd-download-image ou de --put-last-image de prepare-raspbian-sd. /home/nom_d_utilisateur/Documents/images-raspbian
RASPBIAN_DEFAULT_IMG Requis pour pouvoir utiliser --put-default-image. La variable doit contenir le chemin d’accùs complet à votre fichier local raspbian-stretch-lite.img. /path/to/2018-10-09-raspbian-stretch-lite.img
SSH_AUTHORIZED_KEYS Requis pour pouvoir utiliser --configure. La variable doit contenir le contenu de /home/pi/.ssh/authorized_keys que vous souhaitez ajouter. La valeur donnée par "$( cat ~/.ssh/id_rsa.pub )"

Cas concret d’utilisations

Initialisation de votre carte SD

Pour télécharger (si nécessaire) la derniÚre version de Raspbian, puis initialiser votre carte SD :

prepare-raspbian-sd -L

Sauvegarde de votre carte SD

Pour sauvegarder l’image complĂšte de votre carte SD (toutes les partitions seront sauvegardĂ©es dans le mĂȘme fichier), il suffit d’utiliser la syntaxe suivante :

prepare-raspbian-sd -T "${HOME}/ma-carte-sd.img'

኿


â„č 2006 - 2020 | 🕾 Retour Ă  l'accueil du domaine | 🏡 Retour Ă  l'accueil du blog