From 2b4499a44318f554781171f5982351c26611901a Mon Sep 17 00:00:00 2001 From: cronyx Date: Thu, 14 Apr 2022 15:55:35 +0300 Subject: [PATCH 1/3] add zerotier-one package --- br-ext-chip-goke/Config.in | 2 +- ...known_unknown_gk7205v300_openipc_defconfig | 3 ++ br-ext-chip-goke/external.mk | 3 +- br-ext-chip-goke/package/zerotier-one | 1 + br-ext-chip-hisilicon/Config.in | 3 +- ...nown_unknown_hi3516ev300_openipc_defconfig | 3 ++ br-ext-chip-hisilicon/external.mk | 1 + br-ext-chip-hisilicon/package/zerotier-one | 1 + building.sh | 2 +- .../package/zerotier-one/0001-makefile.patch | 33 +++++++++++++++++ general/package/zerotier-one/Config.in | 14 ++++++++ .../package/zerotier-one/files/S90zerotier | 19 ++++++++++ general/package/zerotier-one/readme.md | 35 +++++++++++++++++++ general/package/zerotier-one/zerotier-one.mk | 28 +++++++++++++++ scripts/executing_commands_for_musl.sh | 2 +- 15 files changed, 145 insertions(+), 5 deletions(-) create mode 120000 br-ext-chip-goke/package/zerotier-one create mode 120000 br-ext-chip-hisilicon/package/zerotier-one create mode 100644 general/package/zerotier-one/0001-makefile.patch create mode 100644 general/package/zerotier-one/Config.in create mode 100755 general/package/zerotier-one/files/S90zerotier create mode 100644 general/package/zerotier-one/readme.md create mode 100644 general/package/zerotier-one/zerotier-one.mk diff --git a/br-ext-chip-goke/Config.in b/br-ext-chip-goke/Config.in index 32a92f2e..ed457045 100644 --- a/br-ext-chip-goke/Config.in +++ b/br-ext-chip-goke/Config.in @@ -30,4 +30,4 @@ source "$BR2_EXTERNAL_GOKE_PATH/package/uacme-openipc/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/vtund-openipc/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/wifibroadcast/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/yaml-cli/Config.in" - +source "$BR2_EXTERNAL_GOKE_PATH/package/zerotier-one/Config.in" diff --git a/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_openipc_defconfig b/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_openipc_defconfig index e146d9d4..e1036e3f 100644 --- a/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_openipc_defconfig +++ b/br-ext-chip-goke/configs/unknown_unknown_gk7205v300_openipc_defconfig @@ -97,3 +97,6 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y # WIREGUARD BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y BR2_PACKAGE_WIREGUARD_TOOLS=y + +# ZEROTIER +BR2_PACKAGE_ZEROTIER_ONE is not set diff --git a/br-ext-chip-goke/external.mk b/br-ext-chip-goke/external.mk index 336d955b..37d5bb91 100644 --- a/br-ext-chip-goke/external.mk +++ b/br-ext-chip-goke/external.mk @@ -29,4 +29,5 @@ include $(BR2_EXTERNAL_GOKE_PATH)/package/rtl8812au-openipc/rtl8812au-openipc.mk include $(BR2_EXTERNAL_GOKE_PATH)/package/uacme-openipc/uacme-openipc.mk include $(BR2_EXTERNAL_GOKE_PATH)/package/vtund-openipc/vtund-openipc.mk include $(BR2_EXTERNAL_GOKE_PATH)/package/wifibroadcast/wifibroadcast.mk -include $(BR2_EXTERNAL_GOKE_PATH)/package/yaml-cli/yaml-cli.mk \ No newline at end of file +include $(BR2_EXTERNAL_GOKE_PATH)/package/yaml-cli/yaml-cli.mk +include $(BR2_EXTERNAL_GOKE_PATH)/package/zerotier-one/zerotier-one.mk diff --git a/br-ext-chip-goke/package/zerotier-one b/br-ext-chip-goke/package/zerotier-one new file mode 120000 index 00000000..9b56b811 --- /dev/null +++ b/br-ext-chip-goke/package/zerotier-one @@ -0,0 +1 @@ +../../general/package/zerotier-one \ No newline at end of file diff --git a/br-ext-chip-hisilicon/Config.in b/br-ext-chip-hisilicon/Config.in index 975d2df3..638218bf 100644 --- a/br-ext-chip-hisilicon/Config.in +++ b/br-ext-chip-hisilicon/Config.in @@ -46,4 +46,5 @@ source "$BR2_EXTERNAL_HISILICON_PATH/package/rtl8188fu-openipc/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/uacme-openipc/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/uqmi/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/vtund-openipc/Config.in" -source "$BR2_EXTERNAL_HISILICON_PATH/package/yaml-cli/Config.in" \ No newline at end of file +source "$BR2_EXTERNAL_HISILICON_PATH/package/yaml-cli/Config.in" +source "$BR2_EXTERNAL_HISILICON_PATH/package/zerotier-one/Config.in" diff --git a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_openipc_defconfig b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_openipc_defconfig index c7c379c1..83ce87d7 100644 --- a/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_openipc_defconfig +++ b/br-ext-chip-hisilicon/configs/unknown_unknown_hi3516ev300_openipc_defconfig @@ -97,3 +97,6 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MT7601U=y # WIREGUARD BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y BR2_PACKAGE_WIREGUARD_TOOLS=y + +# ZEROTIER +BR2_PACKAGE_ZEROTIER_ONE is not set diff --git a/br-ext-chip-hisilicon/external.mk b/br-ext-chip-hisilicon/external.mk index ee7be628..764c2180 100644 --- a/br-ext-chip-hisilicon/external.mk +++ b/br-ext-chip-hisilicon/external.mk @@ -47,3 +47,4 @@ include $(BR2_EXTERNAL_HISILICON_PATH)/package/uacme-openipc/uacme-openipc.mk include $(BR2_EXTERNAL_HISILICON_PATH)/package/uqmi/uqmi.mk include $(BR2_EXTERNAL_HISILICON_PATH)/package/vtund-openipc/vtund-openipc.mk include $(BR2_EXTERNAL_HISILICON_PATH)/package/yaml-cli/yaml-cli.mk +include $(BR2_EXTERNAL_HISILICON_PATH)/package/zerotier-one/zerotier-one.mk diff --git a/br-ext-chip-hisilicon/package/zerotier-one b/br-ext-chip-hisilicon/package/zerotier-one new file mode 120000 index 00000000..9b56b811 --- /dev/null +++ b/br-ext-chip-hisilicon/package/zerotier-one @@ -0,0 +1 @@ +../../general/package/zerotier-one \ No newline at end of file diff --git a/building.sh b/building.sh index 3a1e8208..5ea7fd26 100755 --- a/building.sh +++ b/building.sh @@ -597,7 +597,7 @@ xm550() { # ssc335_portal # Portal (partner) # ssc335_rotek # Rotek # -ssc335de # OpenIPC +# ssc335de # OpenIPC # # ssc337 # OpenIPC => musl # diff --git a/general/package/zerotier-one/0001-makefile.patch b/general/package/zerotier-one/0001-makefile.patch new file mode 100644 index 00000000..873c02d3 --- /dev/null +++ b/general/package/zerotier-one/0001-makefile.patch @@ -0,0 +1,33 @@ +--- a/make-linux.mk 2022-04-13 12:12:52.070856266 +0300 ++++ b/make-linux.mk 2022-04-13 12:17:32.643372724 +0300 +@@ -25,8 +25,8 @@ + # otherwise build into binary as done on Mac and Windows. + ONE_OBJS+=osdep/PortMapper.o + override DEFS+=-DZT_USE_MINIUPNPC +-MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2..*"' /usr/include/miniupnpc/miniupnpc.h && echo 1) +-#MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2.."' /usr/include/miniupnpc/miniupnpc.h && echo 1) ++MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2..*"' $(STAGING_DIR)/usr/include/miniupnpc/miniupnpc.h && echo 1) ++#MINIUPNPC_IS_NEW_ENOUGH=$(shell grep -sqr '.*define.*MINIUPNPC_VERSION.*"2.."' $(STAGING_DIR)/usr/include/miniupnpc/miniupnpc.h && echo 1) + ifeq ($(MINIUPNPC_IS_NEW_ENOUGH),1) + override DEFS+=-DZT_USE_SYSTEM_MINIUPNPC + LDLIBS+=-lminiupnpc +@@ -34,7 +34,7 @@ + override DEFS+=-DMINIUPNP_STATICLIB -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DOS_STRING=\"Linux\" -DMINIUPNPC_VERSION_STRING=\"2.0\" -DUPNP_VERSION_STRING=\"UPnP/1.1\" -DENABLE_STRNATPMPERR + ONE_OBJS+=ext/miniupnpc/connecthostport.o ext/miniupnpc/igd_desc_parse.o ext/miniupnpc/minisoap.o ext/miniupnpc/minissdpc.o ext/miniupnpc/miniupnpc.o ext/miniupnpc/miniwget.o ext/miniupnpc/minixml.o ext/miniupnpc/portlistingparse.o ext/miniupnpc/receivedata.o ext/miniupnpc/upnpcommands.o ext/miniupnpc/upnpdev.o ext/miniupnpc/upnperrors.o ext/miniupnpc/upnpreplyparse.o + endif +-ifeq ($(wildcard /usr/include/natpmp.h),) ++ifeq ($(wildcard $(STAGING_DIR)/usr/include/natpmp.h),) + ONE_OBJS+=ext/libnatpmp/natpmp.o ext/libnatpmp/getgateway.o + else + LDLIBS+=-lnatpmp +@@ -306,8 +306,8 @@ + override CXXFLAGS+=-march=armv5t -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm + ZT_USE_ARM32_NEON_ASM_CRYPTO=0 + else +- override CFLAGS+=-mfloat-abi=hard -march=armv6kz -marm -mfpu=vfp -mno-unaligned-access -mtp=cp15 -mcpu=arm1176jzf-s +- override CXXFLAGS+=-mfloat-abi=hard -march=armv6kz -marm -mfpu=vfp -fexceptions -mno-unaligned-access -mtp=cp15 -mcpu=arm1176jzf-s ++ override CFLAGS+=-mfloat-abi=soft -march=armv6kz -marm -mfpu=vfp -mno-unaligned-access -mtp=cp15 -mcpu=arm1176jzf-s ++ override CXXFLAGS+=-mfloat-abi=soft -march=armv6kz -marm -mfpu=vfp -fexceptions -mno-unaligned-access -mtp=cp15 -mcpu=arm1176jzf-s + ZT_USE_ARM32_NEON_ASM_CRYPTO=0 + endif + endif diff --git a/general/package/zerotier-one/Config.in b/general/package/zerotier-one/Config.in new file mode 100644 index 00000000..db4038c5 --- /dev/null +++ b/general/package/zerotier-one/Config.in @@ -0,0 +1,14 @@ +config BR2_PACKAGE_ZEROTIER_ONE + bool "zerotier-one" + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_LIBMINIUPNPC + select BR2_PACKAGE_LIBNATPMP + help + ZeroTier One lets you join ZeroTier virtual networks and have + them appear as tun/tap ports on your system. + + https://www.zerotier.com/ + +comment "zerotier-one needs a toolchain w/ C++, threads" + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS diff --git a/general/package/zerotier-one/files/S90zerotier b/general/package/zerotier-one/files/S90zerotier new file mode 100755 index 00000000..2215ff4f --- /dev/null +++ b/general/package/zerotier-one/files/S90zerotier @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Start zerotier-one +# + +case "$1" in + start) + echo "Starting zerotier-one daemon..." + /sbin/modprobe tun + /usr/sbin/zerotier-one -d + ;; + stop) + kill -9 $(pidof zerotier-one) + /sbin/rmmod -w tun + ;; + *) + echo "Usage: $0 {start|stop}" + exit 1 +esac diff --git a/general/package/zerotier-one/readme.md b/general/package/zerotier-one/readme.md new file mode 100644 index 00000000..7eb0d193 --- /dev/null +++ b/general/package/zerotier-one/readme.md @@ -0,0 +1,35 @@ +# ZeroTier One + +Пакет [ZeroTier One](https://www.zerotier.com) предназначен только для локальной сборки без установки в rootfs (соотвествующая строка в .mk имеет коментарий) за исключением скрипта запуска демона и библиотеки libstdc++. После прошивки камеры, zerotier-one необходимо загрузить в /usr/sbin и создать 2 симлинка: + +``` +ln -sf zerotier-one zerotier-cli +ln -sf zerotier-one zerotier-idtool +``` +Перезапустить камеру или выполнить команду из консоли (web либо ssh): + +``` +/etc/init.d/S90zerotier start +``` + +# Быстрый старт + +1. Зарегистироваться на https://my.zerotier.com +2. Получить ID сети, настроить сеть как приватную. +3. Из консоли камеры (web консоль или ssh) выполнить: + +``` +zerotier-cli join network_id где (ID сети полученный на этапе 2) в ответ будет отображен статус: <200 join OK> +``` + +4. Перейти в веб интерфейс на htts://my.zerotier.com и авторизовать только что подключенную камеру, авторизация происходит методом установки галочки напротив соотвествующего пира. + +Настройка завершена. + +Вся конфигурация конфигурация хранится в /var/lib/zerotier-one, покинуть сеть (отключиться) можно выполнив команду в консоли: + +``` +zerotier-cli leave network_id где (ID сети полученный на этапе 2) в ответ будет отображен статус: <200 leave OK> +``` + +p.s. для hi3516ev300 и gk7205v300 на базе прошивки OpenIpc, собранные пакеты можно взять [здесь](https://github.com/cronyx/zerotier-openipc), проверить наличие места в оверлее, необходимо не менее 2.5Mb, распаковать и залить все файлы согласно дереву каталогов, выполнить п.1-4 настройки и подключения. \ No newline at end of file diff --git a/general/package/zerotier-one/zerotier-one.mk b/general/package/zerotier-one/zerotier-one.mk new file mode 100644 index 00000000..73e951ee --- /dev/null +++ b/general/package/zerotier-one/zerotier-one.mk @@ -0,0 +1,28 @@ +################################################################################ +# +# zerotier-one +# +################################################################################ + +ZEROTIER_ONE_VERSION = bd9c8d65ef6530ee5d14293a6d60cd2d4953ee05 +ZEROTIER_ONE_SITE = $(call github,zerotier,ZeroTierOne,$(ZEROTIER_ONE_VERSION)) +# ZEROTIER_ONE_DEPENDENCIES += libminiupnpc libnatpmp +ZEROTIER_ONE_LICENSE = BUSL-1.1 +ZEROTIER_ONE_LICENSE_FILES = LICENSE.txt + +ZEROTIER_ONE_MAKE_OPTS = \ + CC="$(TARGET_CC)" \ + CXX="$(TARGET_CXX)" + +define ZEROTIER_ONE_BUILD_CMDS + $(MAKE) $(ZEROTIER_ONE_MAKE_OPTS) -C $(@D) all +endef + +define ZEROTIER_ONE_INSTALL_TARGET_CMDS +# $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) install + + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d + cp ../general/package/zerotier-one/files/S90zerotier $(TARGET_DIR)/etc/init.d +endef + +$(eval $(generic-package)) diff --git a/scripts/executing_commands_for_musl.sh b/scripts/executing_commands_for_musl.sh index 6e1ca6c3..183c7d65 100755 --- a/scripts/executing_commands_for_musl.sh +++ b/scripts/executing_commands_for_musl.sh @@ -13,7 +13,7 @@ ln -sfv /lib/libc.so ${TARGET_DIR}/lib/ld-uClibc.so.0 ln -sfv ../../lib/libc.so ${TARGET_DIR}/usr/bin/ldd # -if grep -q ^BR2_PACKAGE_WIFIBROADCAST=y ${BR2_CONFIG} +if grep -q ^BR2_PACKAGE_WIFIBROADCAST=y ${BR2_CONFIG} || grep -q ^BR2_PACKAGE_ZEROTIER_ONE=y ${BR2_CONFIG} then echo "Keep libsdc++..." else From cb85b637b652c5e7985d4a3a73647ed4911e6d0c Mon Sep 17 00:00:00 2001 From: cronyx Date: Thu, 14 Apr 2022 17:34:16 +0300 Subject: [PATCH 2/3] fix typo --- general/package/zerotier-one/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general/package/zerotier-one/readme.md b/general/package/zerotier-one/readme.md index 7eb0d193..f6ff6231 100644 --- a/general/package/zerotier-one/readme.md +++ b/general/package/zerotier-one/readme.md @@ -26,7 +26,7 @@ zerotier-cli join network_id где (ID сети полученный на эт Настройка завершена. -Вся конфигурация конфигурация хранится в /var/lib/zerotier-one, покинуть сеть (отключиться) можно выполнив команду в консоли: +Вся конфигурация хранится в /var/lib/zerotier-one, покинуть сеть (отключиться) можно выполнив команду в консоли: ``` zerotier-cli leave network_id где (ID сети полученный на этапе 2) в ответ будет отображен статус: <200 leave OK> From 1fd7278e043e43a634903c2a3372e003e119718e Mon Sep 17 00:00:00 2001 From: cronyx Date: Mon, 18 Apr 2022 20:23:55 +0300 Subject: [PATCH 3/3] some small changes and improvements --- general/package/zerotier-one/0001-makefile.patch | 6 +++--- general/package/zerotier-one/files/S90zerotier | 5 +++-- general/package/zerotier-one/readme.md | 4 ++-- general/package/zerotier-one/zerotier-one.mk | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/general/package/zerotier-one/0001-makefile.patch b/general/package/zerotier-one/0001-makefile.patch index 873c02d3..08746d98 100644 --- a/general/package/zerotier-one/0001-makefile.patch +++ b/general/package/zerotier-one/0001-makefile.patch @@ -1,5 +1,5 @@ ---- a/make-linux.mk 2022-04-13 12:12:52.070856266 +0300 -+++ b/make-linux.mk 2022-04-13 12:17:32.643372724 +0300 +--- a/make-linux.mk 2022-04-18 13:32:33.520498886 +0300 ++++ b/make-linux.mk 2022-04-18 13:35:04.312959847 +0300 @@ -25,8 +25,8 @@ # otherwise build into binary as done on Mac and Windows. ONE_OBJS+=osdep/PortMapper.o @@ -20,7 +20,7 @@ ONE_OBJS+=ext/libnatpmp/natpmp.o ext/libnatpmp/getgateway.o else LDLIBS+=-lnatpmp -@@ -306,8 +306,8 @@ +@@ -312,8 +312,8 @@ override CXXFLAGS+=-march=armv5t -mfloat-abi=soft -msoft-float -mno-unaligned-access -marm ZT_USE_ARM32_NEON_ASM_CRYPTO=0 else diff --git a/general/package/zerotier-one/files/S90zerotier b/general/package/zerotier-one/files/S90zerotier index 2215ff4f..36aaccf9 100755 --- a/general/package/zerotier-one/files/S90zerotier +++ b/general/package/zerotier-one/files/S90zerotier @@ -10,10 +10,11 @@ case "$1" in /usr/sbin/zerotier-one -d ;; stop) + echo "Stopping zerotier-one daemon..." kill -9 $(pidof zerotier-one) /sbin/rmmod -w tun ;; *) - echo "Usage: $0 {start|stop}" - exit 1 + echo "Usage: $0 {start|stop}" + exit 1 esac diff --git a/general/package/zerotier-one/readme.md b/general/package/zerotier-one/readme.md index f6ff6231..2c73de6a 100644 --- a/general/package/zerotier-one/readme.md +++ b/general/package/zerotier-one/readme.md @@ -14,7 +14,7 @@ ln -sf zerotier-one zerotier-idtool # Быстрый старт -1. Зарегистироваться на https://my.zerotier.com +1. Зарегистироваться на [my.zerotier.com](https://my.zerotier.com) 2. Получить ID сети, настроить сеть как приватную. 3. Из консоли камеры (web консоль или ssh) выполнить: @@ -22,7 +22,7 @@ ln -sf zerotier-one zerotier-idtool zerotier-cli join network_id где (ID сети полученный на этапе 2) в ответ будет отображен статус: <200 join OK> ``` -4. Перейти в веб интерфейс на htts://my.zerotier.com и авторизовать только что подключенную камеру, авторизация происходит методом установки галочки напротив соотвествующего пира. +4. Перейти в веб интерфейс на [my.zerotier.com](https://my.zerotier.com) и авторизовать только что подключенную камеру, авторизация происходит методом установки галочки напротив соотвествующего пира. Настройка завершена. diff --git a/general/package/zerotier-one/zerotier-one.mk b/general/package/zerotier-one/zerotier-one.mk index 73e951ee..cfc213b0 100644 --- a/general/package/zerotier-one/zerotier-one.mk +++ b/general/package/zerotier-one/zerotier-one.mk @@ -4,7 +4,7 @@ # ################################################################################ -ZEROTIER_ONE_VERSION = bd9c8d65ef6530ee5d14293a6d60cd2d4953ee05 +ZEROTIER_ONE_VERSION = 1294767b44c20faf069f5ddbe287fb96ad0750d1 ZEROTIER_ONE_SITE = $(call github,zerotier,ZeroTierOne,$(ZEROTIER_ONE_VERSION)) # ZEROTIER_ONE_DEPENDENCIES += libminiupnpc libnatpmp ZEROTIER_ONE_LICENSE = BUSL-1.1