Atelier logiciel
Mise en place des moyens informatiques nécessaires au développement du SCAO
Contributeur·ice·s
Statut du projet
Concept
Statut de la publication
Publié
License
CC-by-sa-3.0 - Creative Commons Attribution CC-by-sa-3.0 France
Inspiration
Atelier de génie logiciel
Fichiers source
Machines
Matériaux
Lien
Sommaire
Définition
L'atelier logiciel est l'un des ateliers de prototypage du SCAO.
L'appellation atelier logiciel n'est pas référencée par l'encyclopédie Wikipédia. L'appellation la plus proche est atelier de génie logiciel. Un atelier de génie logiciel (AGL), ou des outils CASE pour Computer Aided Software Engineering, désigne un ensemble de programmes informatiques permettant eux-mêmes de produire des programmes de manière industrielle.
L'appellation suite logicielle, en anglais software suite désigne une entité utilisée au sein de l'atelier logiciel.
Objet
L'objet est la mise en place et le Maintien en Condition Opérationnelle (MCO) des moyens informatiques nécessaires au développement des prototypes du SCAO.
Le matériel
L'atelier logiciel utilise les ressources d'ordinateurs personnels, 2 ordinateurs fixes (ASUS et Compaq), 2 ordinateurs portables (LDLC et Packard Bell) et un iphone 5. Ces 5 appareils sont synchronisés.
L'ordinateur fixe est conçu autour d'une carte mère qui est l'ossature de tout ordinateur. Les dimensions de la carte mère sont standardisées selon un facteur de forme, par exemple pour le facteur de forme de l'ATX, les dimensions en mm sont 305X244.
Construire son PC personnalisé
Pour construire son PC personnalisé, cliquer sur le lien Construire son PC.
ASUS
L'ordinateur fixe ASUS de type PC est équipé de :
- une carte mère ASUS P5Q dont le facteur de forme indiqué par la notice du constructeur est "ATX Form Factor 12 pouces X 8.8 pouces (30.5 cm X 22.4)", soit une largeur 2 cm inférieurs à la norme ? Les dimensions sont ensuite mesurées sur la carte mère de l'ordinateur, elles correspondent bien à celle indiquées par la notice ; elle est équipée :
- d'un CPU Intel Core 2 Duo E8400 qui travaille à la fréquence de 3 GHZ.
- trois mémoires Corsair 1024 MO DDR2 667 MHZ,
- une Asus carte vidéo
- une alimentation Corsair 500W
- un écran iiyama 19 pouces
- un graveur Nec
- deux disques durs :
- un disque Western digital véloce de 150 GO (/dev/sda)
- un disque Western digital de 500 GO dédié initialement aux sauvegardes ATA WDC WD5000AACS-0 (/dev/sdb)
- un disque complémentaire Western digital de 500 GO ATA WDC WD5000AAKS-2 (/dev/sdc).
Compaq
L'ordinateur fixe COMPAQ de type PC est équipé de :
- une carte mère ASUS M2N68-AM PLUS équipée :
- d'un CPU AMD Athlon XP3000 qui travaille à la fréquence de 2.16 GHZ.
- deux mémoires KINGSTON TYPE L2 CACHE d'une capacité de 512KB.
- une carte vidéo GF210 512M
- une alimentation BESTEC model ATX-300-12Z.
- un écran PHILIPS de 17 pouces.
- un graveur LABELFLASH 3M-Optiarc D.
- un disque dur MAXTOR STM380215A de 80Go.
LDLC
L'ordinateur portable de type LDLC MB5-15-8-S2H10, sans système d'exploitation, est équipé de :
- Processeur Intel Core i5-4210M (2.6 GHZ / 3.2 GHZ Turbo - Cache 3 MO)
- 8 GO de mémoire DDR3L (2 X 4 GO)
- Ecran LED de 13.3 pouces à dalle mate, avec résolution full HD (1920 X 1080)
- Deux disques durs :
- SSD mSATA de 240 GO
- ATA ST1000LM024 HN-M de 1 TO
- Chipset graphique NVIDIA GeForce GTX 960M avec 2 GO de mémoire dédiée
- Sortie HDMI
- Connexion Gigabit Ethernet + communication sans fil WI-FI N et Bluetooth 4.0
- Clavier chiclet avec touches rétro-éclairées
- 1 port USB 2.0 + 3 ports USB 3.0
- lecteur de carte intégré
- Jusqu'à 5h30 d'autonomie
- Hauts-parleurs intégrés
- Webcam HD 2 Mégapixels
- Graveur DVD externe.
L'ordinateur de Jacqueline
C'est un ordinateur portable PACKARD Bell Easynote, modèle ALP-Ajax GDC qui se compose :
- D ‘un CPU Intel Core Duo 1.6 GHz.
- D’un disque dur HDD IDE de 100 Go.
- D’une carte mère Intel WLAN3945ABG.
- D’une mémoire d’1Go RAM DDR2 RAM.
- D’un lecteur DVD-RW.
- D’un écran d’une résolution 1280 par 800.
- D’un port LAN, d’un port VGA et de 4 ports USB2.0.
- D’une Webcam.
Le lien suivant permet de visualiser le démontage de ce PC portable
Iphone 5
L'iPhone 5 est un modèle de la 6e génération d'iPhone, de la société Apple.
Il fonctionne sous iOS 10, dispose d'un processeur A6, d'un écran de 4 pouces et d'un nouveau connecteur « Lightning » réversible. Pour plus de détails, suivez le lien Iphone 5 ainsi que le paragraphe "Les logiciels" de ce wiki.
Installation d'une embase murale RJ45
Les embases murales RJ45 installées dans la maison de St-Molf sont en "câblage droit T568B".
Chacune des embases est raccordée à une embase RJ45 disponible de la freebox selon un câblage en étoile.
Pour procéder à l'installation d'une embase, il convient de se référer au tutoriel Leroy Merlin.
Installation d'un disque dur
Chaque disque dur est raccordés à la carte mère par une interface SATA . La carte mère P5Q de l'ordinateur ASUS est équipée de :
- 6X SATA 3.0 Gb/s ports
N.B. : Un élément SATA I, II ou III peut être branché sur une carte mère SATA I, II ou III. Le débit obtenu sera alors celui de l'élément le plus lent. Par exemple, un disque dur SATA III sur une carte mère SATA II aura un débit limité par la carte mère à 300 Mo/s
Liens :
- disque dur
- installation
- Fiche technique
- 3.5" to 5.25" Bay Hard Disk Drive HDD Mounting Bracket Adapter
How to connect Front Panel Connectors to the Motherboard
How to connect Front Panel Connectors to the Motherboard
Mesures des tensions et courants
a) Mesures sur la LED ON/OFF
- tension = 2.886 Volts
- courant = 6.3 mA
- soit une puissance = 18.18 mW
b) Mesures sur une LED du magasin câblée à la place de la LED ON/OFF
- tension = 1.883 Volts
- courant = 9.79 mA
- soit une puissance = 18.43 mW
Synchronisation
Il s'agit principalement d'une synchronisation de fichiers entre les appareils.
L'objet est, pour un fichier donné, de garantir la correspondance exacte de son contenu et de sa version d'un appareil à l'autre.
Les moyens pour y parvenir sont :
- le module sync de firefox pour le Web
- la gestion de version avec Git et Git-hub pour les fichiers du sous répertoire /home/leruste/SCAO
- la communication à partir d'un réseau local pour les fichiers personnels des autres sous-répertoires de /home/leruste.
Les logiciels
Le langage de programmation
Un langage de programmation est une notation conventionnelle destinée à formuler des algorithmes et produire des programmes informatiques qui les appliquent.
La liste de langages de programmation est impressionnante.
Dans le cadre du projet SCAO, les langages de programmation utilisés sont limités au strict nécessaire :
- l'Aduino IDE pour les plateformes microcontrôleurs
- le Bash qui est l'interpréteur de scripts du projet GNU pour les ordinateurs
- le Python qui met en oeuvre son propre gestionnaire de paquets pip, voir le site web Phyton. En particulier, il est utilisé par le Pytelemetry Command Line Interface traité dans un paragraphe séparé Pytelemetry Command Line Interface.
Ces langages de programmation sont complétés par les langages spécifiques des logiciels applicatifs.
Les systèmes d'exploitation
Les systèmes d'exploitation, en anglais operating system, installés sur l'ordinateur fixe sont Windows XP et Linux. Le maintien de Windows XP est nécessaire à l'utilisation de l'application SCAO, du prototype N°2, développée sous Labview. Windows XP pourra être abandonné lors de l'aboutissement du prototype N°3.
Linux
Un noyau de système d'exploitation, ou simplement noyau, ou kernel (de l'anglais), est une des parties fondamentales du système d'exploitation. Il gère les ressources de l'ordinateur et permet aux différents composants — matériels et logiciels — de communiquer entre eux. Une distribution est un ensemble cohérent de logiciels assemblés autour de ce noyau. Le noyau est le noyau Linux, la distribution choisie est Ubuntu.
The Linux Boot Process
La référence au MOOC The Linux Boot Process est nécessaire pour une bonne compréhension des détails de ce process.
En complément :
- Ubuntu
- Le manuel
- La personnalisation de grub
- Comprendre grub
- Contourner l’authentification Linux en éditant le grub.
Les 2 programmes qui sont successivement exécutés sont le BIOS (carte mère) et le Boot loader.
Le BIOS
Le BIOS contenu dans la mémoire EEPROM de la carte mère de l'ordinateur permet d'effectuer des opérations de base lors de la mise sous tension. En particulier, le POST qui consiste à un ensemble de tests. Lors du déroulement du BIOS, l'appui sur la touche Suppr. permet l'entrée dans le BIOS setup utility pour définir ou modifier un ensemble de paramètres de configuration.
Le Boot loader (Grub)
Le Boot loader qui correspond à l'exécution du fichier grub (/boot/grub/grub.cfg) qui se trouve sur 512 premiers bytes du disque dur concerné par le boot, les étapes sont :
- un menu qui apparaît à l'écran et invite l'utilisateur à choisir le système d'exploitation (Linux ou Windows XP) ou des tests ainsi que le lancement de Linux en mode "recover",
(N.B. : En tapant "c", grub affiche une invite de commande, il est alors possible de modifier des paramètres)
- après la temporisation ou le choix de l'utilisateur grub effectue les opérations suivantes :
- chargement du kernel dans la RAM
- décompression
- vérification
- analyse
- initialisation des drivers des matériels.
Comme le montre la figure ci-dessous, la génération du fichier /boot/grub/grub.cfg se fait à partir de la commande grub-mkconfig qui prend en compte les options indiquées par l'utilisateur dans le fichier /etc/default/grub ainsi que les différentes "templates" contenues sous le répertoire /etc/grub.d.
Le contenu du fichier /etc/default/Grub est :
Les partitions
L'espace de chaque disque dur est divisé en partitions. Le logiciel GParted permet de gérer ces partitions ainsi que les systèmes de fichiers qui s'y rattachent.
Concernant l'ordinateur fixe, la copie d'écran ci-dessous donne le détail des partitions du disque dur 150 GO :Le détail pour /dev/sda organisé en multiboot (Windows XP et Linux) est :
- représentation graphique des partitions, en jaune l'espace occupé, en blanc l'espace disponible
- dans le tableau de gauche, informations sur le périphérique
- dans le tableau de droite :
- la partition
- le système de fichier
- l'étiquette
- la taille
- l'espace utilisé
- l'espace inutilisé
- les drapeaux boot ou lba
La première partition /dev/sda1 utilise le système de fichiers ntfs correspondant au système d'exploitation Windows XP de microsoft. La seconde partition /dev/sda2 est "extended" se subdivise en :
- /dev/sda5 - ntfs - Données -
- non alloué
- /dev/sda7 - ext4 correspondant au système d'exploitation Linux
- /dev/sda8 - Linux-swap correspondant au système d'exploitation Linux
- /dev/sda6 - ext4 correspondant au système d'exploitation Linux. La partition est quasiment pleine et aurait besoin d'être agrandie, un redimensionnement de la partition a été tenté mais la tentative a échoué. Pour cette raison, Linux a été également installé sur le second disque de 500 GO.
Le terminal
Xterm
Le copier-coller : vous surlignez en balayant une zone de texte bouton gauche enfoncé, et vous collez en cliquant du bouton central.
Les menus de Xterm (maintenir appuyé simultanément les touches CTRL et l'une des 3 de la souris :
- gauche (main menu)
- milieu (VT options)
- droite (Unicode fonts).
Un navigateur web («browser» en anglais) est un logiciel conçu pour consulter et afficher le World Wide Web.
Dans le cadre de ce projet c'est firefox qui est choisi.
Il est développé par Mozilla.
Dans le cadre du projet site-web, il permet dans la phase de développement le test des fichiers html et css avec la commande :
- firefox SCAO/wiki/tp_quiet-cook/index.html
Dans la phase opérationnelle :
-
firefox http://quiet-cook.com
- Le module sync, après création d'un compte Firefox, permet de se connecter au Web, à partir de l'ordinateur fixe, du portable ou d'un smartphone en accédant aux onglets ouverts, aux marque-pages et aux mots de passe qui ont été initialisés par l'un des trois appareils. Les paramètres de synchronisation sont accessibles et modifiables par le menu de firefox en cliquant sur "ouvrir les préférences de sync".
Lancement d'une application au démarrage
Le Lancement d'une application au démarrage dépend de l'environnement de bureau, dans notre cas, il s'agit de Unity.
Recherchez l'utilitaire "Applications au démarrage" avec l'utilitaire "Afficher les applications" et lancez-le.
N.B. : l'utilitaire "Afficher les applications" est représenté par l'icône du "dash" (3 lignes successives de 3 points).
Mot de passe
Contexte :
- Le disque dur ATA WDC WD5000AACS-0 de l'ordinateur ASSUS sur lequel est installé Ubuntu 16.04 LTS n'est plus accessible car le mot de passe dont j'ai la quasi certitude n'est plus reconnu.
- La cause est vraisemblablement la non utilisation de ce disque depuis plusieurs semaines.
Analyse :
- le mot de passe est géré par :
- 2 fichiers, /etc/passwd et /etc/shadow
- la commande passwd - Modifier le mot de passe d'un utilisateur.
- Le statut du mot de passe est obtenu en utilisant la cde
passwd -S leruste
qui retourne sous la forme de 7 champs :- leruste P 02/27/2019 0 99999 7 -1
- Le premier champ est le nom du compte.
- Le second champ indique si le mot de passe est bloqué (L), n'a pas de mot de passe (NP) ou a un mot de passe utilisable (P).
- Le troisième champ donne la date de dernière modification du mot de passe.
- Le quatrième champ donne la durée minimum avant modification,
- Le cinquième la durée maximum de validité,
- Le sixième la durée d'avertissement,
- Le septième la durée d'inactivité autorisée pour le mot de passe.
- N.B. : Les durées sont exprimées en jours.
- leruste P 02/27/2019 0 99999 7 -1
Sur les forums, plusieurs solutions sont proposées, sur le conseil d'Antoine, j'essaie celle-ci :
- user-forgottenpassword
- Je suis la procédure de création d'un nouveau mot de passe et j'obtiens le message suivant : erreur de manipulation du jeton d'identification, mot de passe inchangé.
Concernant mon compte, le contenu du fichier /etc/passwd est :
leruste:x:1000:1000:LERUSTE,,,:/home/leruste:/bin/bash
Installation des logiciels
Avant d'installer un logiciel, il convient d'identifier l'architecture matérielle du processeur. Voir également la définition wikipédia.
Avec Ubuntu 2 architectures sont possibles :
- 32 bits
- 64 bits.
Il convient de donner la préférence à une architecture 64 bits si le processeur l'accepte.
L'installation d'un logiciel se concrétise par l'installation de un ou plusieurs paquets. En informatique, et en particulier dans le contexte des systèmes UNIX, on appelle paquet (ou parfois paquetage, en anglais package) une archive (fichier compressé) comprenant les fichiers informatiques, les informations et procédures nécessaires à l'installation d'un logiciel sur un système d'exploitation au sein d'un agrégat logiciel, en s'assurant de la cohérence fonctionnelle du système ainsi modifié.
Le tutoriel comment installer un paquet peut servir de guide.
Le système de gestion de ces paquets est APT (Advanced Packaging Tool).
Pour installer Openscad :
- $ sudo add-apt-repository ppa:openscad/releases
- $ sudo apt-get update
- $ sudo apt-get install openscad
Prenons l'exemple de l'installation de l'IDE arduino-1.8.8
- sur le site arduino, télécharger l’archive arduino-1.8.8-linux64.tar.xz
- la décompresser puis installer avec les commandes :
- tar Jxvf arduino-1.8.8-linux64.tar.xz
- ./arduino-linux-setup.sh $USER
- reboot
- lancement arduino.
Les logiciels applicatifs
La modélisation des pièces constitutives du SCAO mets en œuvre trois logiciels :
- LibreCAD : pour les plans en 2D, pour un même plan, un empilement de calques (en anglais layers) est utilisé, chaque calque ayant sa fonction propre. Les fichiers .dxf facilitent l'échange avec les deux autres logiciels.
- Openscad : pour les dessins en 3D, l'importation des fichiers .dxf est utilisé conjointement à une extrusion linéaire pour constituer des objets 3D. En d'autres termes une extrusion linéaire à partir d'un fichier dxf. N.B. : si le fichier .dxf n'est pas dans le même répertoire, il convient d'utiliser : ../LibreCAD/nom_du_fichier.dxf. The $t variable is used for animation. If you enable the animation frame with view->animate and give a value for "FPS" and "Steps", the "Time" field shows the current value of $t. Un exemple d'animation est traité dans le fichier Assemblage_f.scad
- Cura is an open source 3D printer slicing application. Il permet, à partir d'un fichier .stl produit par Openscad de générer un fichier g-code exécutable sur une imprimante 3D. Ce logiciel est développé par Ultimaker qui met à disposition un fichier binaire qu'il suffit de télécharger et de rendre exécutable par la commande :
sudo chmod +x Ultimaker_Cura-3.6.0.AppImage
- kicad : pour les circuits imprimés, l'importation des fichiers .dxf est utilisé pour les empreintes de circuits intégrés (footprint).
Ces importations apportent souplesse et précision car elles permettent de définir une fois pour toute les valeurs attribuées aux dimensions, longueurs, largeurs, entraxes, positionnement d'un objet etc...
En compléments :
- Les schémas de la documentation sont réalisées à l'aide du logiciel Inkscape, un exemple de son utilisation est traité ci-dessous.
- La retouche des photos et les animations sont réalisés à l'aide du logiciel Gimp, par exemple pour réduire la taille du fichier d'une photo suivre la procédure :
- Lancer GIMP puis ouvrir le fichier .JPG et sélectionner le menu image,
- -> mode -> couleurs indexées -> convertir en couleurs indexées -> utiliser une palette optimisée pour le web
- finaliser en exportant le fichier en .png
- vérifier que la taille du fichier a bien diminué et que l'image est d'une qualité correcte.
- Un autre exemple est la création d'une image animée sous la forme d'un fichier .gif :
- Sous GIMP créer un fichier multi-calques .xcf
- Exporter (Fichier - Exporter) ce fichier en choissisant l'extension .gif
- Ce fichier .gif mise en pièce-jointe d'un e-mail crée une image animée dès l'ouverture de l'e-mail.
- Encore un exemple est la découpe ou le recadrage des photos :
- Outils → Outils de transformation → Découpage.
- La bureautique est assurée par la suite bureautique Libre Office, en particulier Calc permet de générer puis d'enrichir des diagrammes selon une procédure résumée ci-dessous :
- dans la feuille de calcul, sélectionner les plages de données selon l'axe Y
- à l'aide du menu, insertion - diagramme, générer un diagramme
- une fenêtre s'ouvre : assistant de diagramme, les étapes sont :
- type de diagramme, choisir ligne
- plages de données, ne rien modifier
- séries de données :
- dans le champ catégorie (voir la capture d'écran ci-dessous), ajouter les données correspondantes à l'axe des X en les sélectionnant : cliquer d'abord sur l'icône à l'extrême droite de la fenêtre, puis effectuer la sélection (sans la première ligne qui contient le nom de la colonne et sans appuyer sur la touche maj).
- éléments du diagramme (titres, sous-titres, axes X et Y),
- l'assistant de diagramme ainsi qu'un exemple de diagramme sont visualisés successivement ci-dessous :
Schémas partiels :
a) avec kicad et Inkscape
À partir du schéma électrique du CI CMS e-p-433 établi avec kicad, l'exemple traite du découpage d'un schéma partiel correspondant à l'amplificateur de thermocouple et de de sa récupération dans un fichier PNG. La procédure est la suivante :
- Kicad :
- sudo kicad e-p-433.pro
- cliquer sur le fichier e-p-433.sch (Ouverture du fichier avec Eschema)
- Génération du fichier e-p-433.pdf : File - Plot - Plot - Format PDF - Plot all pages.
- Inkscape :
- sudo inkscape e-p-433.pdf (importation du fichier e-p-433.pdf dans inkscape)
- Une fenêtre s'ouvre "Préférences pour l'importation du fichier pdf" - Cliquer valider
- Effectuer une sélection à l'aide d'une fenêtre ajustée au schéma partiel
- Exporter une image PNG, choisir un nom de fichier, e-p-433-amp.png
- Vérifier l'image avec "Visionneur d'images" (eog).
b) avec librecad et Inkscape
- librecad :
- ouvrir le fichier .dxf
- sélectionner les calques souhaités
- fichier - export - Export as PDF (ne pas utiliser "as image" car la qualité est mauvaise)
- inkscape : voir a)
Les captures d'écran
On peut réaliser des captures dans le presse papier (le fichier .png est disponible dans le dossier Images), les touches à utiliser sont :
- impr-écr : copie de l'écran entier
- alt+impr-écr : copie de la fenêtre active
- ctrl+maj+impr : initie une capture d'une zone rectangulaire à tracer.
Pour plus de détails utiliser le lien capture d'écran.
Raccourcis clavier personnalisés
Pour créer vos propres raccourcis clavier :
- cliquer sur l'icône "boîte à outil" qui lance l'application Paramètres
- choisir : Périphériques - Clavier - Raccourcis clavier
- se déplacer dans la liste des raccourcis (vers le bas) jusqu'à atteindre le signe +
- cliquer sur le +
- une fenêtre s'ouvre, remplir les champs : Nom, Commande, Raccourci
- cliquer sur ajouter.
Edition des étiquettes
L'édition des étiquettes est réalisée à l'aide du logiciel glabel-3. A titre d'exemple, les étiquettes des boîtes "projet" du magasin sont traitées selon la procédure :
- mise à jour du fichier liste-des-cartons.ods
- génération d'un fichier liste-des-cartons.scv - UNICODE (UTF-3) - Séparateur de champ ,
- édition des étiquettes avec glabels-3 :
- Objets
- Propriétés fusion
- Format fichier CSV - Champs séparés par des virgules
- Sélectionnées les étiquettes à imprimer
- Imprimer les étiquettes.
Les plateformes
Dans le contexte de cet atelier logiciel, les plateformes sont des environnements de développement « intégré » (abrégé EDI en français ou IDE en anglais, pour integrated development environment).
Une plateforme est généralement constituée d'un ordinateur et d'un microcontrôleur raccordé par un câble USB.
Le développement du logiciel dédié au microcontrôleur se réalise selon les phases suivantes :
- au sein de l'IDE installé sur l'ordinateur :
- saisie du programme
- vérification
- téléversement de l'ordinateur vers le microcontrôleur
- au sein du microcontrôleur exécution du programme.
Les phases décrites ci-dessus peuvent être exécutées autant de fois que nécessaire jusqu'à obtention du fonctionnement souhaité.
A partir du moment où le câble USB est déconnecté, le microcontrôleur, si son alimentation est autonome (batterie), va exécuter en permanence le dernier programme téléversé.
Plateformes Arduino et Teensy
Les deux plateformes sont constituées à partir du même ordinateur complété, soit d'un microcontrôleur de la famille Arduino, soit d'un microcontrôleur Teensy. Les deux plateformes utilisent le même IDE. L'IDE est :
- soit l'Arduino web editor (disponible uniquement pour Linux 64 bits en date du 14/03/2018)
- soit l'Arduino IDE (Linux 32 bits et 64 bits)
les deux sont accessibles par ce lien.
La documentation.
Dans le cas du Teensy, il est complété de librairies spécifiques.
Prenons l'exemple de l'installation de l'IDE arduino-1.8.8
- sur le site arduino, télécharger l’archive arduino-1.8.8-linux64.tar.xz
- la décompresser puis installer avec les commandes :
- tar Jxvf arduino-1.8.8-linux64.tar.xz
- ./arduino-1.8.8-linux-setup.sh $USER
- reboot
- lancement arduino.
Plateforme Microchip
Elle est traitée en un projet séparé accessible par le lien PIC.
Gestion de versions
Un logiciel de gestion de versions est un logiciel qui permet de stocker un ensemble de fichiers en conservant la chronologie de toutes les modifications qui ont été effectuées dessus. Il permet notamment de retrouver les différentes versions d'un lot de fichiers connexes.
Git et Git-hub
Il en existe de nombreux, Git est le logiciel créé par Linus Torvald, auteur du Kernel Linux. Il utilise des commandes comme commit, branches, merge... L'hébergement des fichiers sources s'effectue sur GitHub, ce qui permet de collaborer facilement sur des projets qui utilisent des logiciels libres.
La formation recommandée est Gérer son code avec git et github sur Openclassroom.
Pour installer git taper dans un terminal :
-
sudo apt install git
Pour créer une copie du projet SCAO en provenance du site github, taper dans un terminal la commande :
-
git clone https://github.com/AIREL46/SCAO
.
Git-lfs
Un message de warning est affiché :
File Plan-de-management/plan de management.odt is 53.71 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB
La préconisation est :
You may want to try Git Large File Storage - https://git-lfs.github.com.
Après l'installation du paquet, lors de l'exécution de la commande :
- sudo git lfs install
une erreur survient :
/usr/local/bin/git-lfs: 1: /usr/local/bin/git-lfs: Syntax error: Unterminated quoted string
Malgré l'erreur, je teste :
- sudo git add Plan-de-management/plan-de-management.odt
- sudo git commit "Ajouter fichier > 50MO plan-de-management.odt"
- sudo git push origin master
Dans Github, je retouve le fichier avec les commentaires : View raw (Sorry about that, but we can’t show files that are this big right now.)
Je clique sur View raw, la fenêtre suivante s'ouvre :
Si :
- je choisis Ouvrir avec LibreOffice Writer, le fichier est visualisé.
- je choisis Enregistrer le fichier, le fichier est téléchargé et disponible dans le répertoire Téléchargements.
Je fais le même test avec le fichier plan de management_old.doc qui n'a pas fait l'objet d'un nouveau "push", le résultat est le même. Conclusion : les fichiers de plus de 50 MO sont mémorisés, par contre, ils sont visualisables qu'après un téléchargement. Donc, le paquet git-lfs n'est pas opérationnel.
Je laisse tomber git-lfs et j'en profite pour faire un peu de nettoyage.
Je supprime des fichiers inutiles, le premier :
Plan-de-management/plan de management.odt avec la commande :
- sudo git rm Plan-de-management/plan de management.odt
ça ne marche pas parce que Ubuntu n'aime pas les espaces, je contourne la difficulté avec :
- sudo git rm Plan-de-management/"plan de management.odt"
Les suivants :
- Plan-de-management/plan de management_old.doc
- BOINC/BOINC.odt.
Synchronisation des 2 ordinateurs
Pour les 2 ordinateurs, le fixe et le portable, l'objet est d'assurer la conformité des contenus de leur répertoire SCAO respectif selon la règle de synchronisation de fichiers.
Une fois par semaine, sur l'ordinateur fixe, dans le répertoire SCAO :
- sudo git status
- En fonction du résultat, effectuer l'ajout des nouveaux fichiers et terminer par :
- sudo git commit -a, cette commande va ouvrir fichier SCAO/.git/COMMIT_EDITMSG, dans ce fichier indiquer la raison du commit
- ctrl x
- sauver l'espace modifié ? Oui
- sudo git push origin master
- sur l'ordinateur portable :
- sudo git pull origin master.
Compacter des fichiers avec la commande zip
Pour regrouper le contenu d'un répertoire en vue de l'envoyer à un correspondant.
zip - package and compress (archive) files
Ouvrir un terminal et taper la commande (exemple) :
- zip quiet-cook.zip tp_quiet-cook
Libraries
En bon français, il faut dire bibliothèque logicielle.
En anglais Library_(computing).
Une bibliothèque logicielle est une collection de routines, qui peuvent être déjà compilées et prêtes à être utilisées par des programmes.
Pour éviter toute confusion linguistique, l'appellation utilisée par la suite sera celle issue de l'anglais : "library".
Au fur et à mesure des besoins ces libraries, installées sur le disque dur de l'ordinateur, se multiplient.
Sur l'ordinateur fixe ASUS, ces libraries sont présentent dans les répertoires :
- /home/leruste/Téléchargements/teensy/avr/libraries
- /home/leruste/Téléchargements/arduino-1.6.9/libraries
- /root/Arduino/libraries.
Installation des libraries
La plupart des librairies se trouve sur le site github, un exemple :
la librarie Time publié par Paul Stoffregen.
Pour trouver une librarie sur le site github, il convient d'utiliser le moteur de recherche à gauche du logo. En tapant "Chrono" on trouve :
Chrono publié par Sofian Audry and Thomas Ouellet Fredericks
Pour installer ces libraries sur un ordinateur, dans notre exemple, sur l' ASUS, Github propose deux méthodes :
- le clonage
- le téléchargement.
D'autre part, le répertoire privilégié par le compilateur de l'arduino IDE est :
/root/Arduino/libraries
Dans le cas du clonage et dans l'exemple de la library Chrono, dans un terminal, tapez successivement :
- cd /root/Arduino/libraries
- Sudo git clone https://github.com/SofaPirate/Chrono
Dans le cas du téléchargement, sur le site Github, effectuer le téléchargement, sur l'ordinateur, il en résulte le fichier ~Téléchargements/Chrono-master.zip, 2 méthodes d'installation s'offrent à vous :
La copie d'écran ci-dessous donne l'exemple de la sélection du fichier Chrono-master.zip :
- Décompresser les fichiers puis les déplacer dans le répertoire /root/Arduino/libraries.
Arduino Wrapper library
J'ai rencontré pour la première fois cette terminologie de "wrapper library" en installant la librairie Telemetry Arduino.
Pytelemetry Command Line Interface
Le "Pytelemetry Command Line Interface" est complémentaire de la fonction réalisée par "Telemetry".
Il permet, à partir de l'ordinateur, la réception des données envoyées par le microcontrôleur ainsi que leur visualisation. Pour installer ce module, il faut disposer de :
- du langage de programmation Python 3.3 + PyQt4 and numpy
- du gestionnaire de paquetspip spécifique à Python.
- le paquet Pytelemetry Command Line Interface
Une installation de ce module a été entreprise, 2 problèmes ont été rencontrés :
- Ubuntu 16.04 LTS permet l'installation de python des versions 2.7.x (2.7.12 sur l'ordinateur ASUS) mais pas au delà
- le gestionnaire de paquetspip génère une erreur : cannot import name main.
Conclusion : ce module "Pytelemetry Command Line Interface" semble avoir été développé pour le monde de Windows sans préoccupation de sa compatibilité au monde de Linux.
Néanmoins, cette expérience aura permis d'explorer le langage de programmation Python qui semble être, en complément du langage BASH, un langage adapté pour développer des programmes dédiés au PC qui pourraient dialoguer avec le microcontrôleur.
Iphone 5
Voir le paragraphe "matériel" pour les généralités.
En date du 08 décembre 2018, pour communiquer avec les ordinateurs qui fonctionne sous Ubuntu, l'Iphone 5 nécessite :
- une version d'Ubuntu limitée à la 16.04 LTS ainsi que l'installation de 2 logiciels :
- libimobiledevice : a library to communicate with services of Apple iOS devices using native
protocols.
- ifuse : a fuse filesystem implementation to access the contents of iOS devices.
N.B. : Filesystem in UserSpacE (FUSE)
Ils convient de les installer selon la procédure d'installation
Le lancement de la commande idevicepair pair donne :
leruste@leruste-System-Product-Name:~$ idevicepair pair
SUCCESS:
Paired with device 68e0a6f5d8bef2d62e1a91c949a49e6d26338fd6
Par contre, le lancement de la commande ifuse donne l'erreur suivante :
-
~ ifuse /media/leruste/ipod
-
GnuTLS error: Error in the pull function. - Failed to connect to lockdownd service on the device
Cette erreur nous amène sur Github :
Build with OpenSSL instead of GnuTLS. GnuTLS does not work with iOS10 devices. The package maintainer in Ubuntu built libimobiledevice with --disable-openssl option forcing GnuTLS. See the last comment in this issue for my solution.
Traduction : Construire avec OpenSSL au lieu de GnuTLS. GnuTLS ne fonctionne pas avec les appareils iOS10. Le responsable du paquet dans Ubuntu construit libimobiledevice avec l’option--disable-openssl option forçant GnuTLS. Voir le dernier commentaire à ce sujet pour ma solution.
Pour découvrir qu'il est préférable de dé-installer avec la commande :
- sudo apt-get remove libimobiledevice6
Beaucoup de baratin et finalement :
- la solution
- The solution is to compile libimobiledevice and ifuse from source.
Extrait de la procédure :
To compile run:
- ./autogen.sh (By default, OpenSSL will be used.)
- make
- sudo make install
Sur l'ordinateur portable LDLC, j'ai déroulé cette seconde procédure d'installation qui consiste à recompiler à partir des sources en respectant à la lettre le paragraphe "requirements".
Le résultat est rigoureusement le même :
- idevicepair pair OK
- airel@airel-W230SD:~$ sudo ifuse /media/airel/iphone
GnuTLS error: Error in the pull function.
Failed to connect to lockdownd service on the device.
Try again. If it still fails try rebooting your device.
En conclusion, la différence fondamentale entre les 2 procédures d'installation est au niveau de l'option prise lors de l'exécution du fichier bash autogen.sh, elle est :
- --disable-openssl pour la première installation
- sans option pour la seconde installation qui correspond à : By default, OpenSSL will be used.
Pour cette seconde installation il s'agit bien de GnuTLS error, ce qui semble prouver que l'option par défaut n'a pas été prise en compte.
N.B. : 1) pour plus de détails voir le fichier README.
2) la compilation de libimobiledevice et ifuse est incomplète, il convient de la vérifier et si besoin de la consolider.
Erreur :
Making check in tools
make[1] : on entre dans le répertoire « /home/airel/libimobiledevice/tools »
CCLD idevice_id
../src/.libs/libimobiledevice.so: undefined reference to `usbmuxd_save_pair_record_with_device_id'
collect2: error: ld returned 1 exit status
Makefile:653 : la recette pour la cible « idevice_id » a échouée
Interprétation :
ld returned 1 exit status :
- ld - The GNU linker
- ld combines a number of object and archive files, relocates their data and ties up symbol references. Usually the last step in compiling a program is to run ld.
Le programme cherche à connaître le idevice_id pour le mémoriser dans la variable usbmuxd_save_pair_record_with_device_id et n'y parvient pas.
le idevice_id est à priori 68e0a6f5d8bef2d62e1a91c949a49e6d26338fd6.
J'identifie le fichier libimobiledevice.so :
airel@airel-W230SD:~/libimobiledevice$ ls -l src/.libs/libimobiledevice.so
lrwxrwxrwx 1 root root 25 déc. 30 16:58 src/.libs/libimobiledevice.so -> libimobiledevice.so.6.0.0
La commande "ls" ci-dessus montre que le fichier est bien identifié et qu'il est redirigé vers un fichier exécutable du même nom + .6.0.0.
La ligne 653 du fichier Makefile est :
-
@rm -f idevice_id$(EXEEXT)
la variable usbmuxd_save_pair_record_with_device_id est pour le moment introuvable.
(Re)compiler un logiciel des dépôts
C'est dans certains cas un passage obligé, en particulier pour installer les logiciels nécessaires à la communication avec l'Iphone.
Pour avoir une idée de la procédure à suivre, suivre le tutoriel compilation.
La définition du compilateur est donné par Wkipédia. En quelque mots, un compilateur est un programme qui transforme un code source écrit dans un langage de programmation (le langage source) en un autre langage informatique (appelé langage cible).
Pour créer ce langage cible, un système d'Autotools est utilisé. Ce système Autotools (ou GNU build system) est un terme général utilisé par la communauté anglo-saxonne pour désigner l'ensemble des outils de build du projet GNU. Voir l'organigramme général à l'aide du même lien Autotools.
Make est un logiciel qui construit automatiquement des fichiers, souvent exécutables, ou des bibliothèques à partir d'éléments de base tels que du code source. Il utilise des fichiers appelés makefile qui spécifient comment construire les fichiers cibles. Make cherche dans le répertoire courant le makefile à utiliser. Par exemple, le make de GNU cherche dans l'ordre, un fichier GNUmakefile, makefile, Makefile, puis exécute les cibles spécifiées (ou par défaut) pour ce fichier uniquement.
Sur un dépot comme Github, le paquet libimobiledevice comprend au niveau du répertoire principal un fichier Makefile.am, à l'aide du Make, ce fichier permet de contruire les 2 fichiers suivants :
- Makefile.in
- Makefile.
La documentation Ubuntu explique la méthode pour (Re)compiler un logiciel des dépôts.
Maintenance
Ventilation de l'ordinateur
Heat sink (Dissipateur de chaleur)
Pour faciliter le dépoussiérage du dissipateur de chaleur monté sur le CPU, Olivier l'a démonté, puis a rencontré quelques difficultés lors du remontage. Ne disposant pas dans l'immédiat de pâte thermique, la pâte résiduelle a été nettoyée mais n'a pas été remplacée. Les 4 "vis" de fixation en matière plastique s'avèrent délicates lors du remontage. Le serrage des 3 premières s'effectuent relativement facilement, celui de la quatrième est beaucoup plus difficile.
Voir le "user guide de la P5Q motherboard".
La préconisation est le serrage simultané de 2 vis diamétralement opposé.
Si le serrage des 4 "vis" n'est pas correct, lors du démarrage de l'ordinateur, après 1 minute, la température du CPU passe de la température ambiante à environ 90°C.
Remplacement de la batterie de la carte mère
Sur la carte mère, cette batterie "Lithium cell CMOS power" est localisée à coté des connecteurs SATA.
Le remplacement de la batterie de la carte mère.
Synchronisation des 2 ordinateurs
Les Virus et arnaques
How to reset Internet Browsers to their default settings?
En résumé, dans le menu de firefox :
- ? aide - Information de dépannage - réparer firefox - confirmer réparer firefox.
Les sauvegardes et les restaurations
Généralités
sauvegarde informatique (wikipédia.fr) sauvegarde (wiki Ubuntu.fr)
Pour organiser les sauvegardes
Les fichiers qui résident sur les disques durs d'un ordinateur sont la résultante de :
- l'installation et des mises à jour :
- du système d'exploitation
- des logiciels applicatifs
- des données générées :
- par l'utilisateur
- par les logiciels applicatifs.
Dans l'hypothèse d'un crash informatique (plantage) qui nécessite une nouvelle installation partielle ou totale, il faut que la politique de maintenance mise en place soit à même de parer toute situation.
Parmi les fichiers cités ci-dessus, il faut donc bien différencier ceux que l'ont peux retrouver facilement (système d'exploitation, logiciels d'application) de ceux qui contiennent des données générées.
Ces données générées sont regroupées dans le répertoire de l'utilisateur sous le répertoire /home qu'il convient de sauvegarder en totalité.
Dans notre cas :
- le répertoire de l'utilisateur à sauvegarder est :
- /home/leruste pour l'ordinateur ASUS
- /home/airel pour l'ordinateur COMPAQ
- j'ai ajouté sur les 2 ordinateurs un répertoire /home/deja-dup (emplacement de stockage).
N.B. :
- des logiciels comme Thunderbird crée sous le répertoire de l'utilisateur un répertoire dont le nom est précédé d'un point, .thunderbird dans notre cas. D'autres exemples : .adobe - .dbus - .dropbox - .gconf - .gitconfig. Attention : ces répertoires sont nombreux, il faut donc s'assurer qu'ils sont correctement sauvegardés.
- l'emplacement de stockage (/home/deja-dup) doit être séparé de celui des données générées, idéalement sur un disque dur séparé.
Déja-dup
Les sauvegardes et les restaurations sont effectuées à l'aide du logiciel déjà dup. Il utilise duplicity. Duplicity sauvegarde les répertoires en produisant des volumes au format tar chiffrés et en les téléchargeant sur un serveur de fichiers local ou distant. Du fait que duplicity utilise la librarie librsync, les archives incrémentielles utilisent peu d'espace et enregistrent uniquement les parties des fichiers qui ont été modifiées depuis la dernière sauvegarde.
Déjà dup peux être lancé :
- en mode graphique en cliquant sur l'icone du lanceur
- en ligne de commande en tapant dans une console
deja-dup
Dès la première sauvegarde un ensemble de fichiers est crée :
- un fichier texte "manifest" par exemple :
duplicity-full.20190313T105946Z.manifest
. Ce fichier décrit l'organisation en 76 volumes. Le volume 2 est donné à titre d'exemple ci-dessous :- Volume 2:
StartingPath home/airel/.dropbox-dist/dropbox-lnx.x86_64-67.4.83/libicuuc.so.42 12 EndingPath home/airel/.mozilla/firefox/40wou9i0.default/storage/default/about+newtab /idb/3312185054sbndi_pspte.files/6 38 Hash SHA1 d6a6306d21b48ac90b3575d8ccb8e0b070d2d900
- un fichier compressé par volume, soit 76 fichiers de type ".difftar.gz", exemple :
duplicity-full.20190313T105946Z.vol2.difftar.gz
- un fichier unique de type ".sigtar.gz", exemple :
duplicity-full-signatures.20190313T105946Z.sigtar.gz
La sauvegarde est journalière et automatisée.
La restauration de l'intégralité des fichiers est simple mais peut par contre être longue.
La restauration d'un seul fichier est plus délicate car le fichier de sauvegarde est compressé. Par exemple :
duplicity-new-signatures.20170416T090035Z.to.20170418T091639Z.sigtar.gz
Ce fichier .gz
Avec la commande gunzip (compress or expand files) on obtient le fichier :
duplicity-new-signatures.20170416T090035Z.to.20170418T091639Z.sigtar
Avec la commande tar (stores and extracts files from a tape or disk archive), en fonction des attributs utilisés, on obtient :
- la liste des fichiers contenus dans l'archive avec -tf
- la restauration d'un ou plusieurs fichier avec -xf et le nom du répertoire ou du fichier après le nom de l'archive .sigtar
Attention : cette restauration se fait avec toute l'arborescence sous un répertoire nommé "signature".
Pour paramétrer deja-dup :
Selon le menu ci-dessus :
- Vue d'ensemble : restaurer ou démarrer une sauvegarde
- Dossier à enregistrer : /home/leruste ou /home/airel
- Dossier à ignorer : exemple Téléchargements
- Emplacement de stockage : /home/deja-dup
- Planification - Exemple : sauvegarde automatique, chaque jour, conserver au moins 6 mois.
Thunderbird (sauvegarde du profile)
Thunderbird saves personal information such as messages, passwords and user preferences in a set of files called a "profile", which is stored in a separate location from the Thunderbird program files. Pour plus de détail, cliquez sur le lien profile.
Pour l'ordinateur ASUS, le profile correspond à un ensemble de fichiers stockés dans le répertoire :
.thunderbird/9nl8338i.default
Pour sauvegarder ce profile, il suffit de sauvegarder le contenu du répertoire, par exemple sur une clé USB à partir d'une commande :
cp -v .thunderbird/9nl8338i.default/* /media/leruste/SAUVEGARDE1/profile_thunderbird
Paquets installés
Site web
Le site web fait l'objet d'un projet séparé