این راهنما ساخت و پیکربندی اولیه OpenThread Border Router (OTBR) را پوشش می دهد. پس از تکمیل این رویه، یک OTBR خواهید داشت که به عنوان یک دستگاه نخ کامل (FTD) در طراحی RCP عمل می کند.
پیکربندی پلت فرم
یک پلت فرم سخت افزاری پشتیبانی شده را پیکربندی کنید:
RCP را بسازید و فلش کنید
OTBR بر روی یک طراحی RCP اجرا می شود. یک پلتفرم OpenThread پشتیبانی شده را برای استفاده به عنوان RCP انتخاب کنید و دستورالعمل های ساختمانی و چشمک زن را برای آن پلتفرم دنبال کنید.
برای نمای کلی از ساخت OpenThread، به راهنمای ساختمان مراجعه کنید.
دستورالعملهای خاص در مورد ساختن پلتفرمهای پشتیبانیشده با ابزار خودکار گنو را میتوانید در پوشه پلتفرم هر نمونه پیدا کنید.
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 پلت فرم خود را مشخص کنید:
استفاده از اترنت:
INFRA_IF_NAME=eth0 ./script/setup
استفاده از وای فای:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black . استفاده از مدیر شبکه (اختیاری):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
دستگاه RCP را متصل و پیکربندی کنید
دستگاه RCP فلش شده را از طریق USB به پلتفرم Border Router وصل کنید.
برای پیکربندی پورت سریال دستگاه RCP در otbr-agent
، ابتدا نام پورت سریال دستگاه RCP را با علامت زدن /dev
تعیین کنید:
ls /dev/tty*
سپس تنظیمات otbr-agent
خود را بررسی کنید.
cd /etc/default
cat otbr-agent
فایل پیکربندی otbr-agent
حاوی نام رابط Thread، نام رابط اترنت یا 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 ارائه شده است. برای برقراری ارتباط با رابط Thread PAN (پیشفرض wpan0
است) که otbr-agent
در طراحی RCP به آن متصل است، استفاده میشود.
اگر RCP با موفقیت اجرا شود و گره عضو یک شبکه Thread نباشد، خروجی باید مشابه زیر باشد:
disabled
اگر خروجی OpenThread daemon is not running
، با موارد زیر عیب یابی کنید:
- بررسی کنید که روتر مرزی قدرت کافی دارد (از آداپتور AC خارجی مناسب استفاده کنید).
- برد RCP را به پلتفرم Border Router جدا کرده و دوباره وصل کنید.
بررسی کنید که دستگاه سریال RCP وجود دارد. برای مثال، اگر دستگاه باید به
/dev/ttyUSB0
متصل شود:ls /dev/ttyUSB*
/dev/ttyUSB0RCP را با تنظیم مجدد
sudo ot-ctl reset
.
وضعیت RCP را دوباره با sudo ot-ctl state
بررسی کنید.