يتناول هذا الدليل الخطوات الأساسية للتكوين والتهيئة الأساسية لجهاز توجيه حدود سلسلة المحادثات (OTBR). عند اكتمال هذا الإجراء، سيكون لديك OTBR يعمل كجهاز خيط كامل (FTD) بتصميم RCP.
إعداد النظام الأساسي
ضبط النظام الأساسي للأجهزة المتوافقة:
إنشاء RCP والفلاش
يتم تشغيل OTBR على تصميم RCP. اختَر منصة OpenThread متوافقة لاستخدامها كمنصّة RCP، واتّبِع التعليمات الخاصة بالإنشاء والوميض للنظام الأساسي.
للحصول على نظرة عامة حول إنشاء OpenThread، اطلع على دليل البناء.
يمكنك العثور على تعليمات محددة حول إنشاء أنظمة أساسية متوافقة باستخدام أدوات GNU التلقائية في مجلد النظام الأساسي لكل مثال.
تثبيت 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
استخدام Wi-Fi:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black. استخدام مدير الشبكة (اختياري):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
إرفاق وتهيئة جهاز RCP
وصِّل جهاز RCP الوامض بالنظام الأساسي لجهاز توجيه الحدود عبر USB.
لتهيئة المنفذ التسلسلي لجهاز 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"
لتحديث واجهة Ethernet:
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 وأعد توصيلها بمنصّة جهاز توجيه الحدود.
تحقق من وجود الجهاز التسلسلي لـ RCP. على سبيل المثال، إذا كان الجهاز يجب توصيله بـ
/dev/ttyUSB0
:ls /dev/ttyUSB*
/dev/ttyUSB0إعادة ضبط RCP باستخدام
sudo ot-ctl reset
.
يمكنك التحقّق من حالة RCP مرة أخرى من خلال sudo ot-ctl state
.