OpenThread Sınır Yönlendirici Derlemesi ve Yapılandırması

Kaynağı GitHub'da göster

Bu kılavuz, OpenThread Sınır Yönlendirici'nin (OTBR) temel oluşturma ve yapılandırma konularını kapsar. Bu prosedürü tamamladıktan sonra RCP tasarımında Tam İş Parçacık Cihazı (FTD) işlevi gören bir OTBR'niz olur.

Platformu Yapılandır

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

RCP oluşturma ve flash'a ekleme

OTBR, RCP tasarımıyla çalışmaktadır. RCP olarak kullanılacak desteklenen bir OpenThread platformunu seçin ve bu platformun bina ve yanıp sönme talimatlarını uygulayın.

OpenThread derlemesine genel bakış için Yapı Kılavuzu'na bakın.

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

OTBR'yi yükle

OTBR, RCP ile omurga üzerinden 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ıları yükleme

Varsayılan yapılandırma, çoğu platform için BORDER_ROUTING politikasını etkinleştirir. OTBR varsayılan işaretlerinin tam listesi için GitHub'daki platform örneklerine bakın. Platformunuzu seçin, ardından default 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 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:

    INFRA_IF_NAME=eth0 ./script/setup
    

    Kablosuz ağ kullan:

    INFRA_IF_NAME=wlan0 ./script/setup
    
  • BeagleBone Black. Network Manager'ı kullan (isteğe bağlı):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

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

Flaşlı RCP cihazını USB üzerinden Sınır Yönlendirici platformuna takın.

RCP cihazının seri bağlantı noktasını otbr-agent ürününde yapılandırmak için önce /dev öğesini kontrol ederek RCP cihazının seri bağlantı noktasını tanımlayın.

ls /dev/tty*

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

cd /etc/default
cat otbr-agent

otbr-agent yapılandırma dosyasında Mesaj dizisi arayüzü adınız, Ethernet veya kablosuz arayüz adınız ve RCP seri bağlantı noktası adınız bulunur.

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 yaygın kullanılan bağlantı noktası adları ttyACM* ve ttyUSB*'dir. Beklenen seri bağlantı noktası adını belirlemek için cihazınızın dokümanlarına bakın.

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

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

OTBR hizmeti önyükleme sırasında başlamalıdır.

Hizmetleri doğrula

Gerekli tüm hizmetlerin etkin olduğunu doğrulayın:

sudo systemctl status

setup komut dosyası başarılı olduysa çıkışta aşağıdaki hizmetler gösterilir:

  • 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ışıyor ancak RPI bozuldu durumundaysa diğer bazı hizmetler başlatılamadı. Aşağıdakileri kontrol edin:

sudo systemctl --failed

Her hizmeti ayrı ayrı da kontrol edebilirsiniz:

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

otbr-web, çoğu platformda 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ğrulayın

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

sudo ot-ctl state

ot-ctl, OTBR tarafından sağlanan bir komut satırı yardımcı programıdır. RCP tasarımında otbr-agent bağlayıcısı olan Thread PAN arayüzüyle (varsayılan olarak wpan0 kullanılır) iletişim kurmak için kullanılır.

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

disabled

Sonuç OpenThread daemon is not running ise aşağıdaki sorunları giderin:

  1. Sınır Yönlendirici'nin yeterli güce sahip olduğunu doğrulayın (uygun harici AC adaptörü kullanın).
  2. RCP panosunun bağlantısını kesin ve Sınır Yönlendirici platformuna yeniden 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.

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