Mon système domotique. Création d'une image de système d'exploitation

Présentation

Installation du système sur un Raspberry Pi 2.3

Je décrirai la manière la plus simple, à mon avis, pour les débutants.

Toutes les actions se produiront dans Ubuntu 18.04.

Pour obtenir de l'aide sur les commandes, utilisez la commande «man» + la commande souhaitée.

man ls 

Ou la commande nécessaire avec la clé --help

 ls --help 


1. Installation du système d'exploitation Raspbian Stretch Lite sur une carte microSD.

La carte MicroSD doit être de classe 10 et avoir une capacité de 8 gigaoctets.
Insérez la carte SD dans l'ordinateur et entrez la commande:

 lsblk 



Dans l'exemple, la carte est définie comme mmcblk0, alors j'utiliserai ce nom.

Ensuite, pour effacer la carte des informations précédemment enregistrées (nous ferons ensuite une image disque), vous devez l'effacer avec la commande:

 dd if=/dev/zero of=/dev/mmcblk0 

Cette commande nécessite des droits de superutilisateur, pour cela vous devez ajouter le mot clé "sudo" au début. Ci-après, je donne des commandes sans sudo . Lors de la saisie de commandes, utilisez la saisie semi-automatique (touche Tab), cela est nécessaire pour contrôler l'entrée correcte des commandes et des chemins de fichiers. Pendant l'exécution de la commande, vous pouvez télécharger une nouvelle distribution du système d'exploitation.

Téléchargez ici: raspberrypi.org
Nous avons besoin de Raspbian Stretch Lite. Décompressez le zip téléchargé, nous avons besoin d'un fichier avec l'extension img - c'est l'image disque que nous allons copier sur la carte. Donc, si nous avons une image disque et que la commande dd est terminée, passez à autre chose.

Copiez l'image sur la carte:

 dd if=/path/to/raspbian.img of=/dev/mmcblk0 bs=4M status=progress 

une fois terminé, entrez la commande:

 sync 

Nous sortons la carte et la réinsérons.

Créez un fichier vide sur le disque de démarrage de notre carte:

 touch /media/$USER/boot/ssh 

Ceci est nécessaire pour qu'un serveur ssh soit lancé sur Raspberry.

La carte doit être retirée en toute sécurité, insérée dans le Raspberry, connectée à un réseau câblé et alimentée. S'il n'y a pas d'alimentation 2 apmera, vous pouvez l'alimenter à partir d'un ordinateur avec USB3. Au premier démarrage, le système augmentera la taille des disques à la taille de la carte, cela prendra un certain temps.

Pour connaître l'adresse IP de notre RPi, vous pouvez utiliser l'utilitaire arp-scan. S'il n'est pas installé, définissez:

 apt install arp-scan 

Nous découvrons le nom de notre carte réseau:

 ip a 

ou

 netstat -i 



J'ai une carte wifi nommée wlp1s0.

Exécutez arp-scan:

 arp-scan -I wlp1s0 -l 



J'ai besoin d'un RPi avec IP 192.168.0.114, l'adresse est attribuée par DHCP et peut être n'importe quoi.

On passe à RPi par ssh:

 ssh pi@192.168.0.114 

vous devez saisir oui lors de la première authentification, puis saisir le mot de passe pour pi - framboise .

Si nous avons réussi à nous connecter à Raspberry, entrez la commande:

 init 0 

Cette commande désactive RPi.

Vous devez réinsérer la carte dans l'ordinateur. Maintenant, nous avons besoin du programme «gparted», s'il n'est pas installé, définissez:

 apt install gparted 

Nous commençons par répartir, vous devez changer la taille du disque mmcblk0p2, laisser à la fin une zone non allouée de 300 à 500 mégaoctets ou 2-3% de la taille de la carte, cela est nécessaire pour que notre image tienne sur des cartes de différents fabricants, et leur taille peut varier. Le résultat devrait être quelque chose comme ceci:



Après avoir terminé le travail avec gparted, vous pouvez faire une copie de sauvegarde de la carte, de sorte qu'en cas de problèmes dans d'autres expériences, vous disposez d'une image prête à l'emploi.

 dd if=/dev/mmcblk0 | bzip2 > raspbian.bz2 

maintenant, nous pouvons toujours restaurer notre disque avec la commande:

 bzcat raspbian.bz2 | dd bs=4M of=/dev/mmcblk0 

