Panduan ini membahas build dan konfigurasi dasar OpenThread Border Router (OTBR). Setelah menyelesaikan prosedur ini, Anda akan memiliki OTBR yang berfungsi sebagai Perangkat Thread Lengkap (FTD) dalam desain RCP.
Mengonfigurasi Platform
Konfigurasi platform hardware yang didukung:
Mem-build dan mem-flash RCP
OTBR berjalan pada desain RCP. Pilih platform OpenThread yang didukung untuk digunakan sebagai RCP dan ikuti petunjuk pembuatan dan flashing untuk platform tersebut.
Untuk ringkasan cara mem-build OpenThread, lihat Panduan Build.
Petunjuk spesifik tentang cara mem-build platform yang didukung dengan GNU Autotools dapat ditemukan di folder platform setiap contoh.
Menginstal OTBR
OTBR berkomunikasi dengan RCP melalui spinel. Untuk menginstal OTBR di platform hardware yang dikonfigurasi, selesaikan langkah-langkah berikut.
Buat clone repositori OTBR:
git clone https://github.com/openthread/ot-br-posix
Menginstal dependensi
Konfigurasi default mengaktifkan BORDER_ROUTING
untuk sebagian besar platform. Untuk mengetahui daftar lengkap flag 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 Ethernet atau Wi-Fi platform Anda:
Gunakan Ethernet:
INFRA_IF_NAME=eth0 ./script/setup
Menggunakan Wi-Fi:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black. Menggunakan Network Manager (opsional):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
Melampirkan 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*
Selanjutnya, periksa setelan otbr-agent
Anda.
cd /etc/default
cat otbr-agent
File konfigurasi otbr-agent
berisi nama antarmuka Thread, nama antarmuka Wi-Fi
atau Ethernet, dan nama port 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 dilampirkan dengan nama port serial yang sama. Nama
port yang paling umum adalah ttyACM*
dan ttyUSB*
. Lihat dokumentasi untuk
perangkat Anda guna menentukan nama port serial yang diharapkan.
Jika diperlukan, perbarui file konfigurasi otbr-agent
. Misalnya, untuk antarmuka 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 Perbatasan. Jika menggunakan platform BeagleBone Black, ingatlah untuk menekan 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 dalam
output:
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 berstatus 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
Memverifikasi RCP
Pastikan RCP berada 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 terikat dengan otbr-agent
dalam desain RCP.
Jika RCP berhasil berjalan dan node bukan anggota jaringan Thread, output-nya akan mirip dengan yang di bawah ini:
disabled
Jika output-nya adalah OpenThread daemon is not running
, pecahkan masalah dengan langkah-langkah berikut:
- Pastikan Router Perbatasan memiliki daya yang memadai (gunakan adaptor AC eksternal yang sesuai).
- Lepaskan dan hubungkan kembali board RCP ke platform Border Router.
Pastikan perangkat seri RCP ada. Misalnya, jika perangkat harus dipasang ke
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0Reset RCP dengan
sudo ot-ctl reset
.
Periksa lagi status RCP dengan sudo ot-ctl state
.