המדריך הזה עוסק בבנייה ובתצורה הבסיסיות של נתב גבול OpenThread (OTBR). לאחר השלמת ההליך הזה, יהיה לכם OTBR שמשמש כמכשיר Thread מלא (FTD) בעיצוב RCP.
הגדרת הפלטפורמה
הגדרת פלטפורמת חומרה נתמכת:
יצירת RCP ופלאש
OTBR פועל על עיצוב RCP. יש לבחור פלטפורמת OpenThread נתמכת שתשמש כ-RCP ולפעול לפי ההוראות של הבניין וההבהוב.
לסקירה כללית על בניית OpenThread, יש לעיין במדריך הבנייה.
הוראות ספציפיות ליצירת פלטפורמות נתמכות באמצעות GNU Autotools מופיעות בתיקיית הפלטפורמות של כל דוגמה.
התקנת OTBR
OTBR מתקשר עם ה-RCP דרך ספינל. כדי להתקין את OTBR בפלטפורמת החומרה, יש לבצע את השלבים הבאים.
שכפול המאגר OTBR:
git clone https://github.com/openthread/ot-br-posix
התקנת יחסי תלות
הגדרת ברירת המחדל מאפשרת את BORDER_ROUTING
לרוב הפלטפורמות. לקבלת רשימה מלאה של סימוני ברירת מחדל ב-OTBR, יש לעיין
בדוגמאות לפלטפורמות ב-GitHub.
בוחרים את הפלטפורמה הרצויה ולוחצים על default
, אם היא זמינה.
ברירת מחדל לשימוש:
cd ot-br-posix
./script/bootstrap
BeagleBone Black עם מנהל הרשת (אופציונלי):
cd ot-br-posix
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
הידור והתקנת OTBR
ברירת מחדל של שימוש. סקריפט ההגדרה מפעיל 'ניתוב גבול' כברירת מחדל. כדי להפעיל ניתוב גבול, ציין את ממשק האתרנט או ה-Wi-Fi של הפלטפורמה:
שימוש ב-Ethernet:
INFRA_IF_NAME=eth0 ./script/setup
השתמש ב-Wi-Fi:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black. שימוש במנהל הרשת (אופציונלי):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
צירוף והגדרה של מכשיר RCP
מחברים את התקן ה-RCP המהבהב אל פלטפורמת Border Router דרך ה-USB.
כדי להגדיר את היציאה הסידורית של מכשיר ה-RCP ב-otbr-agent
, ראשית קבע את שם היציאה הטורית עבור מכשיר ה-RCP על-ידי סימון /dev
:
ls /dev/tty*
לאחר מכן, יש לבדוק את הגדרות otbr-agent
.
cd /etc/default
cat otbr-agent
קובץ התצורה של otbr-agent
מכיל את שם הממשק של Thread, את שם הממשק של Ethernet או Wi-Fi ואת שם היציאה הסידורית של RCP.
OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"
לא כל המכשירים מחוברים לאותו שם יציאה טורית. שמות היציאות הנפוצים ביותר הם ttyACM*
ו-ttyUSB*
. יש לעיין בתיעוד של המכשיר כדי לאתר את השם הצפוי של יציאה טורית.
אם יש צורך, מעדכנים את קובץ התצורה otbr-agent
. לדוגמה, עבור ממשק Wi-Fi
ושם יציאה טורי של ttyUSB0
:
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
כדי לעדכן ממשק אתרנט:
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"
הפעל מחדש את נתב הגבול. אם אתם משתמשים בפלטפורמת BeagleBone Black, זכרולחיצה ארוכה על לחצן ה-BOOT בזמן שהם עושים זאת.
שירות ה-OTBR אמור להתחיל באתחול.
אימות השירותים
צריך לוודא שכל השירותים הנדרשים מופעלים:
sudo systemctl status
אם הסקריפט setup
בוצע בהצלחה, השירותים הבאים יופיעו בפלט:
mdns.service
otbr-agent.service
otbr-web.service
למשל:
● 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
אם השירותים האלה פועלים, אבל ה-RPi נמצא במצב ירידה, ייתכן שחלק מהשירותים האחרים לא יתחילו לפעול. צריך לבדוק את הנקודות הבאות:
sudo systemctl --failed
ניתן גם לבדוק כל שירות בנפרד:
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
otbr-web
מופעל כברירת מחדל ברוב הפלטפורמות.
אם otbr-web
לא מותקן, יש לנסות להעביר את הדגל WEB_GUI
:
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
אימות RCP
מוודאים שה-RCP נמצא במצב הנכון:
sudo ot-ctl state
ot-ctl
הוא שירות שורת פקודה המסופק באמצעות OTBR. הוא משמש לתקשורת עם ממשק שרשור ה-PAN (ברירת המחדל היא wpan0
) שה-otbr-agent
קשור אליו בעיצוב ה-RCP.
אם ה-RCP פועל בהצלחה והצומת אינו חבר ברשת Thread, הפלט צריך להיות דומה לדוגמה הבאה:
disabled
אם הפלט הוא OpenThread daemon is not running
, יש לפתור את הבעיות הבאות:
- יש לוודא שנתב הגבול מכיל מתח מספיק (יש להשתמש במתאם AC המתאים).
- מנתקים את לוח ה-RCP ומחברים אותו מחדש לפלטפורמת Border Router.
מוודאים שההתקן הסידורי של ה-RCP קיים. לדוגמה, אם המכשיר צריך להיות מוצמד אל
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0אפס את ה-RCP עם
sudo ot-ctl reset
.
יש לבדוק שוב את סטטוס ה-RCP עם sudo ot-ctl state
.