Skip to content

Commit d217262

Browse files
committed
Updated documentation and bug fixes
1 parent 28a0bfc commit d217262

File tree

4 files changed

+97
-32
lines changed

4 files changed

+97
-32
lines changed

CreateImage.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ if ! [ $(id -u) = 0 ]; then
2020
# https://github.com/balena-io/balena-cli/blob/master/INSTALL.md#executable-installer
2121
# If the downloaded and unzipped folder is in download ($HOME/Downloads/balena-cli) then :
2222
export PATH=$PATH:$HOME/Downloads/balena-cli #Allows script environment to understand where Balena Etcher CLI is
23-
if false; then
23+
2424
echo "The fully configured source SD card should be plugged in to continue"
2525
read -p "When ready, input version number : " NUM
2626
dd status=progress if=/dev/sde of=$HOME/MovitImages/Movit-unshrunk$NUM.img
@@ -31,7 +31,7 @@ echo ""
3131
read -p "Press enter when target SD card is inserted"
3232
echo "Flashing new image on inserted SD card..."
3333
balena local flash $HOME/MovitImages/Movit_V$NUM.img.gz -y --drive /dev/sde
34-
fi
34+
3535
echo -e "\nConfiguring wpa_supplicant for the first boot with the flashed SD card"
3636
read -p " Enter SSID: " SSID
3737
read -p " Enter password: " PSK
@@ -53,4 +53,4 @@ echo -e "\n#####################################\nWritten file :\n##############
5353
cat /media/charles/boot/wpa_supplicant.conf
5454
echo -e "#####################################\nExiting..."
5555

56-
exit 0
56+
exit 0

MovitPlusSetup.sh

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,20 +244,27 @@ EOF
244244
sudo cat <<EOF >/etc/systemd/system/movit_setup.service
245245
[Unit]
246246
Description=-------> MOVIT+ first boot setup script
247-
After=network-online.target dnsmasq.service
247+
After=network-online.target dnsmasq.service rc-local.service
248248
Wants=network-online.target
249249
250250
[Service]
251+
# Increase process niceness (priority) for faster execution
252+
Nice=-10
251253
Type=forking
252254
User=root
253255
ExecStart=/home/pi/firstBootSetup.sh --fromService
254-
TimeoutStartSec=25min 00s
256+
TimeoutStartSec=40min 00s
255257
ExecStartPost=reboot
256258
257259
[Install]
258260
WantedBy=multi-user.target
259261
EOF
260262

263+
systemctl enable systemd-networkd-wait-online.service
264+
systemctl disable triggerhappy.service
265+
systemctl disable triggerhappy.socket
266+
267+
261268
else
262269
echo "Skipping step..."
263270
fi

README.md

Lines changed: 80 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ Ce répertoire contient tous les éléments nécessaires pour faire fonctionner
77
### 1.2. Flashage
88
L'image préconfigurée doit être flashée à l'aide d'un logiciel comme [Balena Etcher](https://www.balena.io/etcher/ "Site officiel de Balena Etcher") sur une carte SD.
99
**AJOUTER DÉTAILS DISPONIBILITÉ DE L'IMAGE**
10-
Avec ce logiciel, il suffit de brancher la carte SD avec un adapteur approprié puis, une fois le logiciel lancé, il faut sélectionner l'image téléchargée. Il faut vérifier que la carte SD détectée par le logiciel est la bonne puis appuyer sur le bouton pour lancer le flashage. Une fois terminé, il peut être nécessaire de sortir et de réinserrer la carte afin de faire une dernière modification telle que décrite ci-dessous.
10+
Avec ce logiciel, il suffit de brancher la carte SD avec un adapteur approprié puis, une fois le logiciel lancé, il faut sélectionner l'image téléchargée. Il faut ensuite vérifier que la carte SD détectée par le logiciel est la bonne puis appuyer sur le bouton pour lancer le flashage. Une fois terminé, il peut être nécessaire de sortir et de réinserrer la carte afin de faire une dernière modification telle que décrite ci-dessous.
1111

