7.4.1. Introduction¶
7.4.2. Hotspot WIFI et IP fixes¶
Nous allons maintenant configurer un hotspot wifi afin de se connecter sur la Pi en ssh et de permettre aux robots et aux autres périphérique de communiquer sur un même réseau.
Installons les outils de réseau qui ne sont pas encore présents après la mise à jour.
sudo apt install network-manager
sudo apt install wpasupplicant
sudo apt install ifupdown
Désactivation de cloud init :
sudo bash -c "echo 'network: {config: disabled}' > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg"
Nous allons maintenant modifier le fichier de configuration du réseau, nous en profiterons pour ajouter des IP fixes pour faciliter les accès en SSH avec ces dernières.
sudo nano /etc/netplan/*.yaml
Puis rentrer le texte suivant en prenant soin de modifier « yourssid » et « yourpassword » par le nom du réseau wifi et le mot de passe que vous voulez.
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: true
optional: true
addresses: [192.168.2.10/24]
wifis:
wlan0:
dhcp4: true
optional: true
addresses: [192.168.1.10/24]
access-points:
"yourssid":
password: "yourpassword"
mode: ap
networkmanager:
passthrough:
wifi-security.proto: "rsn" # WPA2 only
Rappel : ctrl + x puis y pour quitter le fichier
Désactivons l’ipv6 qui ne nous sera pas nécessaire, dans le fichier suivant :
sudo nano /etc/sysctl.conf
Rajouter la ligne suivante à la fin du fichier :
net.ipv6.conf.all.disable_ipv6=1
Avant d’appliquer cette configuration nous devons impérativement oublier tous les réseaux wifi sur lequel la Pi s’est auparavant connectée. En effet, cette dernière ne peut pas émettre de réseau en même temps qu’elle est connectée à un autre. Nous ne voulons donc pas qu’elle se connecte à un ancien réseau wifi par mégarde.
Une fois les wifi oublié, nous pouvons maintenant appliquer notre configuration et redémarrer.
sudo sysctl -p
sudo netplan generate
sudo netplan apply
sudo reboot
Un réseau wifi devrais maintenant être disponible dès que la Pi aura redémarré.
Noter que vous pourrez toujours connecter la Pi à un réseau wifi (par exemple pour l’installation de ros2), mais cette dernière ne pourra pas émettre son réseau et il faudra penser à lui faire oublier la dernière connexion wifi par sécurité.
7.4.2.1. Commandes utiles¶
Quelques commandes utiles concernant le wifi avec le terminal :
Désactivation et réactivation du hotspot.
nmcli radio wwan off
Lister les wifi disponibles.
nmcli dev wifi list
Se connecter à un wifi.
sudo nmcli dev wifi connect network-ssid password "network-password"
En remplaçant network-ssid par le nom du wifi présent dans la liste et « network-password » par le mot de passe (garder les guillemets)
Pour oublier un réseau : Commencez par trouver le réseau que vous voulez oublier dans la liste avec la commande suivante :
nmcli -t -f TYPE,UUID,NAME con
Vous devriez obtenir un résultat du genre : 802-11-wireless:12345678-31d1-51e7-a60e-3a52e52b4495:YourWifiName, copie la suite de chiffres et lettres pour l’ajouter dans la commande ci-dessous
sudo nmcli c delete choosedUUID
Exemple :
sudo nmcli c delete 12345678-31d1-51e7-a60e-3a52e52b4495
7.4.3. SSH¶
Pour se connecter en SSH il faut utiliser la commande suivante sur votre PC :
ssh utilisateur@addressip
À partir de ce que nous avons mis en place, nous avons donc :
TODO: image missing
7.4.3.1. wlan0¶
Sur l’interface wlan0 après s’être connecté au réseau wifi émit par la Pi, rentrer la commande suivante dans un terminal.
ssh crubs@192.168.1.10
7.4.3.2. eth0¶
Sur l’interface eth0 après avoir connecté un câble éthernet :
Brancher le câble éthernet puis direction le panneau de contrôle Windows (touche Win puis rechercher panel). Réseau et Internet > Centre de résau et partage > Ethernet > Propriété > cocher puis doucle cliquer Protocole Internet version 4 (TCP/IPv4)
Renseigner maintenant une adresse IP sur le même réseau. Ici par exemple 192.168.2.5 avec le même masque 255.255.255.0. Je recommande vivement d’enlever ces changements dès la manipulation finie. En effet, vous risquez d’avoir de gros problèmes dès que vous vous connecterez à un autre réseau éthernet.
Enfin, vous pouvez retourner dans un terminal pour rentrer la commande suivante.
ssh crubs@192.168.2.10
7.4.3.3. Dépannage¶
L’erreur ci-dessous vous empêchant de vous connecter en SSH peut subvenir sur votre PC.
Rentrez simplement la commande suivante puis réessayer la connexion SSH en acceptant le message avec y.
ssh-keygen -R 192.168.2.10
ssh-keygen -R 192.168.1.10
7.4.4. Fixer le nom des ports USB¶
Afin de piloter le robot, deux cartes Arduino sont utilisées ce qui amène à un problème d’identification de ces dernières par les codes. En effet au démarrage, le pi attribue un nom de périphérique à chaque appareil en fonction de la vitesse de démarrage des cartes, ce qui est aléatoire. Nous devons donc faire en sorte d’attribuer un nom fixe en fonction de l’appareil connecté.
Commencez par débrancher tous les périphériques de la Pi et rallumer la.
Pour tous cette série d’étapes, nous devons passer en super utilisateur.
sudo su -
Brancher une première carte puis identifier son nom actuel :
ls -l /dev/ttyACM*
TODO: image missing
Une fois le port identifié, ici ttyACM1, nous devons récupérer les données de la carte
udevadm info --name=/dev/ttyACM0 --attribute-walk
TODO: image missing
Repérer les premiers idProduct et idVendor à apparaître et notez les.
Toujours en tant que super utilisateur, nous devons maintenant créer une nouvelle règle.
cd etc/udev/rules.d/
sudo nano 10-usb-serial.rules
Ajouter la ligne suivante avec les paramètre idVendor et idProduct obtenus
SUBSYSTEM=="tty", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0042", SYMLINK+="NouveauNom"
TODO: image missing
Vous pouvez appliquer la règle fraîchement créé avec la commande suivante, mais je vous recommande de redémarrer quand-même.
sudo udevadm trigger
sudo reboot
Après redémarrage, vous pouvez vérifier de la manière suivante.
ls -l /dev/NouveauNom
Et vous devriez obtenir le résultat suivant.
TODO: image missing
Vous pouvez appliquer de nouveau la même méthode en changeant la carte à nommer et en suivant les étapes précédentes. Tuto suivis : https://dominoc925.blogspot.com/2019/11/fix-usb-serial-adapters-to-static.html
7.4.5. Autres commandes¶
7.4.5.1. Interface graphique¶
Désactivation de l’interface graphique :
sudo systemctl set-default multi-user.target
Réactivation de l’interface graphique (nécessite la bonne version de l’OS) :
sudo systemctl set-default graphical.target
7.4.6. Activation des interfaces des différents bus¶
7.4.6.1. I2C¶
Pour utiliser de l’I2C sur Ubuntu, commencez par vérifier si il n’est pas déjà activé.
sudo raspi-config nonint get_i2c
Si ça renvoie un 1 il n’est pas activé, il faut alors utiliser :
sudo raspi-config nonint do_i2c 0
Ensuite, nous allons vérifier si nous avons les permissions :
ls -l /dev/i2c*
Voilà un exemple de sortie possible :
crw------- 1 root dialout 89, 1 Sep 19 18:59 /dev/i2c-1
Dans ce cas, il y a 2 groupes qui ont la permission d’utiliser l’I2C il peut donc s’ajouter au groupe dialout avec :
sudo usermod -aG dialout crubs
En remplacent crubs par le nom de la session.
Nous pouvons maintenant installer un outil permettant de détecter les adresses des composants présents sur le bus.
sudo apt install i2c-tools
Vous pouvez maintenant utiliser la commande suivante pour lancer la recherche de composants présents sur le bus.
i2cdetect -1 y