OpenThread Border Router Oluşturma ve Yapılandırma

Kaynağı GitHub'da görüntüleyin

Bu kılavuzda OpenThread Sınır Yönlendirici'nin (OTBR) temel derlemesi ve yapılandırması ele alınmaktadır. Bu prosedürü tamamladıktan sonra, RCP tasarımında Tam İş Parçacıklı Cihaz (FTD) işlevi gören bir OTBR'ye sahip olursunuz.

Platformu Yapılandırın

Desteklenen bir donanım platformunu yapılandırın:

RCP derleme ve flash

OTBR, RCP tasarımı üzerinde çalışıyor. RCP olarak kullanmak üzere desteklenen bir OpenThread platformu seçin ve bu platform için derleme ve yanıp sönme talimatlarını uygulayın.

OpenThread derlemesine genel bir bakış için Building Guide'a (Derleme Kılavuzu) bakın.

GNU Autotools ile desteklenen platformlar oluşturmayla ilgili özel talimatlar, her bir örneğin platform klasöründe bulunabilir.

OTBR'yi yükle

OTBR, rulle RCP ile iletişim kuruyor. OTBR'yi, yapılandırılmış donanım platformuna yüklemek için aşağıdaki adımları tamamlayın.

OTBR deposunu klonlayın:

git clone https://github.com/openthread/ot-br-posix

Bağımlılıkları yükleyin:

cd ot-br-posix
./script/bootstrap

OTBR'yi derleyin ve yükleyin. Kurulum komut dosyasının varsayılan olarak Sınır Yönlendirme'yi etkinleştirdiğini unutmayın. Sınır Yönlendirmeyi etkinleştirmek için platformunuzun Ethernet veya Kablosuz arayüzünü belirtin.

Ethernet kullanmak için:

INFRA_IF_NAME=eth0 ./script/setup

Kablosuz bağlantıyı kullanmak için:

INFRA_IF_NAME=wlan0 ./script/setup

RCP cihazı ekleme ve yapılandırma

Yanıp sönen RCP cihazını USB üzerinden Sınır Yönlendirici platformuna takın.

otbr-agent ürününde RCP cihazının seri bağlantı noktasını yapılandırmak için önce /dev kutusunu işaretleyerek RCP cihazının seri bağlantı noktası adını belirleyin:

ls /dev/tty*

Sonra, bunu /etc/default/otbr-agent öğesine ekleyin. Örneğin, ttyUSB0 seri bağlantı noktası adı için:

OTBR_AGENT_OPTS="-I wpan0 spinel+hdlc+uart:///dev/ttyUSB0"

Sınır Yönlendirici'yi kapatıp açın. BeagleBone Black platformunu kullanıyorsanız bunu yaparken BOOT düğmesini basılı tutmayı unutmayın.

OTBR hizmeti başlatma sırasında başlatılmalıdır.

Hizmetleri doğrula

Tüm gerekli hizmetlerin etkinleştirildiğini doğrulayın:

sudo systemctl status

setup komut dosyası başarılı olursa çıkışta aşağıdaki hizmetler görünür:

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

Örneğin:

● 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
  # enabled  ├─avahi-daemon.service
             │ ├─341 avahi-daemon: running [raspberrypi.local]
             │ └─361 avahi-daemon: chroot helper
  # enabled  ├─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
  # enabled  ├─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

Bu hizmetler çalışıyorsa ancak RPi bozuldu durumundaysa bazı diğer hizmetler başlatılamadı. Aşağıdakileri kontrol edin:

sudo systemctl --failed

RCP'yi doğrula

RCP'nin doğru durumda olduğunu doğrulayın:

sudo ot-ctl state

ot-ctl, OTBR ile sağlanan bir komut satırı yardımcı programıdır. İş parçacığı PAN arayüzüyle (varsayılan olarak wpan0) otbr-agent, RCP tasarımında kendisine bağlı olanlarla iletişim kurmak için kullanılır.

RCP başarıyla çalışıyorsa ve düğüm bir İş Parçacısı ağının üyesi değilse çıkış aşağıdakine benzer olmalıdır:

disabled

Çıkış OpenThread daemon is not running ise aşağıdaki adımları uygulayarak sorunu giderin:

  1. Sınır Yönlendirici'nin yeterli güçte olduğunu doğrulayın (uygun harici AC adaptörünü kullanın).
  2. RCP kartının Sınır Yönlendirici platformuyla bağlantısını kesip tekrar bağlayın.
  3. RCP seri cihazının mevcut olduğunu doğrulayın. Örneğin, cihazın /dev/ttyUSB0 öğesine eklenmesi gerekiyorsa:

    ls /dev/ttyUSB*
    /dev/ttyUSB0
    
  4. RCP'yi sudo ot-ctl reset ile sıfırlayın.

sudo ot-ctl state ile RCP durumunu tekrar kontrol edin.