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

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

Bu kılavuz, OpenThread Sınır Yönlendiricinin (OTBR) temel derlemesini ve yapılandırmasını kapsar. Bu prosedürü tamamladığınızda, RCP tasarımında Tam İş Parçacığı Cihazı (FTD) olarak çalışan OTBR'niz olur.

Platformu Yapılandır

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

RCP oluşturma ve flash

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

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

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

OTBR'yi yükleme

OTBR, Omurga ü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 klonlama:

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 varsa default seçeneğini tıklayın.

  • Varsayılan kullanım:

    cd ot-br-posix
    ./script/bootstrap
    
  • Network Manager 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:

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

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

RCP cihazı ekleme ve yapılandırma

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

otbr-agent içinde RCP cihazının seri bağlantı noktasını yapılandırmak için önce /dev seçeneğini 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ı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 yer alır.

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

Her cihaz aynı seri bağlantı noktası adıyla eklenmez. En yaygın bağlantı adları ttyACM* ve ttyUSB* şeklindedir. 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 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"

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 bunu yaparken BOOT düğmesini basılı tutmayı unutmayın.

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

Hizmetleri doğrulama

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

sudo systemctl status

setup komut dosyası başarılı olduysa çı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ışıyor ancak RPI azaltılmış durumdaysa başka bir hizmet başlatılamadı. Şunları görmek için kontrol edin:

sudo systemctl --failed

Hizmetleri 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 aktarmayı 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. Bu ayar, otbr-agent öğesinin RCP tasarımında bağlı olduğu Thread PAN arayüzü (varsayılan olarak wpan0 şeklindedir) ile iletişim kurmak için kullanılır.

RCP başarıyla çalışıyorsa ve düğüm bir İş 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ünü kullanın).
  2. RCP panelinin bağlantısını kesip 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.

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