1212
### 1.3. Configuration sans fil
13-
**Un fichier nommé `wpa_supplicant.conf`**, remplit selon la structure ci-bas avec les informations pour se connecter au réseau wifi choisi, peut être **placé dans la partition `boot`** d'une carte SD nouvellement flashé. Le système l'utilisera afin de permettre une connection au wifi spécifié dès le premier démarrage.
13+
**Il est recommandé de placer un fichier nommé `wpa_supplicant.conf` dans la partition `boot`** d'une carte SD nouvellement flashé. Celui-ci doit être remplit selon la structure ci-bas avec les informations pour se connecter au réseau wifi choisi. Le système l'utilisera afin de permettre une connection au wifi spécifié dès les premiers démarrages.
1414
**`wpa_supplicant.conf`** :
1515
```bash
1616
country=CA
@@ -25,19 +25,14 @@ network={
2525
```
2626

2727
### 1.4. Initialisation automatisé
28-
Des scripts permettent d'initialiser un nouvel appareil rapidement dès le premier démarrage avec l'image préconfiguré. Aucune action n'est requise outre que d'**insérer la carte SD** et de **brancher l'appareil**. L'exécution de ces scripts peut prendre quelques minutes, l'**appareil ne doit pas être débranché!**.
28+
Des scripts s'activant automatiquement permettent d'initialiser un nouvel appareil. Aucune action n'est requise outre que d'**insérer la carte SD** et de **brancher l'appareil**. L'exécution de ces scripts peut prendre quelques minutes.
2929

