Bloc-notes

Mes notes pour faire fonctionner le Raspberry, et plus.

17 octobre 2018
de Nico
0 Commentaires

Fichiers de config réseau par défaut sur Stretch

En cas de manipulation hasardeuse de la configuration réseau sur Raspberry Stretch, pour rattraper la coup, voici le contenu d’origine (après installation neuve) des fichiers réseau:

sudo cat /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

****************************************
sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

****************************************
sudo cat /etc/dhcpcd.conf

# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.

# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel

# Inform the DHCP server of our hostname for DDNS.
hostname

# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
# Some non-RFC compliant DHCP servers do not reply with this set.
# In this case, comment out duid and enable clientid above.
#duid

# Persist interface configuration when dhcpcd exits.
persistent

# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Most distributions have NTP support.
option ntp_servers
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu

# A ServerID is required by RFC2131.
require dhcp_server_identifier

# Generate Stable Private IPv6 Addresses instead of hardware based ones
slaac private

# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
#interface eth0
#fallback static_eth0
****************************************

21 septembre 2018
de Nico
0 Commentaires

Mettre à jour Mattermost (nouvelle méthode)

Exemple pour le passage de Mattermost serveur de v5.2.1 à v5.3.1
Fonctionne aussi pour passer de 5.3.1 à 5.7.0

Localiser le chemin où est installé la version actuelle:
whereis platform
La réponse est du type: platform: /opt/mattermost/bin/platform
. Le chemin d’installation est la valeur avant mattermost, c’est à dire ici: /opt

Une fois qu’on a le chemin d’installation, on peut lancer la série de commandes suivantes:

Identifier le propriétaire et le groupe:
ls -l /opt/mattermost/bin/platform
La réponse est du type: -rwxr-xr-x 1 mattermost mattermost 14050909 sept. 1 20:31 /opt/mattermost/bin/platform. On voit ici que le propriétaire et le groupe sont mattermost.

Procédons à l’installation
cd ~

Téléchargement de la version 5.3.1 (entreprise):
wget https://releases.mattermost.com/5.3.1/mattermost-5.3.1-linux-amd64.tar.gz

Extraire le fichier d’installation:

tar -x --transform='s,^[^/]\+,\0-upgrade,' -f mattermost*.gz

Arrêter Mattermost (sur Ubuntu 16.04):

sudo systemctl stop mattermost

Sauvegarder l’application et des données. La date et heure du répertoire de sauvegarde sont calculées automatiquement.
Important pour la suite, se placer dans /opt et y rester pour lancer les commandes suivantes:

cd /opt
sudo cp -ra mattermost/ mattermost-back-$(date +'%F-%H-%M')/

Supprimer les fichiers de Mattermost, excepté les fichiers spéciaux à conserver:

sudo find mattermost/ -mindepth 1 -maxdepth 1 \! \( -type d \( -path mattermost/config -o -path mattermost/logs -o -path mattermost/plugins -o -path mattermost/data \) -prune \) | sudo xargs rm -r

Renommer le répertoire des plugins pour qu’il n’interfère pas avec la mise à jour:

sudo mv mattermost/plugins/ mattermost/plugins~

Mettre en place les droits avant mise à jour:

sudo chown -hR mattermost:mattermost ~/mattermost-upgrade/

Copier la nouvelle version vers le répertoire d’installation:

sudo cp -an ~/mattermost-upgrade/. mattermost/
sudo rm -rf ~/mattermost-upgrade/

On peut maintenant relancer Mattermost:

sudo systemctl start mattermost

Reste la sécurité TLS à remettre si elle était en place (conseillé). Pour ça, voir le guide complet sur docs.mattermost.com

Source: https://docs.mattermost.com/administration/upgrade.html

11 avril 2018
de Nico
0 Commentaires

Corriger l’erreur “Impossible de traiter le fichier /var/lib/apt/extended_states”

En cas d’erreur du type “Impossible de traiter le fichier /var/lib/apt/extended_states” après la commande sudo apt-get dist-upgrade

Exemple:
sudo apt-get dist-upgrade
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Erreur !
E: Impossible de traiter le fichier /var/lib/apt/extended_states (1)

On peut réparer avec la commande sudo mv /var/lib/apt/extended_states /var/lib/apt/extended_states_tmp

La solution vient du site sathyasays.com

7 avril 2018
de Nico
0 Commentaires

Réparer la base de données Domoticz

Si les graphes semblent anormaux (par exemple, celui des 24 heures affiche 5 jours…), et que dans le journal, vous avez des erreurs du style “”Error: SQL Query(“SELECT ROWID, nValue, sValue, Date FROM LightingLog WHERE (DeviceRowID==44) ORDER BY Date DESC”) : database disk image is malformed “, alors il est judicieux de réparer la base de données de Domoticz.

La méthode est décrite sur cbion.fr. Je l’ai testé, elle fonctionne.

Quand la réparation est réussie, le résultat de pragma integrity_check; est ok.

