OpenThread Sınır Yönlendirici Derleme ve Yapılandırma

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

Bu kılavuzda, OpenThread Sınır Yönlendiricisi'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ığı Cihazı (FTD) olarak çalışan bir OTBR'niz olur.

Platformu yapılandırın

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

RCP'yi derleyin ve flaşlayın

OTBR, RCP tasarımında çalışır. RCP olarak kullanmak için desteklenen bir OpenThread platformu seçin ve söz konusu platform için derleme ve yanıp sönme talimatlarını uygulayın.

OpenThread'i oluşturmaya genel bakış için Oluşturma Kılavuzu'na bakın.

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

OTBR'yi yükleme

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

OTBR deposunu klonlayın:

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

Bağımlıları yükleme

Varsayılan yapılandırma, BORDER_ROUTING platformunu çoğu platformda etkinleştirir. OTBR varsayılan işaretlerinin tam listesi için GitHub'daki platform örneklerine bakın. Platformunuzu seçin ve ardından varsa default simgesini tıklayın.

  • Varsayılan kullanım:

    cd ot-br-posix
    ./script/bootstrap
    
  • Ağ Yöneticisi ile BeagleBone Black (isteğe bağlı):

    cd ot-br-posix
    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
    

OTBR'yi derleme ve yükleme

  • Varsayılan kullanım. Kurulum komut dosyası, varsayılan olarak Sınır Yönlendirme'yi etkinleştirir. Sınır Yönlendirme'yi etkinleştirmek için platformunuzun Ethernet veya kablosuz arayüzünü belirtin:

    Ethernet kullanın:

    INFRA_IF_NAME=eth0 ./script/setup
    

    Kablosuz bağlantı kullanın:

    INFRA_IF_NAME=wlan0 ./script/setup
    
  • BeagleBone Black. Ağ Yöneticisi'ni kullanma (isteğe bağlı):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

RCP cihazını takma ve yapılandırma

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

otbr-agent'te RCP cihazının seri bağlantı noktasını yapılandırmak için öncelikle /dev'i kontrol ederek RCP cihazının seri bağlantı noktası adını belirleyin:

ls /dev/tty*

Ardından otbr-agent ayarlarınızı kontrol edin.

cd /etc/default
cat otbr-agent

otbr-agent yapılandırma dosyası, Thread arayüz adınızı, Ethernet veya kablosuz arayüz adınızı ve RCP seri bağlantı noktası adınızı içerir.

OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"

Tüm cihazlar aynı seri bağlantı noktası adıyla bağlanmaz. En yaygın bağlantı noktası adları ttyACM* ve ttyUSB*'dur. Beklenen seri bağlantı noktası adını belirlemek için cihazınızın belgelerine bakın.

Gerekirse otbr-agent yapılandırma dosyasını güncelleyin. Örneğin, bir kablosuz arayüz ve ttyUSB0 seri bağlantı noktası adı için:

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

Ethernet arayüzünü güncellemek için:

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

Sınır yönlendiriciyi 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şlamalıdır.

Hizmetleri doğrulama

Gerekli tüm 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:

  • mdns.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
             ├─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
  # enabled  ├─mdns.service
             │ └─725 /usr/sbin/mdnsd
             ├─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 düşük durumdaysa başka bir hizmet başlatılamamıştır. Aşağıdakileri kontrol edin:

sudo systemctl --failed

Her bir hizmeti tek tek de kontrol edebilirsiniz:

sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status

otbr-web çoğu platform için varsayılan olarak etkindir. otbr-web yüklü değilse WEB_GUI işaretini iletmeyi deneyin:

WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup

RCP'yi doğrulama

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

sudo ot-ctl state

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

RCP başarıyla çalışıyorsa ve düğüm bir Thread 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üce sahip olduğunu doğrulayın (uygun harici AC adaptörünü kullanın).
  2. RCP kartını Sınır Yönlendirici platformuna çıkarıp yeniden bağlayın.
  3. RCP seri cihazının mevcut olduğunu doğrulayın. Örneğin, cihaz /dev/ttyUSB0'e eklenmelidir:

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

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