Build dan Konfigurasi Router Pembatas OpenThread

Lihat sumber di GitHub

Panduan ini membahas build dan konfigurasi dasar Router Pembatas OpenThread (OTBR). Setelah menyelesaikan prosedur ini, Anda akan memiliki OTBR yang berfungsi sebagai {i>Full Thread Device <i} (FTD) dalam desain RCP.

Konfigurasi Platform

Konfigurasi platform hardware yang didukung:

Membangun dan mem-flash RCP

OTBR berjalan pada desain RCP. Pilih OpenThread yang didukung untuk digunakan sebagai RCP serta mengikuti proses build dan flash petunjuk untuk platform tersebut.

Untuk ringkasan cara membuat OpenThread, lihat Panduan Membangun.

Instruksi khusus tentang membangun platform yang didukung dengan GNU Autotools dapat ditemukan dalam setiap contoh folder platform.

Instal OTBR

OTBR berkomunikasi dengan RCP melalui spinel. Untuk menginstal OTBR di platform hardware, selesaikan langkah-langkah berikut.

Buat clone repositori OTBR:

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

Menginstal dependensi

Konfigurasi default akan mengaktifkan BORDER_ROUTING untuk sebagian besar platform. Untuk daftar lengkap tanda default OTBR, lihat contoh platform di GitHub. Pilih platform Anda, lalu klik default, jika tersedia.

  • Penggunaan default:

    cd ot-br-posix
    ./script/bootstrap
    
  • BeagleBone Black dengan Network Manager (opsional):

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

Mengompilasi dan menginstal OTBR

  • Penggunaan default. Skrip penyiapan mengaktifkan Border Routing secara default. Untuk mengaktifkan Border Routing, tentukan antarmuka Wi-Fi atau Ethernet platform Anda:

    Gunakan Ethernet:

    INFRA_IF_NAME=eth0 ./script/setup
    

    Gunakan Wi-Fi:

    INFRA_IF_NAME=wlan0 ./script/setup
    
  • BeagleBone Hitam. Gunakan Network Manager (opsional):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

Memasang dan mengonfigurasi perangkat RCP

Pasang perangkat RCP yang di-flash ke platform Border Router melalui USB.

Untuk mengonfigurasi port serial perangkat RCP di otbr-agent, pertama-tama, tentukan nama port serial untuk perangkat RCP dengan memeriksa /dev:

ls /dev/tty*

Berikutnya, periksa setelan otbr-agent.

cd /etc/default
cat otbr-agent

File konfigurasi otbr-agent berisi nama antarmuka Thread Anda, Ethernet atau nama antarmuka Wi-Fi, dan nama porta serial RCP.

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

Tidak semua perangkat dipasang dengan nama port serial yang sama. Paling sering nama port yang umum adalah ttyACM* dan ttyUSB*. Baca dokumentasi untuk perangkat Anda untuk menentukan nama porta serial yang diharapkan.

Jika diperlukan, update file konfigurasi otbr-agent. Misalnya, untuk Wi-Fi dan nama port serial ttyUSB0:

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

Untuk mengupdate antarmuka Ethernet:

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

Nyalakan ulang Router Pembatas. Jika menggunakan platform BeagleBone Black, jangan lupa untuk menahan tombol BOOT saat melakukannya.

Layanan OTBR akan dimulai saat booting.

Memverifikasi layanan

Pastikan semua layanan yang diperlukan telah diaktifkan:

sudo systemctl status

Jika skrip setup berhasil, layanan berikut akan muncul di {i>output<i}:

  • mdns.service
  • otbr-agent.service
  • otbr-web.service

Contoh:

● 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

Jika layanan tersebut berjalan, tetapi RPi dalam status terdegradasi, beberapa layanan lain gagal dimulai. Periksa untuk melihat:

sudo systemctl --failed

Anda juga dapat memeriksa setiap layanan satu per satu:

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

otbr-web diaktifkan secara default untuk sebagian besar platform. Jika otbr-web tidak diinstal, coba teruskan flag WEB_GUI:

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

Verifikasi RCP

Pastikan RCP dalam status yang benar:

sudo ot-ctl state

ot-ctl adalah utilitas command line yang disediakan dengan OTBR. Ini digunakan untuk berkomunikasi dengan antarmuka Thread PAN (defaultnya adalah wpan0) yang otbr-agent terikat dalam desain RCP.

Jika RCP berhasil berjalan dan node bukan anggota Thread , output-nya akan terlihat seperti di bawah ini:

disabled

Jika output-nya adalah OpenThread daemon is not running, pecahkan masalah dengan perintah berikut:

  1. Pastikan Router Pembatas memiliki daya yang cukup (gunakan AC eksternal yang sesuai ).
  2. Putuskan dan hubungkan kembali board RCP ke platform Border Router.
  3. Pastikan perangkat seri RCP ada. Misalnya, jika perangkat harus dilampirkan ke /dev/ttyUSB0:

    ls /dev/ttyUSB*
    /dev/ttyUSB0
    
  4. Reset RCP dengan sudo ot-ctl reset.

Periksa lagi status RCP dengan sudo ot-ctl state.