Juste à savoir:
Pour arrêter le service Domoticz: sudo service domoticz.sh stop
Pour sortir de SQLITE3, au cas où…, taper .exit (point exit)

12 mars 2018
de Nico
0 Commentaires

Mettre à jour Mattermost

21/09/2018: Voir le nouvel article avec la nouvelle méthode sur ce lien.

Mis à jour le 18/07/2018

Exemple pour le passage de Mattermost serveur de v4.7.0 à v4.7.2 (fonctionne aussi pour passer de 4.7.2 à 4.8.0, 4.8.0 à 4.9.1, 4.9.1 à 4.10.0, 4.10.0 à 5.0.0, 5.0.0 à 5.1.0).

Localiser le chemin où est installé la version actuelle:
whereis platform

La réponse est du type: platform: /opt/mattermost/bin/platform
Le chemin d’installation est la valeur avant mattermost, c’est à dire ici: /opt/

Un fois qu’on a le chemin d’installation, on peut lancer la série de commandes suivantes.

Identifier le propriétaire et le groupe:
ls -l /opt/mattermost/bin/platform

La réponse est du type: -rwxr-xr-x 1 mattermost mattermost 49489775 mars 4 01:06 /opt/mattermost/bin/platform. On voit ici que le propriétaire et le groupe sont mattermost.

Procédons à l’installation
cd ~

Téléchargement de la version 4.7.2 (entreprise):
wget https://releases.mattermost.com/4.7.2/mattermost-4.7.2-linux-amd64.tar.gz

Extraction:
tar -xzf mattermost*.gz

Arrêter Mattermost (sur Ubuntu 16.04):
sudo systemctl stop mattermost

Sauvegarde de l’application et des données. Ici la date de sauvegarde est 2018-03-04, à adapter au besoin.
sudo mv /opt/mattermost /opt/mattermost-2018-03-04

Copie de la nouvelle version vers le répertoire d’installation:
sudo cp -r mattermost /opt/

Restauration de la configuration:
sudo cp -r /opt/mattermost-2018-03-04/config/ /opt/mattermost
sudo cp -r /opt/mattermost-2018-03-04/data/ /opt/mattermost
sudo cp -r /opt/mattermost-2018-03-04/logs/ /opt/mattermost

Remise en place des droits:
sudo chown -R mattermost:mattermost /opt/mattermost

Relance de Mattermost mis à jour:
sudo systemctl start mattermost

Reste la sécurité TLS à remettre si elle était en place (conseillé). Pour ça, voir le guide complet sur docs.mattermost.com

25 février 2018
de Nico
0 Commentaires

Activer F2FS sur la partition root d’un Raspberry

EDIT: après quelques mois d’utilisation, la partition en f2fs n’a pas empêché des problèmes de stabilité. Mes autres Raspberry en ext4 sont plus stables.

Le type de partition F2FS semble le mieux adapté au Raspberry.

Voici comment transformer en F2FS la partition root sans perdre les données.

De base, la partition boot contient le nécessaire pour démarrer le PI, et la partition root contient les programmes et les données.

Mode opératoire:

Dans raspi-config (choix 7 puis A1 Expand), s’assurer qu’on a bien étendu la partition root à toute la carte SD de façon à bénéficier de tout l’espace de stockage. Après cette manip, rebooter le PI pour prise en compte (sudo reboot).

IMPORTANT: avant d’arrêter le PI pour récupérer la carte SD, installer le paquet F2FS: sudo apt-get install f2fs-tools

Si cette opération n’est pas faite, le PI ne pourra pas monter la partition root à l’issu des manip.

Eteindre le PI: sudo shutdown (ensuite attendre une minute …)

Retirer la carte SD et la mettre sur une machine Linux (par exemple sur une machine virtuelle VirtualBox avec la distribution Linux Lubuntu installée).

Sur Lubuntu, les deux partitions boot et root devraient se monter automatiquement.

Installer le paquet F2FS sur la machine Linux qui va servir à faire la sauvegarde de la carte, le formatage F2FS, et la restauration de la carte:
sudo apt-get install f2fs-tools

Vérifier si la carte est montée:
sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

Vérifier si la taille de la partition sur la machine Linux est assez grande pour recevoir le contenu de la carte SD, et quel chemin lui est affecté:
df

Considérons (à adapter en fonction du résultat de votre commande df ci-dessus) que la carte SD montée sur Linux porte le nom sdb et que les chemins sont:

/dev/sdb1 /media/utilisateur/boot_fs
/dev/sdb2 /media/utilisateur/root_fs

Considérons que le chemin de sauvegarde est /home/utilisateur/carte (remplacer utilisateur par la vraie valeur selon la machine).

Pour sauvegarder la partition root de la carte SD, lancer la commande:

