| Avant de commencer | |||||||||||||||||||||||||||||||||
Fiche technique du Raspberry Pi 3B+ |
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
PREREQUIS |
|||||||||||||||||||||||||||||||||
|
Un Raspberry Pi 3B+ Une carte microSD (8Go mini, 64Go maxi, 16Go conseillé) La version de Raspberry Pi OS x64 with desktop Debian 11 Bullseye disponible depuis le site officiel L'archive est à décompresser avec 7zip |
|||||||||||||||||||||||||||||||||
| Premier démarrage du Raspberry | |||||||||||||||||||||||||||||||||
|
Formatez la carte microSD avec SD Card Formatter (facultatif) Flashez sur la carte microSD l’image iso raspios-xxxxxx-arm64.img avec Win32DiskImager Insérez la carte microSD et connectez l’alimentation. Le système Raspberry Pi OS s'installe puis démarre sur un assistant. • Sélectionnez France / Français / Paris • Conservez par défaut tous les autres paramètres et cliquez sur SKIP lorsque ce choix est proposé. |
|||||||||||||||||||||||||||||||||
|
Si vous n'obtenez pas d’affichage au démarrage du Raspberry (problème constaté avec certains convertisseurs HDMI/VGA) Insérez la carte microSD dans un lecteur USB et éditez le fichier /boot/config.txt Décommentez les lignes suivantes en appliquant ces paramètres. |
|||||||||||||||||||||||||||||||||
|
hdmi_force_hotplug=1 hdmi_group=2 hdmi_mode=81 hdmi_drive=2 |
|||||||||||||||||||||||||||||||||
| Installation de la plateforme | |||||||||||||||||||||||||||||||||
|
A propos des téléphones de la marque Samsung : Le logiciel officiel Samsung Odin n’est disponible que pour le système d'exploitation Windows. Toutefois un outil libre nommé JOdin3 a été développé pour combler cette lacune sous Linux. Les paquets Heimdall, Java 8 et OpenJFX sont requis pour son fonctionnement. |
|||||||||||||||||||||||||||||||||
Installez les paquets |
|||||||||||||||||||||||||||||||||
|
sudo apt-get update sudo apt-get install android-tools-adb sudo apt-get install android-tools-fastboot sudo apt-get install heimdall-flash sudo apt-get install heimdall-flash-frontend sudo apt-get install default-jre sudo apt-get install openjfx |
|||||||||||||||||||||||||||||||||
Vérifiez que Java est au minimum dans sa version 8 |
|||||||||||||||||||||||||||||||||
|
java -version openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-post-Raspbian-1deb10u2) OpenJDK Server VM (build 11.0.9.1+1-post-Raspbian-1deb10u2, mixed mode) |
|||||||||||||||||||||||||||||||||
|
Téléchargez et décompressez l’archive JOdin3CASUAL-xxxxx-dist.zip (adaptez la version) Positionnez-vous dans le répertoire JOdin3CASUAL-xxxxx-dist/app/ Lancez la commande |
|||||||||||||||||||||||||||||||||
|
java --module-path /usr/share/openjfx/lib/ --add-modules javafx.fxml,javafx.web -jar JOdin3CASUAL.jar |
|||||||||||||||||||||||||||||||||
Redémarrez le système |
|||||||||||||||||||||||||||||||||
|
sudo reboot |
|||||||||||||||||||||||||||||||||
|
Vérifiez le fonctionnement de ADB et Fastboot avec un téléphone autre que Samsung • Démarrez le téléphone en mode normal • Activez le Débogage USB • Connectez le téléphone au Raspberry • Entrez les commandes suivantes |
|||||||||||||||||||||||||||||||||
|
adb devices # affiche le numéro de série adb reboot bootloader # redémarre le téléphone en mode fastboot fastboot reboot # redémarre le téléphone |
|||||||||||||||||||||||||||||||||
|
Vérifiez le fonctionnement de ADB et Heimdall avec un téléphone Samsung uniquement • Démarrez le téléphone en mode download (Volume down + Home + Power) • Connectez le téléphone au Raspberry • Entrez les commandes suivantes |
|||||||||||||||||||||||||||||||||
|
adb devices # affiche le numéro de série heimdall detect # affiche Device detected heimdall print-pit # affiche la table des partitions et redémarre |
|||||||||||||||||||||||||||||||||
|
Remarques sur JOdin3 : • Son interface est similaire à celle d’Odin. • Détection correcte des périphériques. • Autorise le flash de custom roms. • Aucune documentation précise quant à son installation. • Finition négligée de l’interface. • Jodin3 accepte tous types de fichiers, alors prudence ! |
|||||||||||||||||||||||||||||||||
![]() |
|||||||||||||||||||||||||||||||||
| Annexe 1 - La commande Heimdall | |||||||||||||||||||||||||||||||||
|
# Syntaxe : heimdall <option> <arguments> -close-pc-screen [--verbose] [--no-reboot] [--resume] [--stdout-errors] [--usb-log-level <none/error/warning/debug>] # Attempts to get rid off the "connect phone to PC" screen. # Note: --no-reboot causes the device to remain in download mode after the action is completed. # If you wish to perform another action whilst remaining in download mode, then the following action # must specify the --resume flag. -detect [--verbose] [--stdout-errors] [--usb-log-level <none/error/warning/debug>] # Indicates whether or not a download mode device can be detected. -download-pit --output <filename> [--verbose] [--no-reboot] [--stdout-errors] [--usb-log-level <none/error/warning/debug>] # Downloads the connected device's PIT file to the specified output file. # Note: --no-reboot causes the device to remain in download mode after the action is completed. # If you wish to perform another action whilst remaining in download mode, then the following action must # specify the --resume flag. -flash [--<partition name> <filename> ...] [--<partition identifier> <filename> ...] [--pit <filename>] [--verbose] [--no-reboot] [--resume] [--stdout-errors] [--usb-log-level <none/error/warning/debug>] -flash --repartition --pit <filename> [--<partition name> <filename> ...] [--<partition identifier> <filename> ...] [--verbose] [--no-reboot] [--resume] [--stdout-errors] [--usb-log-level <none/error/warning/debug>] # Flashes one or more firmware files to your phone. # Partition names (or identifiers) can be obtained by executing the print-pit action. # Note: --no-reboot causes the device to remain in download mode after the action is completed. # If you wish to perform another action whilst remaining in download mode, then the following action must # specify the --resume flag. # WARNING: If you're repartitioning it's strongly recommended you specify all files at your disposal. -print-pit [--file <filename>] [--verbose] [--no-reboot] [--stdout-errors] [--usb-log-level <none/error/warning/debug>] # Prints the contents of a PIT file in a human readable format. If a filename is not provided then Heimdall # retrieves the PIT file from the connected device. # Note: --no-reboot causes the device to remain in download mode after the action is completed. # If you wish to perform another action whilst remaining in download mode, then the following action must # specify the --resume flag. -help # Displays this dialogue. -info # Displays information about Heimdall. -version # Displays the version number of this binary. |
|||||||||||||||||||||||||||||||||
| Annexe 2 - La commande Java | |||||||||||||||||||||||||||||||||
|
La commande jar crée une archive pour les classes et les ressources, et peut manipuler ou restaurer les classes ou ressources individuelles à partir d'une archive. |
|||||||||||||||||||||||||||||||||
|
# Syntaxe jar [OPTION...] [ [--release VERSION] [-C dir] files] ... # Création d'une archive nommée classes.jar composée de deux fichiers de classe jar --create --file classes.jar Foo.class Bar.class # Création d'une archive à l'aide d'un manifeste existant, avec tous les fichiers dans foo/ jar --create --file classes.jar --manifest mymanifest -C foo/ # Création d'une archive JAR modulaire où le descripteur de module est situé dans classes/module-info.class jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/ classes resources # Mise à jour d'un fichier JAR non modulaire existant vers un fichier JAR modulaire jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0 -C foo/ module-info.class # Crée un fichier JAR multiversion en plaçant certains fichiers dans le répertoire META-INF/versions/9 jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes # Pour raccourcir ou simplifier la commande JAR, vous pouvez spécifier des arguments dans un fichier texte # distinct et le transmettre à la commande JAR avec le signe arobase (@) en tant que préfixe # Options de lecture supplémentaires et liste des fichiers de classe à partir du fichier classes.list jar --create --file my.jar @classes.list # Mode d'exploitation principal -c, --create Crée l'archive -i, --generate-index=FILE Génère des informations d'index pour les archives JAR indiquées -t, --list Affiche la table des matières de l'archive -u, --update Met à jour une archive JAR existante -x, --extract Extrait des fichiers nommés (ou tous les fichiers) de l'archive -d, --describe-module Affiche le descripteur de module ou le nom de module automatique # Modificateurs d'opération valides pour tous les modes -C DIR Passe au répertoire spécifié et inclut le fichier suivant -f, --file=FILE Nom du fichier d'archive. Si omis, stdin ou stdout est utilisé en fonction de l'opération --release VERSION Place tous les fichiers suivants dans un répertoire avec numéro de version du fichier JAR (à savoir META-INF/versions/VERSION/) -v, --verbose Génère une sortie en mode verbose d'une sortie standard # Modificateurs d'opération valides uniquement en modes create et update -e, --main-class=CLASSNAME Point d'entrée d'une application en mode autonome intégrée à une archive JAR modulaire ou exécutable -m, --manifest=FILE Inclut les informations de manifeste du fichier manifeste donné |
|||||||||||||||||||||||||||||||||