Bu kılavuz, OpenThread Sınır Yönlendirici'nin (OTBR) temel oluşturma ve yapılandırma konularını kapsar. Bu prosedürü tamamladıktan sonra RCP tasarımında Tam İş Parçacık Cihazı (FTD) işlevi gören bir OTBR'niz olur.
Platformu Yapılandır
Desteklenen bir donanım platformunu yapılandırın:
RCP oluşturma ve flash'a ekleme
OTBR, RCP tasarımıyla çalışmaktadır. RCP olarak kullanılacak desteklenen bir OpenThread platformunu seçin ve bu platformun bina ve yanıp sönme talimatlarını uygulayın.
OpenThread derlemesine genel bakış için Yapı Kılavuzu'na bakın.
GNU Autotools ile desteklenen platformları oluşturmayla ilgili özel talimatları her bir örneğin platform klasöründe bulabilirsiniz.
OTBR'yi yükle
OTBR, RCP ile omurga üzerinden iletişim kuruyor. OTBR'yi yapılandırılmış donanım platformuna yüklemek için aşağıdaki adımları tamamlayın.
OTBR deposunu klonlayın:
git clone https://github.com/openthread/ot-br-posix
Bağımlıları yükleme
Varsayılan yapılandırma, çoğu platform için BORDER_ROUTING
politikasını etkinleştirir. OTBR varsayılan işaretlerinin tam listesi için GitHub'daki platform örneklerine bakın.
Platformunuzu seçin, ardından default
tıklayın.
Varsayılan kullanım:
cd ot-br-posix
./script/bootstrap
Ağ Yöneticisi ile BeagleBone Black (isteğe bağlı):
cd ot-br-posix
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/bootstrap
OTBR derleme ve yükleme
Varsayılan kullanım. Kurulum komut dosyası, varsayılan olarak Sınır Yönlendirme'yi etkinleştirir. Sınır Yönlendirme'yi etkinleştirmek için platformunuzun Ethernet veya kablosuz arayüzünü belirtin:
Ethernet kullan:
INFRA_IF_NAME=eth0 ./script/setup
Kablosuz ağ kullan:
INFRA_IF_NAME=wlan0 ./script/setup
BeagleBone Black. Network Manager'ı kullan (isteğe bağlı):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
RCP cihazı ekleyin ve yapılandırın
Flaşlı RCP cihazını USB üzerinden Sınır Yönlendirici platformuna takın.
RCP cihazının seri bağlantı noktasını otbr-agent
ürününde yapılandırmak için önce /dev
öğesini kontrol ederek RCP cihazının seri bağlantı noktasını tanımlayın.
ls /dev/tty*
Ardından, otbr-agent
ayarlarınızı kontrol edin.
cd /etc/default
cat otbr-agent
otbr-agent
yapılandırma dosyasında Mesaj dizisi arayüzü adınız, Ethernet veya kablosuz arayüz adınız ve RCP seri bağlantı noktası adınız bulunur.
OTBR_AGENT_OPTS="-I wpan0 -B OTBR_INFRA_IF_NAME spinel+hdlc+uart:///dev/ttyACM0 trel://OTBR_INFRA_IF_NAME"
Tüm cihazlar aynı seri bağlantı noktası adına sahip değildir. En yaygın kullanılan bağlantı noktası adları ttyACM*
ve ttyUSB*
'dir. Beklenen seri bağlantı noktası adını belirlemek için cihazınızın dokümanlarına bakın.
Gerekirse otbr-agent
yapılandırma dosyasını güncelleyin. Örneğin, bir kablosuz ağ arayüzü ve ttyUSB0
için seri bağlantı noktası adı:
OTBR_AGENT_OPTS="-I wpan0 -B wlan0 spinel+hdlc+uart:///dev/ttyUSB0 trel://wlan0"
Ethernet arayüzünü güncellemek için:
OTBR_AGENT_OPTS="-I wpan0 -B eth0 spinel+hdlc+uart:///dev/ttyUSB0 trel://eth0"
Sınır Yönlendirici'yi kapatıp açın. BeagleBone Black platformunu kullanıyorsanız bunu yaparken BOOT düğmesini basılı tutmayı unutmayın.
OTBR hizmeti önyükleme sırasında başlamalıdır.
Hizmetleri doğrula
Gerekli tüm hizmetlerin etkin olduğunu doğrulayın:
sudo systemctl status
setup
komut dosyası başarılı olduysa çıkışta aşağıdaki hizmetler gösterilir:
mdns.service
otbr-agent.service
otbr-web.service
Örneğin:
● 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
Bu hizmetler çalışıyor ancak RPI bozuldu durumundaysa diğer bazı hizmetler başlatılamadı. Aşağıdakileri kontrol edin:
sudo systemctl --failed
Her hizmeti ayrı ayrı da kontrol edebilirsiniz:
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
otbr-web
, çoğu platformda varsayılan olarak etkindir.
otbr-web
yüklü değilse WEB_GUI
işaretini iletmeyi deneyin:
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
RCP'yi doğrulayın
RCP'nin doğru durumda olduğunu doğrulayın:
sudo ot-ctl state
ot-ctl
, OTBR tarafından sağlanan bir komut satırı yardımcı programıdır. RCP tasarımında otbr-agent
bağlayıcısı olan Thread PAN arayüzüyle (varsayılan olarak wpan0
kullanılır) iletişim kurmak için kullanılır.
RCP başarıyla çalışıyorsa ve düğüm bir iş parçacığı ağının üyesi değilse çıkış aşağıdakine benzer olmalıdır:
disabled
Sonuç OpenThread daemon is not running
ise aşağıdaki sorunları giderin:
- Sınır Yönlendirici'nin yeterli güce sahip olduğunu doğrulayın (uygun harici AC adaptörü kullanın).
- RCP panosunun bağlantısını kesin ve Sınır Yönlendirici platformuna yeniden bağlayın.
RCP seri cihazının mevcut olduğunu doğrulayın. Örneğin, cihazın
/dev/ttyUSB0
öğesine eklenmesi gerekiyorsa:ls /dev/ttyUSB*
/dev/ttyUSB0RCP'yi
sudo ot-ctl reset
ile sıfırlayın.
RCP durumunu sudo ot-ctl state
ile tekrar kontrol edin.