Update README.md
This commit is contained in:
parent
84e46bbb55
commit
7c1ed25c14
232
README.md
232
README.md
|
@ -27,36 +27,21 @@ https://www.youtube.com/watch?v=QDnG3Jni7sY
|
||||||
https://www.youtube.com/watch?v=LqV65iPTmnc
|
https://www.youtube.com/watch?v=LqV65iPTmnc
|
||||||
https://www.youtube.com/watch?v=_PVwf9nRAA0
|
https://www.youtube.com/watch?v=_PVwf9nRAA0
|
||||||
|
|
||||||
|
## I. Matériel
|
||||||
|
|
||||||
## Installation
|
**A découvrir sur la page [G1SMS:small_orange_diamond:](https://www.g1sms.fr/fr/blog/g1smsplus)**
|
||||||
|
|
||||||
git clone https://git.p2p.legal/axiom-team/G1sms
|
## II. Préparation
|
||||||
mv G1sms G1sms+
|
|
||||||
cd G1sms+
|
|
||||||
chmod u+x install.sh
|
|
||||||
|
|
||||||
### Options
|
### 1. Installer Raspbian Stretch ou Buster (9 ou 10) :ice_cream:
|
||||||
./install.sh : Cycle normale, va détecter si les éléments sont installés ne va pas les réinstaller. Demande confirmations, et propose d'installer les outils otionnels
|
|
||||||
./install.sh force : Réinstalle les éléments même si ils sont déjà installés
|
|
||||||
./install.sh noask : Ne pose pas de questions de confirmation pendant l'install, il y va
|
|
||||||
./install.sh all : Install les outils optionnels sans poser de question
|
|
||||||
./install.sh noptions : N'installe pas les outils optionnels
|
|
||||||
|
|
||||||
|
* Téléchargez "[Raspbian Buster Lite](https://www.raspberrypi.org/downloads/raspbian/)" et flashez l'image sur une carte microSD
|
||||||
|
|
||||||
## Matériel
|
|
||||||
|
|
||||||
A découvrir sur la page [G1SMS:small_orange_diamond:](https://www.g1sms.fr/fr/blog/g1smsplus)
|
|
||||||
|
|
||||||
## **Installer Raspbian Stretch** :ice_cream:
|
|
||||||
|
|
||||||
* Téléchargez "[Raspbian Stretch Lite](https://www.raspberrypi.org/downloads/raspbian/)" et flashez l'image sur une carte microSD
|
|
||||||
* Installez Raspbian ([comment faire sur un RaspberryPi Zero sans écran?](https://projetsdiy.fr/comment-installer-raspbian-raspberry-pi-zero-sans-ecran-clavier/)).
|
* Installez Raspbian ([comment faire sur un RaspberryPi Zero sans écran?](https://projetsdiy.fr/comment-installer-raspbian-raspberry-pi-zero-sans-ecran-clavier/)).
|
||||||
|
|
||||||
Terminez cette phase par une mise à jour
|
Terminez cette phase par une mise à jour
|
||||||
> **sudo apt update; sudo apt upgrade -y**
|
> **sudo apt update; sudo apt upgrade -y**
|
||||||
|
|
||||||
### 1. Installation carte GSM (pour commandes par SMS)?
|
### 2. Installation carte GSM (pour commandes par SMS)?
|
||||||
|
|
||||||
L'interface de commande par SMS permet d'ouvrir l'usage de la monnaie libre à ceux qui ne possèdent pas de smartphone et n'ont aucun ordinateur connecté à disposition... Et permet l'utilisation du réseau 2G des opérateurs, peut encombré et presque gratuit (1€/ mois chez Free je crois)
|
L'interface de commande par SMS permet d'ouvrir l'usage de la monnaie libre à ceux qui ne possèdent pas de smartphone et n'ont aucun ordinateur connecté à disposition... Et permet l'utilisation du réseau 2G des opérateurs, peut encombré et presque gratuit (1€/ mois chez Free je crois)
|
||||||
|
|
||||||
|
@ -68,7 +53,7 @@ Elles ont besoin d'être testées et d'améliorer leur compatibilité CLI. En fo
|
||||||
|
|
||||||
Les scripts "./shell/cron" en cours d'écriture/test et sont à activer soi-même.
|
Les scripts "./shell/cron" en cours d'écriture/test et sont à activer soi-même.
|
||||||
|
|
||||||
### 2. **Activer le GSM pHAT**
|
### 3. **Activer le GSM pHAT**
|
||||||
|
|
||||||
La carte utilise une connexion UART sur l'interface GPIO du Rpi pour communiquer (en commandes AT). Placer le jumper dans la position B pour activer ce mode. On prendra soin de désactiver la console (tty) établie par le système sur le port série qui rentre en conflit autrement...
|
La carte utilise une connexion UART sur l'interface GPIO du Rpi pour communiquer (en commandes AT). Placer le jumper dans la position B pour activer ce mode. On prendra soin de désactiver la console (tty) établie par le système sur le port série qui rentre en conflit autrement...
|
||||||
|
|
||||||
|
@ -77,7 +62,7 @@ La carte utilise une connexion UART sur l'interface GPIO du Rpi pour communiquer
|
||||||
* Effacer **console=serial0,115200** de **/boot/cmdline.txt**
|
* Effacer **console=serial0,115200** de **/boot/cmdline.txt**
|
||||||
* Redémarrer...
|
* Redémarrer...
|
||||||
|
|
||||||
### 3. Démarrer la carte GSM !
|
### 4. Démarrer la carte GSM !
|
||||||
|
|
||||||
il faudra appuyer 3 secondes sur le bouton d'allumage. Nous allons le faire par un script qui manipule le GPIO.
|
il faudra appuyer 3 secondes sur le bouton d'allumage. Nous allons le faire par un script qui manipule le GPIO.
|
||||||
|
|
||||||
|
@ -99,157 +84,44 @@ il faudra appuyer 3 secondes sur le bouton d'allumage. Nous allons le faire par
|
||||||
Ajouter le lancement de ce script au démarrage (dans /etc/rc.local)
|
Ajouter le lancement de ce script au démarrage (dans /etc/rc.local)
|
||||||
|
|
||||||
|
|
||||||
### 4. Installer gammu et gammu-smsd
|
## III. Installation de Ḡ1sms+ avec ses prérequis (Gammu, IPFS) et ses modules
|
||||||
|
### Clonez le dépôt G1sms+
|
||||||
|
git clone https://git.p2p.legal/axiom-team/G1sms
|
||||||
|
mv G1sms G1sms+
|
||||||
|
cd G1sms+
|
||||||
|
chmod u+x install.sh
|
||||||
|
|
||||||
Afin de dialoguer avec le réseau GSM, recevoir et envoyer des SMS. Nous utiliserons le serveur gammu. Suivre la procédure détaillée ici: https://tutoandco.colas-delmas.fr/software/envoyer-sms-gammu-deamon/
|
### Options
|
||||||
|
./install.sh : Cycle normale, va détecter si les éléments sont installés ne va pas les réinstaller. Demande confirmations, et propose d'installer les outils otionnels
|
||||||
|
./install.sh force : Réinstalle les éléments même si ils sont déjà installés
|
||||||
|
./install.sh noask : Ne pose pas de questions de confirmation pendant l'install, il y va
|
||||||
|
./install.sh all : Install les outils optionnels sans poser de question
|
||||||
|
./install.sh noptions : N'installe pas les outils optionnels
|
||||||
|
|
||||||
sudo apt-get install ppp screen git python3-pip minicom gammu gammu-smsd
|
|
||||||
sudo usermod -aG gammu pi;
|
|
||||||
|
|
||||||
Vérifier que la carte GSM pHAT est démarrée, sinon lancer
|
|
||||||
|
|
||||||
sudo ./GSM_powerkey.sh
|
**VOILA! Le système peut maintenant dialoguer par SMS.**
|
||||||
|
|
||||||
Identification de la carte
|
## IV. Tests
|
||||||
|
|
||||||
sudo gammu --identify
|
### Envoyer un SMS
|
||||||
|
echo "Mon premier SMS envoyé !" | gammu-smsd-inject TEXT 06xxxxxxxx
|
||||||
> Device : /dev/ttyS0
|
|
||||||
> Manufacturer : SIMCOM_Ltd
|
|
||||||
> Model : unknown (SIMCOM_SIM868)
|
|
||||||
> Firmware : Revision:1418B03SIM868M32_BT
|
|
||||||
> IMEI : 868183033532677
|
|
||||||
|
|
||||||
Création du fichier de configuration gammurc à partir de ces infos...
|
**TODO :**
|
||||||
**sudo nano /etc/gammurc**
|
- Ajouter un test silkaj
|
||||||
|
- Notif d'une alert admin par G1sms
|
||||||
|
|
||||||
[gammu]
|
|
||||||
port = /dev/ttyS0
|
|
||||||
model = SIMCOM_Ltd (SIMCOM_SIM868)
|
|
||||||
connection = at19200
|
|
||||||
synchronizetime = yes
|
|
||||||
logfile = /tmp/smsd.log
|
|
||||||
logformat = nothing
|
|
||||||
|
|
||||||
TEST: Envoyer un SMS.
|
---
|
||||||
|
---
|
||||||
|
---
|
||||||
|
|
||||||
sudo gammu sendsms TEXT 06nnnnnnnn -text "NOUVEAU G1sms+"
|
**La partie qui suis doit être mise à jours !**
|
||||||
|
|
||||||
Tout ce passe bien? Alors on installe le daemon gammu smsd
|
|
||||||
|
|
||||||
sudo apt install gammu-smsd -y
|
|
||||||
|
|
||||||
Préparer le fichier de configuration ([DOC gammu...](https://wammu.eu/docs/manual/smsd/config.html))
|
|
||||||
Adaptez selon le code PIN de votre carte SIM.
|
|
||||||
|
|
||||||
**sudo nano /etc/gammu-smsdrc**
|
|
||||||
|
|
||||||
[gammu]
|
|
||||||
device = /dev/ttyS0
|
|
||||||
name = SIMCOM_Ltd (SIMCOM_SIM868)
|
|
||||||
connection = at19200
|
|
||||||
synchronizetime = yes
|
|
||||||
gammucoding = utf8
|
|
||||||
logformat = textall
|
|
||||||
|
|
||||||
[smsd]
|
|
||||||
service = files
|
|
||||||
Logfile = /tmp/smsd.log
|
|
||||||
DeliveryReport = log
|
|
||||||
debuglevel = 3
|
|
||||||
CommTimeout = 5
|
|
||||||
ReceiveFrequency = 5
|
|
||||||
CheckSecurity = 1
|
|
||||||
PIN = 0000
|
|
||||||
|
|
||||||
# Paths where messages are stored
|
|
||||||
inboxpath = /var/spool/gammu/inbox/
|
|
||||||
outboxpath = /var/spool/gammu/outbox/
|
|
||||||
sentsmspath = /var/spool/gammu/sent/
|
|
||||||
errorsmspath = /var/spool/gammu/error/
|
|
||||||
|
|
||||||
# Run G1SMS Script RunOnReceive
|
|
||||||
RunOnReceive = /home/pi/G1sms+/sms_received.sh
|
|
||||||
|
|
||||||
Le fichier de configuration maintenant prêt, on peut redémarrer le démon smsd
|
|
||||||
|
|
||||||
**sudo service gammu-smsd restart**
|
|
||||||
|
|
||||||
Vous voyez cette ligne dans vos processus? Tudo Bom :smiley: !
|
|
||||||
|
|
||||||
ps auxf
|
|
||||||
usr/bin/gammu-smsd --pid=/var/run/gammu-smsd.pid --daemon
|
|
||||||
|
|
||||||
VOILA! Le système peut maintenant dialoguer par SMS.
|
|
||||||
|
|
||||||
## Installer le coeur de G1sms+
|
|
||||||
:warning: Le code appelé par gammu s'exécute en tant qu'utilisateur root.
|
|
||||||
|
|
||||||
On pourra ajouter **umask 027** à **/root/.bashrc** pour isoler l'appartenance des fichiers de ce compte.
|
|
||||||
|
|
||||||
### 1. Installer Silkaj & Duniterpy
|
|
||||||
|
|
||||||
# Exécuter les commandes suivante en root
|
|
||||||
sudo -s
|
|
||||||
|
|
||||||
# Silkaj + Duniterpy
|
|
||||||
sudo apt install python3-pip
|
|
||||||
sudo apt install libsodium18
|
|
||||||
sudo pip3 install silkaj
|
|
||||||
|
|
||||||
Voila ces 2 super connecteurs python à Duniter installés :cool: Ils seront utilisés par G1sms+ pour gérer les wallets et leurs TX, récupérer le profil des membres dans Cesium+, etc...
|
|
||||||
|
|
||||||
En fait pour l'instant l'API CLI de silkaj n'étant pas encore disponible. C'est la version 0.50 patchée de G1sms qui continue à être utilisée (TODO !!!). Dans ce cas, il faudra peut-être installer les librairies pythons à la main...
|
|
||||||
|
|
||||||
cd ./silkaj
|
|
||||||
pip3 install -r requirements.txt
|
|
||||||
|
|
||||||
Dans cette version. Le dialogue avec les serveurs Duniter a été améliorée par un "load-balacing" régulier sur le groupe de serveurs en plus grand consensus et ayant un timeout correct...
|
|
||||||
|
|
||||||
### 2. Installer IPFS
|
|
||||||
|
|
||||||
Installer ipfs par son programme de mise à niveau permettra de facilement suivre l'évolution de l'Univers Interplanétaire :crystal_ball:
|
|
||||||
|
|
||||||
sudo -s
|
|
||||||
cd /usr/src/
|
|
||||||
wget https://dist.ipfs.io/ipfs-update/v1.5.2/ipfs-update_v1.5.2_linux-arm.tar.gz
|
|
||||||
tar xvzf ipfs-update_v1.5.2_linux-arm.tar.gz
|
|
||||||
cd ipfs-update
|
|
||||||
./install.sh
|
|
||||||
ipfs-update install latest
|
|
||||||
|
|
||||||
|
|
||||||
Maintenant on peut choisir entre 3 façons de faire:
|
|
||||||
1. Opérer IPFS en Réseau Privé (swarm.key & Environment="LIBP2P_FORCE_PNET=1") et gérer ses serveurs de bootstrap. https://pad.p2p.legal/ipfs-onelove#Rejoindre-l%E2%80%99Essaim
|
|
||||||
2. Opérer sur IPFS Global en prenant soin de crypter les données échangées. https://medium.com/@mycoralhealth/learn-to-securely-share-files-on-the-blockchain-with-ipfs-219ee47df54c
|
|
||||||
~~3. Utiliser l'application ipfs-cluster: https://cluster.ipfs.io/documentation/quickstart/~~
|
|
||||||
|
|
||||||
C'est finalement l'option 2 qui a été choisie, en chiffrant les fichiers mis dans IPFS par la clef GPG du SWARM, du NODE, ou du TAG, la sécurité est assurée (regarder dans ./shell/init_keys.sh, [Generer une clef GPG pour le NODE](https://serverfault.com/a/960673), partager les clefs publiques des Nodes ./wallets/SWARM/IPFSID/gpgpubkey)
|
|
||||||
|
|
||||||
Ici, chaque noeud reste propritéaire des G1sms wallet qu'il a créé est reste le seul à pouvoir interagir avec.
|
|
||||||
|
|
||||||
Configurer le démon **ipfs** pour le user **pi**
|
|
||||||
|
|
||||||
|
|
||||||
Configurer et initialiser le démon avec des options p2p trop pratiques (communication, publication et surveillance de canal, forward de ports, reverse ssh, etc... on accède à tout par son hash, y compris un noeud...)
|
|
||||||
|
|
||||||
su pi
|
|
||||||
ipfs init -p lowpower
|
|
||||||
# Activate pubsub (mode gossip)
|
|
||||||
ipfs config Pubsub.Router gossipsub
|
|
||||||
# Define max storage
|
|
||||||
ipfs config Datastore.StorageMax 6GB
|
|
||||||
## Port Forwarding on P2P (SSH: ipfs p2p listen /x/ssh /ip4/127.0.0.1/tcp/22 )
|
|
||||||
ipfs config --json Experimental.Libp2pStreamMounting true
|
|
||||||
|
|
||||||
On ajoute au BOOTSTRAP le(s) noeud(s) leader (always on) du SWARM
|
|
||||||
|
|
||||||
######### UPDATE BOOTSTRAP LIST ###########
|
|
||||||
ipfs bootstrap rm --all
|
|
||||||
### fred@onelove.madeinzion.org ###
|
|
||||||
# ID: QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
|
|
||||||
ipfs bootstrap add /ip6/fe80::207:cbff:fe0b:75bb/tcp/4001/ipfs/QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
|
|
||||||
ipfs bootstrap add /ip4/51.15.2.211/tcp/4001/ipfs/QmSX7gFRPHui5A2DWFk2VmBvq6hynj2hubhJLQAwPWe4Lh
|
|
||||||
|
|
||||||
### 3. ACTIVER LE SUPPORT A DISTANCE
|
### 3. ACTIVER LE SUPPORT A DISTANCE
|
||||||
|
|
||||||
|
@ -277,43 +149,6 @@ FAIRE APPEL AU SUPPORT
|
||||||
ssh pi@localhost -p 2222
|
ssh pi@localhost -p 2222
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 4. Lancement de ipfs au démarrage du système
|
|
||||||
|
|
||||||
**sudo nano /etc/systemd/system/ipfs.service**
|
|
||||||
|
|
||||||
[Unit]
|
|
||||||
Description=IPFS daemon
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=pi
|
|
||||||
ExecStart=/usr/local/bin/ipfs daemon --enable-pubsub-experiment --enable-namesys-pubsub --routing=dhtclient --enable-gc
|
|
||||||
Restart=on-failure
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
|
|
||||||
|
|
||||||
Activer et lancer le service ipfs
|
|
||||||
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl enable ipfs
|
|
||||||
sudo systemctl start ipfs
|
|
||||||
|
|
||||||
sudo systemctl status ipfs
|
|
||||||
|
|
||||||
|
|
||||||
### 5. Installer la Suite: logiciels et périphériques
|
|
||||||
|
|
||||||
On installe **gnupg** ntpdate pour synchroniser nos horloges plus de quoi manipuler les images, les qrcodes, les chiffres et le json (dialogue avec DUNITER et CESIUM)
|
|
||||||
|
|
||||||
sudo apt install gnupg ntpdate
|
|
||||||
sudo apt install ssmtp mpack
|
|
||||||
|
|
||||||
# Pour manipuler les images, les chiffres et le json
|
|
||||||
sudo apt install imagemagick qrencode bc jq libttspico-utils
|
|
||||||
|
|
||||||
- Configurer un serveur relai email
|
- Configurer un serveur relai email
|
||||||
:a: https://wiki.archlinux.org/index.php/SSMTP
|
:a: https://wiki.archlinux.org/index.php/SSMTP
|
||||||
:b: http://ozzmaker.com/send-email-from-the-raspberry-pi-or-linux-command-line-with-attachments/
|
:b: http://ozzmaker.com/send-email-from-the-raspberry-pi-or-linux-command-line-with-attachments/
|
||||||
|
@ -419,8 +254,3 @@ https://ethereum.stackexchange.com/questions/63109/ipfs-versioning-how-to-get-al
|
||||||
|
|
||||||
* What is InterPlanetary Naming System(IPNS)? https://hackernoon.com/understanding-ipfs-in-depth-3-6-what-is-interplanetary-naming-system-ipns-9aca71e4c13b
|
* What is InterPlanetary Naming System(IPNS)? https://hackernoon.com/understanding-ipfs-in-depth-3-6-what-is-interplanetary-naming-system-ipns-9aca71e4c13b
|
||||||
|
|
||||||
# INSTALL
|
|
||||||
|
|
||||||
A venir... préparer un script qui effectue ce qui est décrit dans ce document pour lancer des installations plus automatiques de NODE G1sms+
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue