Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Construction et configuration du routeur frontalier OpenThread

Ce guide couvre la construction et la configuration de base d'OpenThread Border Router (OTBR). À la fin de cette procédure, vous aurez un OTBR qui fonctionne comme un périphérique à thread complet (FTD) dans une conception RCP.

Configurer la plateforme

Configurez une plate-forme matérielle prise en charge:

Construire et flasher RCP

OTBR fonctionne sur une conception RCP. Sélectionnez une plate-forme OpenThread prise en charge à utiliser comme RCP et suivez les instructions de construction et de clignotement pour cette plate-forme.

Pour un aperçu de la construction d'OpenThread, consultez le Guide de construction .

Des instructions spécifiques sur la création de plates-formes prises en charge avec GNU Autotools peuvent être trouvées dans le dossier de plate - forme de chaque exemple.

Configurer le routeur de bordure

OTBR communique avec le RCP via spinelle. Sur la plate - forme matérielle configurée :

  1. Cloner le référentiel OTBR:
    git clone https://github.com/openthread/ot-br-posix
  2. Installer les dépendances:
    cd ot-br-posix
    ./script/bootstrap
  3. Compilez et installez OTBR. Notez que ce script de configuration utilise Network Manager pour configurer automatiquement le point d'accès Wi-Fi (AP).
    1. Pour configurer automatiquement le point d'accès Wi-Fi à l'aide de Network Manager:
      ./script/setup
    2. Pour ignorer la configuration automatique du point d'accès Wi-Fi et le faire manuellement plus tard sans utiliser Network Manager:
      NETWORK_MANAGER=0 ./script/setup
  4. Connectez le périphérique RCP flashé à la plate-forme Border Router via USB.
  5. Configurez le port série du périphérique RCP dans otbr-agent :
    1. Déterminez le nom du port série du périphérique RCP en vérifiant /dev :
      ls /dev/tty*
    2. Ajoutez ceci à /etc/default/otbr-agent . Par exemple, pour un nom de port série ttyUSB0 :
      OTBR_AGENT_OPTS="-I wpan0 spinel+hdlc+uart:///dev/ttyUSB0"
  6. Redémarrez le routeur de bordure. Si vous utilisez la plate-forme BeagleBone Black, n'oubliez pas de maintenir le bouton BOOT enfoncé pendant cette opération.
  7. Le service OTBR doit démarrer au démarrage.

Vérifier les services

Vérifiez que tous les services requis sont activés:

sudo systemctl status

Si le script d' setup a réussi, les services suivants apparaissent dans la sortie:

  • avahi-daemon.service
  • otbr-agent.service
  • otbr-web.service

Par exemple:

● raspberrypi
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Thu 1970-01-01 00:00:01 UTC; 47 years 7 months ago
   CGroup: /
           ├─user.slice
           │ └─user-1000.slice
           │   ├─user@1000.service
           │   │ └─init.scope
           │   │   ├─576 /lib/systemd/systemd --user
           │   │   └─580 (sd-pam)
           │   └─session-c1.scope
           │     ├─480 /bin/login --
           │     └─585 -bash
           ├─init.scope
           │ └─1 /sbin/init
           └─system.slice
             ├─systemd-timesyncd.service
             │ └─334 /lib/systemd/systemd-timesyncd
             ├─dbus.service
             │ └─339 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
             ├─hciuart.service
             │ └─442 /usr/bin/hciattach /dev/serial1 bcm43xx 921600 noflow -
             ├─ssh.service
             │ └─621 /usr/sbin/sshd -D
             ├─avahi-daemon.service
             │ ├─341 avahi-daemon: running [raspberrypi.local]
             │ └─361 avahi-daemon: chroot helper
             ├─otbr-web.service
             │ └─472 /usr/sbin/otbr-web
             ├─triggerhappy.service
             │ └─354 /usr/sbin/thd --triggers /etc/triggerhappy/triggers.d/ --socket /run/thd.socket --user nobody --deviceglob /dev/input/event*
             ├─systemd-logind.service
             │ └─353 /lib/systemd/systemd-logind
             ├─otbr-agent.service
             │ └─501 /usr/sbin/otbr-agent -I wpan0
             ├─cron.service
             │ └─350 /usr/sbin/cron -f
             ├─systemd-udevd.service
             │ └─154 /lib/systemd/systemd-udevd
             ├─rsyslog.service
             │ └─345 /usr/sbin/rsyslogd -n
             ├─bluetooth.service
             │ └─445 /usr/lib/bluetooth/bluetoothd
             ├─systemd-journald.service
             │ └─136 /lib/systemd/systemd-journald
             └─dhcpcd.service
               ├─409 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0
               └─466 /sbin/dhcpcd -q -w

Si ces services sont en cours d'exécution, mais que le RPi3B est dans un état dégradé , un autre service n'a pas pu démarrer. Vérifiez pour voir lequel:

sudo systemctl --failed

Si la configuration automatique du point d'accès Wi-Fi a été ignorée et que le service en échec est tayga ou dnsmasq , c'est normal. Si vous effectuez une configuration manuelle du point d'accès Wi-Fi, ces services sont entièrement configurés dans le cadre de la configuration du point d'accès Wi-Fi abordée dans la section suivante.

Vérifier RCP

Vérifiez que le RCP est dans le bon état:

sudo ot-ctl state

ot-ctl est un utilitaire de ligne de commande fourni avec OTBR. Il est utilisé pour communiquer avec l'interface Thread PAN (la valeur par défaut est wpan0 ) à laquelle otbr-agent est lié dans la conception RCP.

Si le RCP s'exécute avec succès et que le nœud n'est pas membre d'un réseau Thread, la sortie doit être similaire à celle ci-dessous:

disabled

Si la sortie est OpenThread daemon is not running , OpenThread daemon is not running problèmes suivants:

  1. Vérifiez que le routeur frontière est suffisamment alimenté (utilisez l'adaptateur secteur externe approprié).
  2. Déconnectez et reconnectez la carte RCP à la plate-forme Border Router.
  3. Vérifiez que le périphérique série RCP est présent. Par exemple, si le périphérique doit être connecté à /dev/ttyUSB0 :
    ls /dev/ttyUSB*
    /dev/ttyUSB0
  4. Réinitialisez le RCP avec la réinitialisation sudo ot-ctl reset .

Vérifiez à nouveau l'état du RCP avec l'état sudo ot-ctl state .