En conséquence, nous avons une carte microSD avec un système d'exploitation prêt à l'emploi et sa copie de sauvegarde.

2. Configuration de Raspbian Stretch Lite.

Nous allons à RPi par ssh. Pour configurer les adresses statiques du réseau filaire et du wifi, ajoutez les paramètres suivants à la fin du fichier /etc/dhcpcd.conf:

interface eth0
adresse IP statique = 192.168.0.10 / 24
routeurs statiques = 192.168.0.1
serveurs_nom_domaine statiques = 8.8.8.8, 8.8.4.4
interface wlan0
adresse IP statique = 192.168.0.10 / 24
routeurs statiques = 192.168.0.1
serveurs_nom_domaine statiques = 8.8.8.8, 8.8.4.4

Avec ces paramètres, RPi aura la même IP sur un réseau filaire ou wifi.

Fichier pour configurer le wifi - /etc/wpa_supplicant/wpa_supplicant.conf
ajoutez-y les paramètres suivants:

réseau = {
ssid = "NAME"
psk = "PASS"
}
où NOM et PASS nom d'utilisateur et mot de passe du réseau wifi. Si vous ne savez pas à l'avance où utiliser notre RPi, le nom et le mot de passe peuvent être entrés ultérieurement.

Ajouter des tâches au programme cron

 crontab -e 

Au premier démarrage, vous devrez sélectionner un éditeur de texte, nano - sera le plus familier.



Pour que les plannings fonctionnent, ajoutez les paramètres suivants:

CHEMIN = / usr / sbin: / usr / bin: / sbin: / bin
SHELL = / bin / bash

Et les tâches elles-mêmes, nous enregistrerons l'heure de chaque téléchargement et la durée de fonctionnement continu, ce seront des informations utiles à l'avenir.

redémarrer sleep 60 && date >> my-reboot.txt
@ uptime hebdomadaire >> my-uptime.txt

Pour quitter, la combinaison de touches Ctrl + x, Y, Entrée

Le réglage du fuseau horaire se fait par la commande:

 dpkg-reconfigure tzdata 

Pour augmenter les ressources de la carte SD, vous pouvez arrêter la journalisation et supprimer le fichier d'échange:

(Je pense que cela devrait réduire la probabilité de défaillance de la carte SD ou de corruption de données lors des arrêts brusques de RPi pendant le fonctionnement):

 apt update apt purge dphys-swapfile apt autoremove --purge apt install busybox-syslogd dpkg --purge rsyslog 

Installation de programmes:

 apt install mosquitto mosquitto-clients sqlite3 libsqlite3-dev mc htop arp-scan vim supervisor python-pip python3-pip python-virtualenv python-dev 

 pip install psutil paho-mqtt pip3 install psutil paho-mqtt 

Pour homekit2mqtt, vous devez installer nodejs:

 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - apt-get install -y nodejs 

Vérification de la version installée

 node -v nodejs -v 

Installez node-red:

 npm install -g --unsafe-perm node-red 

Nous lançons:

 node-red 



Dans la barre d'adresse du navigateur, saisissez l'adresse IP du RPi 192.168.0.10:1880



Terminez node-red, appuyez sur Ctrl + c, accédez au répertoire .node-red

 cd .node-red 

Et installez des packages pour node-red, ils peuvent être nécessaires pour les tests, la configuration et la communication de divers appareils.

 npm i node-red-dashboard node-red-contrib-sonos node-red-contrib-knx node-red-node-serialport node-red-contrib-globalcache node-red-contrib-counter 

Nous revenons au répertoire personnel

 cd 

Installez homekit2mqtt:

 apt install libavahi-compat-libdnssd-dev npm install -g homekit2mqtt --unsafe-perm 

Vous pouvez essayer d'exécuter homekit avec la commande

 homekit2mqtt 



Il commencera avec les paramètres par défaut et vous pouvez ajouter un nouvel appareil dans le programme Home sur votre iPhone ou iPad

Le mot de passe pi laissera celui actuel.

Maintenant que tout est installé et vérifié, vous devez sauvegarder notre carte SD de la même manière qu'auparavant. Maintenant, tout est prêt pour installer le système d'automatisation.

Source: https://habr.com/ru/post/fr446190/


All Articles