Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

OpenThread Border 라우터 빌드 및 구성

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

GitHub에서 소스 보기

이 가이드에서는 OpenThread Border Router(OTBR)의 기본 빌드 및 구성을 다룹니다. 이 절차를 완료하면 RCP 디자인에서 풀 스레드 기기 (FTD)로 작동하는 OTBR이 생성됩니다.

플랫폼 구성

지원되는 하드웨어 플랫폼을 구성합니다.

RCP 빌드 및 플래시

OTBR은 RCP 설계에서 실행됩니다. RCP로 사용할 지원되는 OpenThread 플랫폼을 선택하고 해당 플랫폼의 빌드 및 플래시 안내를 따릅니다.

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 블랙 (선택사항):

    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 블랙 Network Manager 사용 (선택사항):

    NETWORK_MANAGER=1 NETWORK_MANAGER_WIFI=1 ./script/setup
    

RCP 기기 연결 및 구성하기

USB를 통해 플래시된 RCP 기기를 Border Router 플랫폼에 연결합니다.

otbr-agent에서 RCP 기기의 직렬 포트를 구성하려면 먼저 /dev을 확인하여 RCP 기기의 직렬 포트 이름을 결정합니다.

ls /dev/tty*

그런 다음 otbr-agent 설정을 확인합니다.

cd /etc/default
cat otbr-agent

otbr-agent 구성 파일에는 스레드 인터페이스 이름, 이더넷 또는 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"

Border Router의 전원을 껐다 켭니다. BeagleBone 블랙 플랫폼을 사용하는 경우 이 작업을 하는 동안 부트 버튼을 길게 누르세요.

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과 함께 제공되는 명령줄 유틸리티입니다. 이 라이브러리는 otbr-agent가 RCP 디자인에서 바인딩되는 스레드 PAN 인터페이스 (기본값: wpan0)와 통신하는 데 사용됩니다.

RCP가 성공적으로 실행되고 노드가 스레드 네트워크의 구성원이 아닌 경우 출력은 다음과 유사해야 합니다.

disabled

결과가 OpenThread daemon is not running이면 다음과 같이 문제를 해결하세요.

  1. 보더 라우터의 전원이 충분한지 확인합니다 (적절한 외부 AC 어댑터 사용).
  2. RCP 보드를 연결 해제하고 Border Router 플랫폼에 다시 연결합니다.
  3. RCP 직렬 기기가 있는지 확인합니다. 예를 들어 기기를 /dev/ttyUSB0에 연결해야 하는 경우

    ls /dev/ttyUSB*
    /dev/ttyUSB0
    
  4. sudo ot-ctl reset로 RCP를 재설정합니다.

sudo ot-ctl state를 사용하여 RCP 상태를 다시 확인합니다.