Kaynağı GitHub'da görüntüleyin
Bu kılavuzda OpenThread Sınır Yönlendirici'nin (OTBR) temel derlemesi ve yapılandırması ele alınmaktadır. Bu prosedürü tamamladıktan sonra, RCP tasarımında Tam İş Parçacıklı Cihaz (FTD) işlevi gören bir OTBR'ye sahip olursunuz.
Platformu Yapılandırın
Desteklenen bir donanım platformunu yapılandırın:
RCP derleme ve flash
OTBR, RCP tasarımı üzerinde çalışıyor. RCP olarak kullanmak üzere desteklenen bir OpenThread platformu seçin ve bu platform için derleme ve yanıp sönme talimatlarını uygulayın.
OpenThread derlemesine genel bir bakış için Building Guide'a (Derleme Kılavuzu) bakın.
GNU Autotools ile desteklenen platformlar oluşturmayla ilgili özel talimatlar, her bir örneğin platform klasöründe bulunabilir.
OTBR'yi yükle
OTBR, rulle RCP ile 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
ürününü etkinleştirir. OTBR varsayılan işaretlerinin tam listesi için GitHub'daki platform örneklerine bakın.
Platformunuzu seçin, ardından varsa default
'i 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önlendirmeyi 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 Siyah. Ağ Yöneticisi'ni kullan (isteğe bağlı):
NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
RCP cihazı ekleme ve yapılandırma
Yanıp sönen RCP cihazını USB üzerinden Sınır Yönlendirici platformuna takın.
otbr-agent
ürününde RCP cihazının seri bağlantı noktasını yapılandırmak için önce /dev
kutusunu işaretleyerek RCP cihazının seri bağlantı noktası adını belirleyin:
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 İş parçacığı arayüzü adı, Ethernet veya kablosuz ağ arayüzü adı ile RCP seri bağlantı noktası adı 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ıyla eklenemeyebilir. En yaygın 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 arayüzü ve ttyUSB0
seri bağlantı noktası adı için:
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 başlatma sırasında başlatılmalıdır.
Hizmetleri doğrula
Tüm gerekli hizmetlerin etkinleştirildiğini doğrulayın:
sudo systemctl status
setup
komut dosyası başarılı olursa çıkışta aşağıdaki hizmetler görünür:
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ışıyorsa ancak RPi bozuldu durumundaysa bazı diğer hizmetler başlatılamadı. Aşağıdakileri kontrol edin:
sudo systemctl --failed
Ayrıca, her hizmeti tek tek de kontrol edebilirsiniz:
sudo service mdns status
sudo service otbr-agent status
sudo service otbr-web status
otbr-web
, çoğu platform için varsayılan olarak etkindir.
otbr-web
yüklü değilse WEB_GUI
işaretini geçmeyi deneyin:
WEB_GUI=1 ./script/bootstrap
INFRA_IF_NAME=wlan0 WEB_GUI=1 ./script/setup
RCP'yi doğrula
RCP'nin doğru durumda olduğunu doğrulayın:
sudo ot-ctl state
ot-ctl
, OTBR ile sağlanan bir komut satırı yardımcı programıdır. İş parçacığı PAN arayüzüyle (varsayılan olarak wpan0
) otbr-agent
, RCP tasarımında kendisine bağlı olanlarla iletişim kurmak için kullanılır.
RCP başarıyla çalışıyorsa ve düğüm bir İş Parçacısı ağının üyesi değilse çıkış aşağıdakine benzer olmalıdır:
disabled
Çıkış OpenThread daemon is not running
ise aşağıdaki adımları uygulayarak sorunu giderin:
- Sınır Yönlendirici'nin yeterli güçte olduğunu doğrulayın (uygun harici AC adaptörünü kullanın).
- RCP kartının Sınır Yönlendirici platformuyla bağlantısını kesip tekrar 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.
sudo ot-ctl state
ile RCP durumunu tekrar kontrol edin.