30-
> L'initialisation automatisé **nécessite une connection à internet** pour fonctionner. Si les scripts ne fonctionnent pas (voir `/home/pi/firstBootScript.log` et `/home/pi/updateProject.log.log`), il peut être nécessaire de se connecter en SSH et de relancer le script lorsque la configuration réseau est réparée (voir [documentation de configuration wifi](https://github.com/introlab/MOvITPlus/blob/master/docs/FR/InstallationLogiciel/ConfigurationSysteme.md#21-connection-%c3%a0-un-r%c3%a9seau-wi-fi)). L'[étape 1.3](#13-configuration-sans-fil) peut également être répété si il y a eu une erreur dans le fichier wpa_supplicant.conf par exemple.
30+
> Attention : **l'appareil ne doit pas être débranché** pendant son initialisation!
3131
32-
### 1.5 Initialisation du projet
33-
Pour initialiser le projet, il faut exécuter la commande suivante :
34-
```bash
35-
sudo /home/pi/MOvITPlus/./updateProject.sh --init-project --console-log
36-
```
37-
Le script s'occupe alors d'installer le backend, d'initialiser la base de données, d'installer le frontend puis finalement de compiler les librairies et le code d'acquisition. Il termine en activant tous les services et en les démarrant.
32+
> L'initialisation automatisé **nécessite une connection à internet** pour fonctionner([spécification de cette connection internet]()). Si les scripts ne fonctionnent pas ([déboggage]()) , il peut être nécessaire de se connecter en SSH et de relancer le script lorsque la configuration réseau est réparée (voir [documentation de configuration wifi](https://github.com/introlab/MOvITPlus/blob/master/docs/FR/InstallationLogiciel/ConfigurationSysteme.md#21-connection-%c3%a0-un-r%c3%a9seau-wi-fi)). L'[étape 1.3](#13-configuration-sans-fil) peut également être répété si une erreur s'est glissée dans le fichier `wpa_supplicant.conf`.
3833
3934
### 1.5. Vérification
40-
À ce point-ci, le système devrait être correctement configuré. Pour tester s'il est fonctionnel, il suffit de se connecter sur le point d'accès de l'appareil (Movit-******), puis d'ouvrir le site `movit.plus`. Lorsqu'une page apparait, il suffit de se connecter avec les identifiants voulu. Voir la documentation de la partie frontend pour plus de détails.
35+
À ce point-ci, le système devrait être correctement configuré. Pour tester s'il est fonctionnel, il suffit de se connecter sur le point d'accès de l'appareil (Movit-******), puis d'accèder à l'addresse `movit.plus` dans un navigateur. Lorsqu'une page apparait, il suffit de se connecter avec les identifiants voulu. Voir la documentation de la partie frontend pour plus de détails.
4136

4237
___
4338
<br>
@@ -48,12 +43,14 @@ ___
4843
## 2. Explications
4944
> Documentation incomplète et non à jour.
5045
#### Script de configuration
51-
**`.sh`**
52-
...
46+
**`MovitPlusSetup.sh`**
47+
Ce script vise à simplifier le paramètrage d'une image _Rasbian Buster Lite_ dans le but de générer une image préconfiguration. Cependant, le script n'a pas été testé complètement et représente d'avantage une piste sur la façon d'y arriver qu'un moyen certain. La dernière partie du script permet d'annuler en partie les effets de l'essaie du script `firstBootSetup.sh`.
48+
> Il est recommendé d'exécuter ce script prudemment et de vérifier chaque étape.
49+
5350

5451
#### Script d'initialisation de système
5552
**`firstBootSetup.sh`**
56-
Lors de son premier démarrage, le Raspberry Pi avec la carte nouvellement flashé effectue la configuration de son _hostname_ et de quelques autres paramètres spécifiques à chaque appareil.
53+
Lors de son premier démarrage, le Raspberry Pi avec la carte nouvellement flashé avec l'image préconfigurée effectue la configuration de son _hostname_ et de quelques autres paramètres spécifiques à chaque appareil.
5754
Le script procède ensuite à l'installation de chacune des composantes du projet dans leur version stable la plus à jour. Celles-ci correspondent aux tags de version référencés dans ce répertoire parent. [Ces tags peuvent être mis à jour](#mise-%c3%a0-jour-des-sous-r%c3%a9pertoires "Mise à jour des sous-répertoires"). La configuration se termine l'écriture du temps du système sur le RTC _(Real Time Clock)_ puis avec de multiples lancements du script de mise à jour (`updateProject.sh`) avec l'argument `--sys-config` et `--init`.
5855

5956

@@ -82,13 +79,64 @@ Additionnelement, l'ajout de l'argument `--console-log` redirige la sortie de l'
8279
8380
> Ce script enregistre la sortie de ses exécutions dans `/home/pi/updateProject.log.log`
8481
82+
### 1.5 Initialisation du projet
83+
Pour initialiser le projet, il faut exécuter la commande suivante :
84+
```bash
85+
sudo /home/pi/MOvITPlus/./updateProject.sh --init-project --console-log
86+
```
87+
Le script s'occupe alors d'installer le backend, d'initialiser la base de données, d'installer le frontend puis finalement de compiler les librairies et le code d'acquisition. Il termine en activant tous les services et en les démarrant.
88+
___
89+
90+
91+
8592
93+
voir `firstBootScript.log` et `updateProject.log.log` dans le répertoire ` /home/pi/`)
8694
___
95+
8796
<br>
8897
<br>
8998
90-
## Installation complète
91-
Pour ce faire, [la documentation sur la configuration d'un nouveau système](https://github.com/introlab/MOvITPlus/blob/master/docs/FR/InstallationLogiciel/ConfigurationSysteme.md "Configuration du système") est essentielle.
99+
100+
101+
102+
## Installation manuelle
103+
### Documentation et installation manuelle
104+
Un nouveau système peut être installé manuellement en suivant la documentation sur la [configuration d'un nouveau système](https://github.com/introlab/MOvITPlus/blob/master/docs/FR/InstallationLogiciel/ConfigurationSysteme.md "Configuration du système"), puis la documentation de chacune des parties du projet ([MOvIT-Detect](), [MOvIT-Detect-Backend](), [MOvIT-Detect-Frontend]()).
105+
106+
### Génération d'image
107+
Il également possible d'utiliser le script `MovitPlusSetup.sh`. Ce dernier effectue essentiellement toutes les étapes nécessaires générer l'image préconfiguré en partant d'un image de Rasbian Lite. Cela permettra donc d'utiliser les scripts mentionnés plus haut pour terminer l'installation du projet par la suite.
108+
109+
> **Attention :** ce script n'a pas été testé complètement et certaines erreurs plus ou moins importantes pourraient survenir. L'utiliser à vos risque.
110+
111+
112+
## MOvIT-Detect
113+
Contiens tout le code nécessaire pour communiquer avec des capteurs via I2C et SPI à partir d'un Raspberry Pi Zero W et des circuits imprimés faits sur mesure. La communication avec le backend est faites via MQTT. Ce code fonctionne sur Raspberry Pi Zero W, ou tout autre processeur ARM basé sur le processeur BroadCom bcm2835.
114+
115+
## MOvIT-Detect-Backend
116+
C'est le backend du système, il a été conçu en node-red, ce qui permet d'effectuer des modifications rapidement et simplement. Il reçoit les données via MQTT du code d'acquisition et enregistre les données dans une base de données MongoDB 2 localement. Les donnes sont alors traitées et peuvent être affichées à l'aide de requête GET et POST, également utilisé par le frontend pour afficher l'information.
117+
118+
## MOvIT-Detect-Frontend
119+
C'est le frontend du système, utilisé par le clinicien et le patient. Ce code utilise React et Redux afin de créer une application web fluide. Les données sont affichées sous forme de graphique facile à lire et interprétées.
120+
121+
## MOvIT-Hardware
122+
Contiens tous les fichiers de fabrication pour concevoir, ce qui permet de recréer le système en entier.
123+
124+
125+
126+
127+
128+
____
129+
130+
131+
132+
133+
134+
____
135+
____
136+
____
137+
____
138+
139+
92140
### Installation de MOvIt Plus
93141
L'installation de MOvIt requiert un `git clone` habituel mais comporte quelques subtilitées avec les sous-modules.
94142
@@ -115,14 +163,22 @@ Il est ensuite possible de mettre à jour le répertoire parent avec ces derniè
115163
116164
> [Documentation sur les sous-modules GitHub](https://git-scm.com/book/en/v2/Git-Tools-Submodules "GitHub Submodules")
117165
118-
## MOvIT-Detect
119-
Contiens tout le code nécessaire pour communiquer avec des capteurs via I2C et SPI à partir d'un Raspberry Pi Zero W et des circuits imprimés faits sur mesure. La communication avec le backend est faites via MQTT. Ce code fonctionne sur Raspberry Pi Zero W, ou tout autre processeur ARM basé sur le processeur BroadCom bcm2835.
120166
121-
## MOvIT-Detect-Backend
122-
C'est le backend du système, il a été conçu en node-red, ce qui permet d'effectuer des modifications rapidement et simplement. Il reçoit les données via MQTT du code d'acquisition et enregistre les données dans une base de données MongoDB 2 localement. Les donnes sont alors traitées et peuvent être affichées à l'aide de requête GET et POST, également utilisé par le frontend pour afficher l'information.
167+
### Astuces
168+
- Pour exécuter uniquement certaines partie d'un script, il est plus rapide de faire un `if false; then` en début, et `fi` en fin du segment qui doit être ignoré que de commenter toutes les lignes.
169+
- Pour observer et suivre en temps réel le déroulement du des scripts qui écrit dans un fichier _.log_, la commande `tail -fn 50 #nom_du_fichier.log` affichera les 50 dernières lignes ainsi que les lignes qui se rajouteront à mesure.
170+
- L'utilisation de l'argument --console-log pour le script `updateProject.sh` montrera le progrès de NPM et Yarn lors de l'exécution de ces étapes.
171+
> Attention, les logs ne sont pas sauvegardés lors de l'utilisation de cet argument.
172+
- Pour trouver le nom du Raspberry Pi pour, par exemple, se connecter en SSH, il suffit de regarder le nom du point d'accès créé par le Pi. Si celui-ci n'a pas encore réussi à terminer sa configuration ou qu'un erreur est survenu pendant celle-ci, alors le hostname du Pi sera `Movit-NOCONF`.
123173
124-
## MOvIT-Detect-Frontend
125-
C'est le frontend du système, utilisé par le clinicien et le patient. Ce code utilise React et Redux afin de créer une application web fluide. Les données sont affichées sous forme de graphique facile à lire et interprétées.
126174
127-
## MOvIT-Hardware
128-
Contiens tous les fichiers de fabrication pour concevoir, ce qui permet de recréer le système en entier.
175+
176+
177+
178+
179+
180+
<br>
181+
<br>
182+
<br>
183+
<br>
184+
<br>

firstBootSetup.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,10 @@ EOF
103103
echo "### Script successful, see updateProject.log..."
104104

105105
#This next part of the script is long to execute
106-
echo -e "###\n### Executing 'updateProject.sh' with '--init-project'...\n###"
107-
$MovitPath/./updateProject.sh --init-project
108-
echo "Script successful, see updateProject.log"
106+
#TO BE FULLY IMPLEMETED AND TESTED IN FUTURE VERSIONS
107+
#echo -e "###\n### Executing 'updateProject.sh' with '--init-project'...\n###"
108+
#$MovitPath/./updateProject.sh --init-project
109+
#echo "Script successful, see updateProject.log"
109110

110111
else
111112
echo "### Skipping git installation because of '--nogit' argument"
@@ -117,6 +118,7 @@ EOF
117118
else
118119
echo "### The network is down, cannot run first boot setup"
119120
echo "### Please fix internet connection and $failmesg."
121+
exit 1
120122
fi
121123

122124
fi

0 commit comments

Comments
 (0)