mirror of https://github.com/OpenIPC/firmware.git
parent
b206fff3dd
commit
6e02ae3d26
|
@ -34,6 +34,7 @@ source "$BR2_EXTERNAL_GOKE_PATH/package/mbedtls-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/microbe-web/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/microbe-web/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/motors/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/motors/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/mt7601u-ap-openipc/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/mt7601u-ap-openipc/Config.in"
|
||||||
|
source "$BR2_EXTERNAL_GOKE_PATH/package/nabto/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/node-exporter/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/node-exporter/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/opus-openipc/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/opus-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_GOKE_PATH/package/quirc-openipc/Config.in"
|
source "$BR2_EXTERNAL_GOKE_PATH/package/quirc-openipc/Config.in"
|
||||||
|
|
|
@ -111,6 +111,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -111,6 +111,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../../general/package/nabto
|
|
@ -45,6 +45,7 @@ source "$BR2_EXTERNAL_HISILICON_PATH/package/microbe-web/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/mini/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/mini/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/motors/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/motors/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/mt7601u-ap-openipc/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/mt7601u-ap-openipc/Config.in"
|
||||||
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/nabto/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/node-exporter/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/node-exporter/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/opus-openipc/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/opus-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_HISILICON_PATH/package/quirc-openipc/Config.in"
|
source "$BR2_EXTERNAL_HISILICON_PATH/package/quirc-openipc/Config.in"
|
||||||
|
|
|
@ -115,6 +115,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -116,6 +116,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -114,6 +114,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -115,6 +115,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -116,6 +116,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -118,6 +118,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -116,6 +116,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -119,6 +119,9 @@ BR2_PACKAGE_MOSQUITTO=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../../general/package/nabto
|
|
@ -28,6 +28,7 @@ source "$BR2_EXTERNAL_INGENIC_PATH/package/mbedtls-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_INGENIC_PATH/package/microbe-web/Config.in"
|
source "$BR2_EXTERNAL_INGENIC_PATH/package/microbe-web/Config.in"
|
||||||
source "$BR2_EXTERNAL_INGENIC_PATH/package/microsnander/Config.in"
|
source "$BR2_EXTERNAL_INGENIC_PATH/package/microsnander/Config.in"
|
||||||
source "$BR2_EXTERNAL_INGENIC_PATH/package/motors/Config.in"
|
source "$BR2_EXTERNAL_INGENIC_PATH/package/motors/Config.in"
|
||||||
|
source "$BR2_EXTERNAL_INGENIC_PATH/package/nabto/Config.in"
|
||||||
source "$BR2_EXTERNAL_INGENIC_PATH/package/node-exporter/Config.in"
|
source "$BR2_EXTERNAL_INGENIC_PATH/package/node-exporter/Config.in"
|
||||||
source "$BR2_EXTERNAL_INGENIC_PATH/package/opus-openipc/Config.in"
|
source "$BR2_EXTERNAL_INGENIC_PATH/package/opus-openipc/Config.in"
|
||||||
source "$BR2_EXTERNAL_INGENIC_PATH/package/quirc-openipc/Config.in"
|
source "$BR2_EXTERNAL_INGENIC_PATH/package/quirc-openipc/Config.in"
|
||||||
|
|
|
@ -106,6 +106,9 @@ BR2_PACKAGE_WIREGUARD_TOOLS=y
|
||||||
# ZEROTIER
|
# ZEROTIER
|
||||||
BR2_PACKAGE_ZEROTIER_ONE=y
|
BR2_PACKAGE_ZEROTIER_ONE=y
|
||||||
|
|
||||||
|
# NABTO
|
||||||
|
BR2_PACKAGE_NABTO is not set
|
||||||
|
|
||||||
# DEBUG
|
# DEBUG
|
||||||
BR2_PACKAGE_HOST_GDB=y
|
BR2_PACKAGE_HOST_GDB=y
|
||||||
BR2_PACKAGE_GDB=y
|
BR2_PACKAGE_GDB=y
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../../general/package/nabto
|
|
@ -0,0 +1,8 @@
|
||||||
|
config BR2_PACKAGE_NABTO
|
||||||
|
bool "nabto embedded sdk"
|
||||||
|
help
|
||||||
|
The Nabto Edge platform makes it possible to communicate directly between two entities:
|
||||||
|
Instead of interacting indirectly with a device through a cloud service, the platform makes
|
||||||
|
it simple to communicate directly with the actual device to invoke services or transfer data - also through firewalls.
|
||||||
|
|
||||||
|
https://github.com/nabto/nabto-embedded-sdk
|
|
@ -0,0 +1,29 @@
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# nabto embedded sdk
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
NABTO_VERSION = 5.12.0
|
||||||
|
NABTO_SOURCE = nabto-embedded-sdk.zip
|
||||||
|
NABTO_SITE = https://github.com/nabto/nabto-embedded-sdk/releases/download/v$(NABTO_VERSION)
|
||||||
|
|
||||||
|
define NABTO_EXTRACT_CMDS
|
||||||
|
$(UNZIP) -d $(@D) $(NABTO_DL_DIR)/$(NABTO_SOURCE)
|
||||||
|
mv $(@D)/nabto-embedded-sdk/* $(@D)/
|
||||||
|
rm -rf $(@D)/nabto-embedded-sdk
|
||||||
|
endef
|
||||||
|
|
||||||
|
NABTO_CONF_OPTS += \
|
||||||
|
-DCMAKE_BUILD_TYPE=Release \
|
||||||
|
-DBUILD_SHARED_LIBS=OFF \
|
||||||
|
-DDEVICE_BUILD_TESTS=OFF \
|
||||||
|
-DDEVICE_BUILD_EXAMPLES=OFF
|
||||||
|
|
||||||
|
define NABTO_REMOVE_EXTRA
|
||||||
|
rm -f $(TARGET_DIR)/usr/lib/libnabto_device.so
|
||||||
|
endef
|
||||||
|
|
||||||
|
NABTO_POST_INSTALL_TARGET_HOOKS += NABTO_REMOVE_EXTRA
|
||||||
|
|
||||||
|
$(eval $(cmake-package))
|
|
@ -0,0 +1,112 @@
|
||||||
|
[Nabto Edge Embedded SDK](https://github.com/nabto/nabto-embedded-sdk)
|
||||||
|
|
||||||
|
Пакет включает сборку tcp_tunnel_device из sdk. В примере показано как можно получить доступ к rtsp потоку из любой точки мира посредством платформы [Nabto](https://www.nabto.com/).
|
||||||
|
|
||||||
|
|
||||||
|
###### Регистрация
|
||||||
|
|
||||||
|
Для настройки камеры понадобится регистрация в облаке [Nabto Cloud Console](https://console.cloud.nabto.com) и получение `Product-ID` (pr-xxxxxxxx) и `Deviсe-ID` (de-xxxxxxxx) для каждого подключаемого устройства, `fingerprint` для завершения будет получен только после настройки камеры.
|
||||||
|
|
||||||
|
###### Настройка камеры
|
||||||
|
|
||||||
|
Запустить в консоли `tcp_tunnel_device` с ключом `--demo-init` и ввести данные (pr-xxxxxxxx & de-xxxxxxxx) полученные при регистрации в облаке [Nabto Cloud Console](https://console.cloud.nabto.com) и создании устройства.
|
||||||
|
|
||||||
|
Далее выбрать проксируемый сервис, в данном случае `rtsp` и указать endpoint `/stream=0`:
|
||||||
|
|
||||||
|
```
|
||||||
|
Next step is to add TCP tunnel services.
|
||||||
|
What type of service do you want to add?
|
||||||
|
[0]: continue
|
||||||
|
[1]: ssh
|
||||||
|
[2]: http
|
||||||
|
[3]: rtsp
|
||||||
|
Enter a valid number (default: 1) [0-3]: 3
|
||||||
|
Enter the port of your RTSP server (default: 8554) [0-65535]: 554
|
||||||
|
Enter your RTSP endpoint (default: /video): /stream=0
|
||||||
|
Added rtsp service on localhost port 554 with metadata rtsp-path => /stream=0
|
||||||
|
```
|
||||||
|
|
||||||
|
По окончании будет выдан `fingerprint`, который необходимо сохранить в настройках устройства в облаке.
|
||||||
|
|
||||||
|
###### Запуск
|
||||||
|
```
|
||||||
|
tcp_tunnel_device
|
||||||
|
```
|
||||||
|
убедиться что подключение прошло успешно (пример):
|
||||||
|
|
||||||
|
```
|
||||||
|
root@openipc-t31:# tcp_tunnel_device
|
||||||
|
|
||||||
|
######## Nabto TCP Tunnel Device ########
|
||||||
|
# Product ID: pr-ydk3xhyn
|
||||||
|
# Device ID: de-orruyc4n
|
||||||
|
# Fingerprint: 3de2ec6ded2cc975bf87ed63b2303e02b8051fb7359b19a3d950ed0158bb3813
|
||||||
|
# Version: 0.0.0-branch.heads/master.commits.1910+a49d27fc.dirty
|
||||||
|
# Local UDP Port: 5592
|
||||||
|
# Friendly Name: "Tcp Tunnel"
|
||||||
|
#
|
||||||
|
# The device offers Local Open Pairing
|
||||||
|
#
|
||||||
|
# The device has Password Open Pairing enabled
|
||||||
|
# Open Pairing Password: X9NphkArpzLU
|
||||||
|
# Open Pairing SCT: 9jLgbUb4FWhe
|
||||||
|
# Open Pairing String: p=pr-ydk3xhyn,d=de-orruyc4n,pwd=X9NphkArpzLU,sct=9jLgbUb4FWhe
|
||||||
|
#
|
||||||
|
######## Configured TCP Services ########
|
||||||
|
# Id Type Host Port
|
||||||
|
# rtsp rtsp 127.0.0.1 554
|
||||||
|
########
|
||||||
|
|
||||||
|
Attached to the basestation
|
||||||
|
```
|
||||||
|
|
||||||
|
###### Получение потока
|
||||||
|
|
||||||
|
В примере будем забирать поток на linux машине, но в релизах на [github](https://github.com/nabto/nabto-client-edge-tunnel) есть версия клиента под windows.
|
||||||
|
|
||||||
|
Клонируем и собираем клиента (качаем из релизов).
|
||||||
|
|
||||||
|
Есть 2 способа "спаривания" - `Local Open` и `Password Open`. Первый режим позволяет легко найти и привязать устройство, если оно находится в одной локальной сети, второй вариант если устройство удаленное.
|
||||||
|
В качестве универсального примера используем вариант с удаленным устройством.
|
||||||
|
|
||||||
|
Запускаем `edge_tunnel_client` с ключом `--pair-string` и строкой с необходимыми учетными данными устройства `p=pr-ydk3xhyn,d=de-orruyc4n,pwd=X9NphkArpzLU,sct=9jLgbUb4FWhe`.
|
||||||
|
Строка в готовом виде присутствует в выводе подключенной к облаку камеры, потому просто копируем ее из предыдущего шага настройки камеры и выбираем `(0) Open Password`, при запросе username укажем `admin`:
|
||||||
|
|
||||||
|
```
|
||||||
|
$./edge_tunnel_client --pair-string p=pr-ydk3xhyn,d=de-orruyc4n,pwd=X9NphkArpzLU,sct=9jLgbUb4FWhe
|
||||||
|
|
||||||
|
Connected to device ProductId: pr-ydk3xhyn DeviceId: de-orruyc4n
|
||||||
|
Several pairing modes exists choose one of the following.
|
||||||
|
[0]: Password Open
|
||||||
|
[1]: Local Open
|
||||||
|
Choose a pairing mode: 0
|
||||||
|
Open Password Pairing requires a username. The username is a name you choose for the new user, the username has to be unique among the registered users on the device.
|
||||||
|
New Username: admin
|
||||||
|
The device [0] pr-ydk3xhyn.de-orruyc4n has been set into the bookmarks as index 0
|
||||||
|
|
||||||
|
```
|
||||||
|
Настройка завершена. Запускаем клиент и проверяем список предоставляемых камерой сервисов:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ ./edge_tunnel_client --services
|
||||||
|
Connected to the device [0] pr-ydk3xhyn.de-orruyc4n
|
||||||
|
Available services ...
|
||||||
|
Service: rtsp Type: rtsp Host: 127.0.0.1 Port: 554
|
||||||
|
```
|
||||||
|
|
||||||
|
В данном примере камера предоставляет доступ только к rtsp потоку. Подключаемся:
|
||||||
|
|
||||||
|
```
|
||||||
|
./edge_tunnel_client --service rtsp
|
||||||
|
Connected to the device [0] pr-ydk3xhyn.de-orruyc4n
|
||||||
|
TCP Tunnel opened for the service rtsp listening on the local port 44391
|
||||||
|
```
|
||||||
|
|
||||||
|
На `127.0.0.1:44391` будет доступен rtsp поток, используем ffplay обязательно выбрав транспорт tcp:
|
||||||
|
|
||||||
|
```
|
||||||
|
ffplay -rtsp_transport tcp rtsp://127.0.0.1:44391/stream=0
|
||||||
|
```
|
||||||
|
|
||||||
|
Более подробно о возможностях платформы и настройках в официальной [документации](https://docs.nabto.com/developer/guides.html)
|
||||||
|
|
Loading…
Reference in New Issue