sudo cp -a /media/utilisateur/root_fs/* /media/utilisateur/carte

On trouve parfois la commande cp -a -v (-v = verbose, verbeux… chaque fichier copié s’affiche à l’écran). J’ai eu des échecs avec -v sur machine virtuelle et carte SD dans un adaptateur USB. De toutes façons, si un fichier ne peut pas être copié, une ligne s’affichera pour le signaler. Si tout se passe bien, rien ne s’affiche, il faut donc attendre simplement que le terminal rende la main.

Une fois la copie terminée (ça peut durer 30minutes ou plus selon la taille à copier), s’il n’y a pas eu d’erreur, vérifier la cohérence des tailles entre le volume source (/media/utilisateur/root_fs) et la sauvegarde (/media/utilisateur/carte):

df

Formatage de la partition root de la carte SD.

Je fais la manip avec GParted (si non installé sur la machine Linux, taper sudo apt-get install gparted)

Dans GParted, sélectionner la carte (sdb en haut à droite, si sdb est bien votre carte SD, on doit reconnaitre la taille..).

Clic droit sur la partition root, puis démonter.

Clic droit sur la partition root, puis formater en f2fs

L’opération est assez rapide, moins d’une minute.

Quitter GParted.

En console, vérifier que la partition F2FS est apparue:
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

Noter son nom:
df

Recopie des données vers la partition F2FS de la carte:

sudo cp -a /media/utilisateur/carte/* /media/utilisateur/root_fs/

Mêmes remarque que pour la sauvegarde, attendre, vérifier l’absence de message d’erreur.

Une fois la copie terminée s’il n’y a pas eu d’erreur, vérifier la cohérence des tailles entre la sauvegarde (/media/utilisateur/carte) et la carte SD (/media/utilisateur/root_fs):

df

Les opérations sont presque terminées. Reste plus qu’à indiquer au Raspberry que la partition root est maintenant en F2FS:

sudo nano /media/utilisateur/root_fs/etc/fstab

proc /proc proc defaults 0 0
PARTUUID=140b230d-01 /boot vfat defaults 0 2
PARTUUID=140b230d-02 / f2fs defaults,noatime 0 1

Remplacer ext4 par f2fs. Ensuite quitter par CTLR + X et répondre Oui pour sauvergarder fstab.

Dernière opération, sur la partition boot cette fois:

sudo nano /media/utilisateur/boot_fs/cmdline.txt

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=140b230d-02 rootfstype=f2fs elevator=deadline fsck.repair=yes rootwait

Remplacer ext4 par f2fs. Ensuite quitter par CTLR + X et répondre Oui pour sauvergarder cmdline.txt.

Avant d’enlever la carte SD, démonter les 2 volumes (ou arrêter la machine Linux par sudo shutdown)

sudo umount /dev/sdb1
sudo umount /dev/sdb2

Retirer la carte SD de la machine Linux, la remettre dans le Raspberry et l’allumer. Ca doit démarrer du premier coup.

En console sur le Raspberry, on peut vérifier que la partition root est bien passée en F2FS avec la commande devenue habituelle:

lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL

Résultat:
NAME FSTYPE SIZE MOUNTPOINT LABEL
mmcblk0 15G
├─mmcblk0p1 vfat 41,8M /boot boot
└─mmcblk0p2 f2fs 14,9G /

Terminé.

Sources:
Korben
domo-attitude.fr
linuxfr.org
whitehorseplanet.org

18 février 2018
de Nico
0 Commentaires

VirtualBox: lancer une machine automatiquement

Voici un programme qui permet de lancer automatiquement, au démarrage de la machine hôte, une ou plusieurs machines virtuelles VirtualBox.

VBoxVmService s’installe en service Windows et s’occupe de lancer les VM qu’on lui a indiqué dans son petit fichier de configuration .ini.

C’est très simple à utiliser et ça marche.

Testé avec VBoxVmService v5.2 sur Windows v8.1 64bits avec VM Lubuntu v16.04.

6 février 2018
de Nico
0 Commentaires

Restaurer Domoticz facilement

Un problème sur Raspberry ? Besoin de tout réinstaller et pas envie de perdre l’historique des mesures et la configuration globale de Domoticz ? Pas de soucis. Il suffit de réinstaller Domoticz puis de restaurer la base de données.

J’ai dû faire la manip en réel et tout a bien fonctionné. La procédure est très bien décrite sur cette page de easydomoticz.com.

28 janvier 2018
de Nico
0 Commentaires

Activer SSH par défaut à la première installation d’un Raspberry

Quand on a pas de clavier ou pas d’écran à raccorder sur un Raspberry qu’on va initialiser, l’astuce consiste à le raccorder au réseau via cable RJ45 et à activer SSH par défaut.

Ainsi, on peut prendre la main sur la console via SSH dés le premier démarrage et y faire toute la configuration, en commençant généralement par configurer le WiFi en ligne de commande.

L’astuce est simple. Après avoir gravé l’image avec Win32 Disk Manager ou Etcher, il suffit d’ajouter un fichier nommé ssh (vide et sans extension) sur la racine de la partition boot.

Note: si la partition boot n’a pas de lettre de lecteur affectée, en affecter une (P: par exemple) afin de pouvoir lire et écrire dessus depuis Windows.