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

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

Bu kılavuz, OpenThread Sınır Yönlendirici'nin temel derleme ve yapılandırmasını ele alır (OTBR). Bu prosedürü tamamladıktan sonra, çalışan bir OTBR'niz olur ve tam Thread cihazı (FTD) olarak gösterir.

Platformu Yapılandırma

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

RCP oluşturma ve güncelleme

OTBR, RCP tasarımı üzerinde çalışır. Desteklenen bir OpenThread seçin amacıyla kullanılan bir üçüncü taraf platformu .

OpenThread oluşturmaya genel bir bakış için bkz. Oluşturma Kılavuzu.

GNU Autotools ile desteklenen platformlar oluşturmaya yönelik özel talimatlar bulunan her bir platform klasörü olarak değiştirin.

OTBR'yi yükle

OTBR, Spinel aracılığıyla RCP ile iletişim kurar. OTBR'yi yapılandırılan sunucuya 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ıları yükleme

Varsayılan yapılandırma, BORDER_ROUTING platformunu çoğu platformda etkinleştirir. Örneğin, OTBR varsayılan işaretlerinin tam listesini görmek için GitHub'daki platform örnekleri hakkında daha fazla bilgi edinin. Platformunuzu seçin, 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 derleyin ve yükleyin

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

    Ethernet kullan:

    INFRA_IF_NAME=eth0 ./script/setup
    

    Kablosuz ağı kullan:

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

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

RCP cihazı ekleyin ve yapılandırın

Yanıp sönen RCP cihazını USB aracılığıyla 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 öncelikle /dev kontrol edilerek RCP cihazının seri bağlantı noktası adı:

ls /dev/tty*

Sonra, 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) içerir veya kablosuz arayüz adı ve RCP seri bağlantı noktası adı.

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ına sahip değildir. En ortak bağlantı noktası adları ttyACM* ve ttyUSB* şeklindedir. Daha fazla bilgi için seri bağlantı noktası adını belirlemek için cihazınıza kaydedin.

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

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

Bir 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önlendirici'yi kapatıp açın. BeagleBone Black platformunu kullanıyorsanız çalışırken BOOT düğmesini basılı tutmayı önemlidir.

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 aşağıdaki hizmetler çıkış:

  • 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 Kısıtlanmış Taraf Bozuk bir durumdaysa, diğer hizmet başlatılamadı. 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ğ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. Bu özellik otbr-agent olan İş Parçacığı PAN arayüzüyle (varsayılan değer: wpan0) iletişim kurar. bağlı olduğunu düşünebiliriz.

RCP başarıyla çalışıyorsa ve düğüm bir iş parçacığının üyesi değilse aşağıdakine benzer bir çıkış alırsınız:

disabled

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

  1. Sınır Yönlendiricinin yeterli güce sahip olduğunu doğrulayın (Uygun harici AC kullanın bağdaştırıcısı).
  2. RCP kartını Sınır Yönlendirici platformuna çıkarıp yeniden bağlayın.
  3. RCP seri cihazının olduğunu doğrulayın. Örneğin, cihaz /dev/ttyUSB0 öğesine 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.