Coder Social home page Coder Social logo

zerotier-openwrt's Introduction

ZeroTier-OpenWrt

ZeroTier has been merged into the official package repository and can be selected using the opkg package management tool.

ZeroTier One is a program to create a global provider-independent virtual private cloud. This project offers OpenWrt packages for ZeroTier.

Installing package

Download the prebuild package and copy it onto your OpenWrt installation, preferably into the /tmp folder.

Then install the ipk package file:

opkg install zerotier_*.ipk

Now enable ZeroTier:

uci set zerotier.sample_config.enabled='1'
uci commit zerotier

Now start ZeroTier

/etc/init.d/zerotier start

Compiling from Sources

To include ZeroTier One into your OpenWrt image or to create an .ipk package (equivalent to Debians .deb files), you have to build an OpenWrt image.

To build OpenWrt on Debian, you need to install these packages:

sudo apt-get install subversion g++ zlib1g-dev build-essential git python
sudo apt-get install libncurses5-dev gawk gettext unzip file libssl-dev wget

Now prepare OpenWrt:

git clone https://github.com/openwrt/openwrt
cd openwrt

./scripts/feeds update -a
./scripts/feeds install -a

Now you can insert the zerotier package using a package feed (see Add package by feed) or add the package manually (see Add package by hand).

Add package by feed

A feed is the standard way packages are made available to the OpenWrt build system.

Put this line in your feeds list file (e.g. feeds.conf, or feeds.conf.default)

src-git zerotier https://github.com/mwarning/zerotier-openwrt.git

Update and install the new feed

./scripts/feeds update zerotier
./scripts/feeds install zerotier

Now continue with the building packages section (see Building Packages).

Add package by hand

git clone https://github.com/mwarning/zerotier-openwrt.git
cp -rf zerotier-openwrt/zerotier package/
rm -rf zerotier-openwrt/

Now continue with the building packages section (see Building Packages).

Building Packages

Configure packages:

make menuconfig

Now select the appropiate "Target System" and "Target Profile" depending on what target chipset/router you want to build for. Also mark the ZeroTier package under Network ---> VPN ---> <*> zerotier.

Now compile/build everything:

make -j8

The images and all *.ipk packages are now inside the bin/ folder, including the zerotier package. You can install the ZeroTier .ipk on the target device using opkg install <ipkg-file>.

For details please check the OpenWrt documentation.

Build bulk packages

For a release, it is useful the build packages at a bulk for multiple targets:

#!/bin/sh

# dump-target-info.pl is used to get all targets configurations:
# https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=scripts/dump-target-info.pl

./scripts/dump-target-info.pl architectures | while read pkgarch target1 rest; do
  echo "CONFIG_TARGET_${target1%/*}=y" > .config
  echo "CONFIG_TARGET_${target1%/*}_${target1#*/}=y" >> .config
  echo "CONFIG_PACKAGE_example1=y" >> .config

  # Debug output
  echo "pkgarch: $pkgarch, target1: $target1"

  make defconfig
  make -j4 tools/install
  make -j4 toolchain/install

  # Build package
  make package/zerotier/{clean,compile}

  # Free space (optional)
  rm -rf build_dir/target-*
  rm -rf build_dir/toolchain-*
done

zerotier-openwrt's People

Contributors

adam-qomodo avatar mdornseif avatar muebau avatar mwarning avatar riptidewave93 avatar sadpencil avatar sbilly avatar silex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zerotier-openwrt's Issues

Mikrotik

Hi there,

Would this be able to be ported to a Mikrotik (RouterOS) package

Regards,

SSE2 instruction set not enabled

Hi,

This would not compile for me, I get the following:

In file included from node/Salsa20.hpp:20:0,
                 from node/Identity.cpp:36:
/home/raarts/openwrt/staging_dir/toolchain-i386_i486_gcc-4.8-linaro_uClibc-0.9.33.2/lib/gcc/i486-openwrt-linux-uclibc/4.8.3/include/emmintrin.h:31:3: error: #error "SSE2 instruction set not enabled"
 # error "SSE2 instruction set not enabled"
   ^
In file included from node/Identity.cpp:36:0:
node/Salsa20.hpp:82:3: error: '__m128i' does not name a type
   __m128i v[4];
   ^

Now I can disable SSE2 in the zerotier-one Makefile, by just removing it, but I am wondering why it compiled for you.

Generate Secret Issue After Upgrade To 1.2.4-3

I had ZeroTier working fine on an ESR900 with the 1.1.4 standard version that populated OpenWrt. I am planning to put this router in a remote site so thought I would upgrade and try it out for a while. I followed your instructions and upgraded ZeroTier - everything appears to have occurred properly. I rebooted the router and noticed that my working configuration was gone - replaced by the sample again. I started to recreate the network by following your instructions on this site again but ran into a problem trying to generate the secret. I got the following output:

root@LEDE:/lib/network# zerotier.sample_config.interface='wan'
-ash: zerotier.sample_config.interface=wan: not found
root@LEDE:/lib/network# zerotier.sample_config.secret='generate'
-ash: zerotier.sample_config.secret=generate: not found
root@LEDE:/lib/network# zerotier.sample_config.join='8056c2e21c000001'
-ash: zerotier.sample_config.join=8056c2e21c000001: not found
root@LEDE:/lib/network# zerotier.lede_network=zerotier
-ash: zerotier.lede_network=zerotier: not found
root@LEDE:/lib/network# zerotier.lede_network.interface='wan'
-ash: zerotier.lede_network.interface=wan: not found
root@LEDE:/lib/network# zerotier.lede_network.join='8ad5123ed69d6f69'
-ash: zerotier.lede_network.join=8ad5123ed69d6f69: not found
root@LEDE:/lib/network# zerotier.lede_network.enabled='1'
-ash: zerotier.lede_network.enabled=1: not found
root@LEDE:/lib/network# root@LEDE:~# uci set zerotier.lede_network.secret="$(cat
/var/lib/zerotier-one/i
> dentity.secret)"
cat: can't open '/var/lib/zerotier-one/i': No such file or directory
-ash: dentity.secret: not found
-ash: root@LEDE:~#: not found
root@LEDE:/lib/network# cat: can't open '/var/lib/zerotier-one/identity.secret':
No such file or directory
> root@LEDE:~# cd ..
> root@LEDE:/# ls
> bin      etc      lib      overlay  rom      sbin     tmp      var
> dev      init     mnt      proc     root     sys      usr      www
> root@LEDE:/# cd var
> root@LEDE:/tmp# cd ..
> root@LEDE:/# cd ..
> root@LEDE:/# ls
> bin      etc      lib      overlay  rom      sbin     tmp      var
> dev      init     mnt      proc     root     sys      usr      www
> root@LEDE:/# cd lib
> root@LEDE:/lib# ls
> ar71xx.sh             libfstools.so         modules
> config                libgcc_s.so.1         netifd
> firmware              libjson_script.so     network
> functions             libsetlbf.so          preinit
> functions.sh          libubox.so            uboot-envtools.sh
> ld-musl-mips-sf.so.1  libubus.so            upgrade
> libblobmsg_json.so    libuci.so             wifi
> libc.so               libvalidate.so
> root@LEDE:/lib# cd config
> root@LEDE:/lib/config# ls
> uci.sh
> root@LEDE:/lib/config# cd ..
> root@LEDE:/lib# cd network
> root@LEDE:/lib/network# ls
> config.sh  switch.sh
> root@LEDE:/lib/network#

I am guessing that I am missing a new location and did an initial look but was unable to identify anything obvious and was hopeful that you would be able to provide the update easily.....
Thanks in advance for your assistance....

Unable to auto start and Device ID will regenerate every time reboot

I follow the installation guide and success to compile the latest binary version 1.1.2 for my TP-Link 1043ND - OpenWrt Chaos Calmer 15.05 / LuCI (git-15.248.30277-3836b45) , I have try to enable the service to run "/etc/init.d/zerotier enable" after install complete, but when every-time reboot the OpenWRT, I check with the service status still show offline "zerotier-cli info", when I manual to start the daemon "zerotier-one -d" the device ID will regenerate a new one, the existing device ID will not be re-use and the device will need to set "allowed" in zerotier configuration webpage, sorry I still a newbie for openwrt, I don't know how to control the service to start-up properly and I not see the issue happen in other platform , such as Windows / Linux.

The CPU utilization reaches more than 75% when I forward traffic using zt interface

I have installed zerotier in my openwrt Access Point.
And created tunnel interface zt between two devices and run the iperf test.
I could see the zerotier takes more than 75% cpu. I believe its not recommended.
Any suggestion to reduce the cpu utilization is much appreciated.

-Load average: 0.68 0.29 0.18 3/57 1176
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
1062 1 root R 16456 13% 77% /usr/bin/zerotier-one
1176 406 root R 1204 1% 0% top
3 2 root SW 0 0% 0% [ksoftirqd/0]
1146 1 dnsmasq S 1068 1% 0% /usr/sbin/dnsmasq -C /var/etc/dnsmasq
847 1 mosquitt S 3172 3% 0% mosquitto -c /etc/mosquitto/mosquitto
683 1 nobody S 2260 2% 0% /usr/sbin/mdnsd -debug
590 1 root S 1696 1% 0% /sbin/netifd
1 0 root S 1540 1% 0% /sbin/procd
616 1 root S 1428 1% 0% /usr/sbin/odhcpd
539 1 root S 1236 1% 0% /sbin/logd -S 64
406 1 root S 1208 1% 0% /bin/ash --login
727 590 root S 1204 1% 0% udhcpc -p /var/run/udhcpc-eth0.2.pid
405 1 root S 1188 1% 0% /sbin/ubusd
775 1 root S 1176 1% 0% /usr/bin/mDNSResponder -b -f /etc/mDN
646 1 root S 1068 1% 0% /usr/sbin/dropbear -F -P /var/run/dro
737 590 root S 1028 1% 0% odhcp6c -s /lib/netifd/dhcpv6.script
241 2 root SW 0 0% 0% [kworker/1:1]
143 2 root SW 0 0% 0% [kworker/0:1]
240 2 root SW 0 0% 0% [spi32766]
355 2 root SWN 0 0% 0% [jffs2_gcd_mtd6]

unable to leave 8056c2e21c000001[bug?]

Find in OpenWrt Chaos Calmer 15.05.1
tried to zerotier-cli leave 8056c2e21c000001
tried to rm -rf /tmp/lib/zerotier-one/networks.d/8056c2e21c000001.conf
everytime i start it I should type zerotier-cli leave 8056c2e21c000001

ZEROTIER - OPENWRT

I installed OpenWRT 18.06.1 on a Linksys EA3500 router. According to the OpenWRT page on the device the package is "arm_xscale". Then I proceed to install Zerotier but I get this error below:

root@OpenWrt:/tmp/juke# opkg install zerotier Installing zerotier (1.2.4-2) to root... Downloading http://downloads.openwrt.org/snapshots/trunk/kirkwood/generic/packages/packages/zerotier_1.2.4-2_kirkwood.ipk. Configuring zerotier. Generate secret - please wait... Segmentation fault cat: can't open '/tmp/zt.sample_config.secret': No such file or directory rm: can't remove '/tmp/zt.sample_config.secret': No such file or directory

Can anyone help? Thanks.

local.conf usage

I would like to use local.conf to disable some interfaces, etc. Currently this file will be lost with service disable/enable. Any recommendations?

Having a Client pass through and be assigned IP By ZeroTier

I installed ZerTier on my R6100. The R6100 is acting as a bridge between my LAN and my ZeroTier Network. My local Lan is on a 192.168.2.xxx subnet. My ZeroTier Network is assigning 172.28.28.xxx. I need a device that connects to my local LAN to be managed directly by the ZeroTier network and receive a 172.28.28.xxx IP. So basically pass through the R6100 to show as a client on Zerotier. Is this possible?

Cannot autostart multiple networks

Have the following config to connect two networks:

config zerotier 'net1'
	option enabled '1'
	option secret 'secret'
	list join 'somenet'

config zerotier 'net2'
	option enabled '1'
	option secret 'secret'
	list join 'anothernet'

On reboot only 'net2' starts, manually joining the 'net1' works and if I comment following line:

Both networks are started on restart. Seems like removing the config folder every time a instance starts has the consequence that only the last net autostart.

NEW ID AND ADDRESS AFTER EACH REBOOT

I compiled Openwrt with support for Zerotier as described in the readme of this Git post. My issue now is that a new address and entry is generated on myzerotier.com each time the router is rebooted? How is this resolved? This is my
/etc/config/zerotier;

config zerotier 'mgmt_net'
option enabled '1'
option secret 'generate'
list join 'my network id'

Edit: The MAC address of the virtual Zerotier adapter also changes with every reboot.

Could bind to the port 9993@Openwrt 18.06, WNDR3800

When I tried zerotier-cli listnetworks, it turned to Please check that the service is running and that TCP port 9993 can be contacted via 127.0.0.1.
There were no anything else to bind this port.I have no idea what's wrong.

0 join connection failed

Hello guys, I've tried to install zerotier package to my router TP-Link 4300 v1
LEDE version: LEDE Reboot 17.01-SNAPSHOT r3600-d77fe92 / LuCI lede-17.01 branch ( Trunk )
Kernel Version | 4.4.102
Package installed: zerotier_1.2.4-2_mips_24kc.ipk

My steps:
root@TPLINK4300:~# opkg update

scp ./Downloads/zerotier_1.2.4-2_mips_24kc.ipk [email protected]:/tmp

root@TPLINK4300:~# cd /tmp

root@TPLINK4300:/tmp# opkg install /tmp/zerotier_1.2.4-2_mips_24kc.ipk

Installing zerotier (1.2.4-2) to root...
Installing libstdcpp (5.4.0-1) to root...
Downloading http://downloads.lede-project.org/releases/17.01.4/targets/ar71xx/generic/packages/libstdcpp_5.4.0-1_mips_24kc.ipk
Installing libminiupnpc (1.9-1) to root...
Downloading http://downloads.lede-project.org/releases/17.01.4/packages/mips_24kc/packages/libminiupnpc_1.9-1_mips_24kc.ipk
Installing libnatpmp (20140401-1) to root...
Downloading http://downloads.lede-project.org/releases/17.01.4/packages/mips_24kc/packages/libnatpmp_20140401-1_mips_24kc.ipk
Configuring libstdcpp.
Configuring libminiupnpc.
Configuring libnatpmp.
Configuring zerotier.
Generate secret - please wait...

root@TPLINK4300:/tmp#
root@TPLINK4300:/tmp# /etc/init.d/zerotier start
root@TPLINK4300:/tmp# zerotier-cli join xxxxx
0 join connection failed
root@TPLINK4300:/tmp#

root@TPLINK4300:/tmp# /etc/init.d/firewall stop

Warning: Unable to locate ipset utility, disabling ipset support
 * Flushing IPv4 filter table
 * Flushing IPv4 nat table
 * Flushing IPv4 mangle table
 * Flushing IPv6 filter table
 * Flushing IPv6 mangle table
 * Flushing conntrack table ...
Command failed: Not found

root@TPLINK4300:/tmp# /etc/init.d/zerotier restart
root@TPLINK4300:/tmp# zerotier-cli join xxxxx
0 join connection failed

root@TPLINK4300:~# ps|grep zerotier
2120 root 1420 S grep zerotier

if I missed something? or my device isn't supported?

zerotier device names and MTU

To prevent garbage device names I must keep a file /var/lib/zerotier-one/devicemap. On a start zerotier recreates a whole bunch, and on a stop it removes ALL of it. This makes it unmanagable and it forces needles writes. Please keep some configfile(s) that can set the device name and MTU of that device. (MTU must be low to keep an ssh connection (A-NAT--NAT-B) possible.)
BTW, zerotier on 18.06.0-rc1/2 and snapshot is disfunctional. I must use 18.06.0 now.

SDK cross-compilation error, how to solve this

bbb@Bin-Ubuntu:~/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2$ make package/feeds/zerotier/zerotier/compile V=99
/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: package/OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/mipsel-openwrt-linux-uclibc/lib/lib': Too many levels of symbolic links /home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: package/OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/lib64/lib': Too many levels of symbolic links
/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: package/OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/mipsel-openwrt-linux/lib/lib': Too many levels of symbolic links /home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: package/OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/lib32/lib': Too many levels of symbolic links
/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: `package/OpenWrt-Toolchain-ramips-for-mipsel_24kec+dsp-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/lib/lib': Too many levels of symbolic links
Config-build.in:4451:warning: defaults for choice values not supported

configuration written to .config

make[1]: Entering directory '/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2'
make[2]: Entering directory '/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/feeds/zerotier/zerotier'
CFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=24kec -mdsp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -ffunction-sections -fdata-sections -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/include " CXXFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=24kec -mdsp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -ffunction-sections -fdata-sections -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/include " LDFLAGS="-L/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/lib -L/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/lib -L/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/usr/lib -L/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/lib -Wl,--gc-sections " make -C /home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/ZeroTierOne-1.2.12/. AR=mipsel-openwrt-linux-uclibc-ar AS="ccache_cc -c -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kec -mdsp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -ffunction-sections -fdata-sections" LD=mipsel-openwrt-linux-uclibc-ld NM=mipsel-openwrt-linux-uclibc-nm CC="ccache_cc" GCC="ccache_cc" CXX="ccache_cxx" RANLIB=mipsel-openwrt-linux-uclibc-ranlib STRIP=mipsel-openwrt-linux-uclibc-strip OBJCOPY=mipsel-openwrt-linux-uclibc-objcopy OBJDUMP=mipsel-openwrt-linux-uclibc-objdump SIZE=mipsel-openwrt-linux-uclibc-size CROSS="mipsel-openwrt-linux-uclibc-" ARCH="mipsel" DEFS="" one;
make[3]: Entering directory '/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/ZeroTierOne-1.2.12'
ccache_cxx -Os -pipe -mno-branch-likely -mips32r2 -mtune=24kec -mdsp -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -msoft-float -ffunction-sections -fdata-sections -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/usr/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/include -Wall -Wno-deprecated -std=c++11 -pthread -DNDEBUG -DZT_USE_MINIUPNPC -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 -DZT_NO_TYPE_PUNNING -DZT_BUILD_PLATFORM=1 -DZT_BUILD_ARCHITECTURE=5 -DZT_SOFTWARE_UPDATE_DEFAULT=""disable"" -D_MT_ALLOCATOR_H -D_POOL_ALLOCATOR_H -D_EXTPTR_ALLOCATOR_H -D_DEBUG_ALLOCATOR_H -c -o controller/EmbeddedNetworkController.o controller/EmbeddedNetworkController.cpp
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp:67:10: error: #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers"
#error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers"
^
controller/../osdep/../ext/json/json.hpp: In static member function 'static std::string nlohmann::detail::exception::name(const string&, int)':
controller/../osdep/../ext/json/json.hpp:217:51: error: 'to_string' is not a member of 'std'
return "[json.exception." + ename + "." + std::to_string(id_) + "] ";
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In static member function 'static nlohmann::detail::parse_error nlohmann::detail::parse_error::create(int, std::size_t, const string&)':
controller/../osdep/../ext/json/json.hpp:282:49: error: 'to_string' is not a member of 'std'
(byte_ != 0 ? (" at " + std::to_string(byte_)) : "") +
^
controller/../osdep/../ext/json/json.hpp: In static member function 'static void nlohmann::detail::lexer::strtof(float&, const char*, char**)':
controller/../osdep/../ext/json/json.hpp:2265:13: error: 'strtof' is not a member of 'std'
f = std::strtof(str, endptr);
^
controller/../osdep/../ext/json/json.hpp:2265:13: note: suggested alternative:
In file included from controller/EmbeddedNetworkController.cpp:21:0:
/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/include/stdlib.h:187:14: note: 'strtof'
extern float strtof (__const char __restrict __nptr,
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In static member function 'static void nlohmann::detail::lexer::strtof(long double&, const char
, char**)':
controller/../osdep/../ext/json/json.hpp:2275:13: error: 'strtold' is not a member of 'std'
f = std::strtold(str, endptr);
^
controller/../osdep/../ext/json/json.hpp:2275:13: note: suggested alternative:
In file included from controller/EmbeddedNetworkController.cpp:21:0:
/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/include/stdlib.h:190:20: note: 'strtold'
extern long double strtold (__const char __restrict __nptr,
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In member function 'nlohmann::detail::lexer::token_type nlohmann::detail::lexer::scan_number()':
controller/../osdep/../ext/json/json.hpp:2604:28: error: 'strtoull' is not a member of 'std'
const auto x = std::strtoull(yytext.data(), &endptr, 10);
^
controller/../osdep/../ext/json/json.hpp:2604:28: note: suggested alternative:
In file included from controller/EmbeddedNetworkController.cpp:21:0:
/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/include/stdlib.h:232:31: note: 'strtoull'
extern unsigned long long int strtoull (__const char __restrict __nptr,
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp:2620:28: error: 'strtoll' is not a member of 'std'
const auto x = std::strtoll(yytext.data(), &endptr, 10);
^
controller/../osdep/../ext/json/json.hpp:2620:28: note: suggested alternative:
In file included from controller/EmbeddedNetworkController.cpp:21:0:
/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/include/stdlib.h:227:22: note: 'strtoll'
extern long long int strtoll (__const char __restrict __nptr,
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In member function 'std::string nlohmann::detail::iteration_proxy::iteration_proxy_internal::key() const':
controller/../osdep/../ext/json/json.hpp:4226:28: error: 'to_string' is not a member of 'std'
return std::to_string(array_index);
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In static member function 'static void nlohmann::detail::serializer::throw_if_invalid_utf8(const string&)':
controller/../osdep/../ext/json/json.hpp:6803:85: error: 'to_string' is not a member of 'std'
JSON_THROW(type_error::create(316, "invalid UTF-8 byte at index " + std::to_string(i) + ": 0x" + ss.str()));
^
controller/../osdep/../ext/json/json.hpp:94:41: note: in definition of macro 'JSON_THROW'
#define JSON_THROW(exception) throw exception
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In static member function 'static int nlohmann::json_pointer::array_index(const string&)':
controller/../osdep/../ext/json/json.hpp:7025:25: error: 'stoi' is not a member of 'std'
const int res = std::stoi(s, &processed_chars);
^
controller/../osdep/../ext/json/json.hpp: In static member function 'static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::meta()':
controller/../osdep/../ext/json/json.hpp:7542:62: error: 'to_string' is not a member of 'std'
result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(GNUC) + "." + std::to_string(GNUC_MINOR) + "." + std::to_string(GNUC_PATCHLEVEL)}};
^
controller/../osdep/../ext/json/json.hpp:7542:95: error: 'to_string' is not a member of 'std'
result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(GNUC) + "." + std::to_string(GNUC_MINOR) + "." + std::to_string(GNUC_PATCHLEVEL)}};
^
controller/../osdep/../ext/json/json.hpp:7542:134: error: 'to_string' is not a member of 'std'
result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(GNUC) + "." + std::to_string(GNUC_MINOR) + "." + std::to_string(GNUC_PATCHLEVEL)}};
^
controller/../osdep/../ext/json/json.hpp:7558:37: error: 'to_string' is not a member of 'std'
result["compiler"]["c++"] = std::to_string(__cplusplus);
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In member function 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::value_type& nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::at(nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::size_type)':
controller/../osdep/../ext/json/json.hpp:9991:71: error: 'to_string' is not a member of 'std'
JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range"));
^
controller/../osdep/../ext/json/json.hpp:94:41: note: in definition of macro 'JSON_THROW'
#define JSON_THROW(exception) throw exception
^
controller/../osdep/../ext/json/json.hpp: In member function 'const value_type& nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::at(nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::size_type) const':
controller/../osdep/../ext/json/json.hpp:10038:71: error: 'to_string' is not a member of 'std'
JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range"));
^
controller/../osdep/../ext/json/json.hpp:94:41: note: in definition of macro 'JSON_THROW'
#define JSON_THROW(exception) throw exception
^
controller/../osdep/../ext/json/json.hpp: In member function 'void nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::erase(nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::size_type)':
controller/../osdep/../ext/json/json.hpp:10927:71: error: 'to_string' is not a member of 'std'
JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range"));
^
controller/../osdep/../ext/json/json.hpp:94:41: note: in definition of macro 'JSON_THROW'
#define JSON_THROW(exception) throw exception
^
controller/../osdep/../ext/json/json.hpp: In lambda function:
controller/../osdep/../ext/json/json.hpp:14009:87: error: 'to_string' is not a member of 'std'
JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range"));
^
controller/../osdep/../ext/json/json.hpp:94:41: note: in definition of macro 'JSON_THROW'
#define JSON_THROW(exception) throw exception
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In static member function 'static nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer> nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>::diff(const nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>&, const nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>&, const string&)':
controller/../osdep/../ext/json/json.hpp:14255:82: error: 'to_string' is not a member of 'std'
auto temp_diff = diff(source[i], target[i], path + "/" + std::to_string(i));
^
controller/../osdep/../ext/json/json.hpp:14272:51: error: 'to_string' is not a member of 'std'
{"path", path + "/" + std::to_string(i)}
^
controller/../osdep/../ext/json/json.hpp:14283:51: error: 'to_string' is not a member of 'std'
{"path", path + "/" + std::to_string(i)},
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In member function 'nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>& nlohmann::json_pointer::get_checked(nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>
) const':
controller/../osdep/../ext/json/json.hpp:14527:83: error: 'to_string' is not a member of 'std'
"array index '-' (" + std::to_string(ptr->m_value.array->size()) +
^
controller/../osdep/../ext/json/json.hpp:94:41: note: in definition of macro 'JSON_THROW'
#define JSON_THROW(exception) throw exception
^
controller/../osdep/../ext/json/json.hpp: In member function 'const nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>& nlohmann::json_pointer::get_unchecked(const nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>
) const':
controller/../osdep/../ext/json/json.hpp:14581:83: error: 'to_string' is not a member of 'std'
"array index '-' (" + std::to_string(ptr->m_value.array->size()) +
^
controller/../osdep/../ext/json/json.hpp:94:41: note: in definition of macro 'JSON_THROW'
#define JSON_THROW(exception) throw exception
^
controller/../osdep/../ext/json/json.hpp: In member function 'const nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>& nlohmann::json_pointer::get_checked(const nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>
) const':
controller/../osdep/../ext/json/json.hpp:14636:83: error: 'to_string' is not a member of 'std'
"array index '-' (" + std::to_string(ptr->m_value.array->size()) +
^
controller/../osdep/../ext/json/json.hpp:94:41: note: in definition of macro 'JSON_THROW'
#define JSON_THROW(exception) throw exception
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In static member function 'static void nlohmann::json_pointer::flatten(const string&, const nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>&, nlohmann::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer>&)':
controller/../osdep/../ext/json/json.hpp:14687:54: error: 'to_string' is not a member of 'std'
flatten(reference_string + "/" + std::to_string(i),
^
In file included from controller/../osdep/OSUtils.hpp:58:0,
from controller/EmbeddedNetworkController.hpp:39,
from controller/EmbeddedNetworkController.cpp:40:
controller/../osdep/../ext/json/json.hpp: In static member function 'static std::string nlohmann::detail::exception::name(const string&, int)':
controller/../osdep/../ext/json/json.hpp:218:5: warning: control reaches end of non-void function [-Wreturn-type]
}
^
: recipe for target 'controller/EmbeddedNetworkController.o' failed
make[3]: *** [controller/EmbeddedNetworkController.o] Error 1
make[3]: Leaving directory '/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/ZeroTierOne-1.2.12'
Makefile:72: recipe for target '/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/ZeroTierOne-1.2.12/.built' failed
make[2]: *** [/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/ZeroTierOne-1.2.12/.built] Error 2
make[2]: Leaving directory '/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/feeds/zerotier/zerotier'
package/Makefile:173: recipe for target 'package/feeds/zerotier/zerotier/compile' failed
make[1]: *** [package/feeds/zerotier/zerotier/compile] Error 2
make[1]: Leaving directory '/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2'
/home/bbb/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/include/toplevel.mk:164: recipe for target 'package/feeds/zerotier/zerotier/compile' failed
make: *** [package/feeds/zerotier/zerotier/compile] Error 2

segmentation fault

Segfault on zerotier 1.1.14

CONFIG_TARGET_ar71xx=y
CONFIG_TARGET_ar71xx_generic_WZRHPAG300H=y

Here is some debugger info:

[Tue Aug  2 07:50:03 2016] node/Switch.cpp:637 sending NAT-t message to     xxxxxxxx (xxx.xxx.xxx.xxx/45166) 
[New LWP 8178]

Program received signal SIGSEGV, Segmentation fault. 
[Switching to LWP 8178]
splice (i=..., x=..., position=..., this=0x76d7ffb0)
at /openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/uClibc++/list:608
608 /openwrt/staging_dir/target-mips_34kc_uClibc-    0.9.33.2/usr/include/uClibc++/list: No such file or directory.
(gdb) bt 
#0  splice (i=..., x=..., position=..., this=0x76d7ffb0)
    at /openwrt/staging_dir/target-mips_34kc_uClibc- 0.9.33.2/usr/include/uClibc++/list:608
#1  ZeroTier::DeferredPackets::process (this=0x4e63b8)
at node/DeferredPackets.cpp:89 
#2  0x0042250a in ZeroTier::Node::backgroundThreadMain (this=0x4e1f78)
at node/Node.cpp:647
#3  0x0044f8fa in threadMain (warning: GDB can't find the start of the function at     0x77fc678a.

    GDB is unable to find the start of the function at 0x77fc678a
and thus can't determine the size of that function's stack frame.
This means that GDB may be unable to access that stack frame, or
the frames below it.
This problem is most likely caused by an invalid program counter or
stack pointer.
However, if you think GDB should simply search farther back
from 0x77fc678a for code which looks like the beginning of a
function, you can increase the range of the search using the `set
heuristic-fence-post' command.
this=<optimized out>) at service/../node/Node.hpp:130
#4  ZeroTier::___zt_threadMain<ZeroTier::Node> (instance=<optimized out>)
at service/../osdep/Thread.hpp:113
#5  0x77fc678c in ?? ()
(gdb) up
#1  ZeroTier::DeferredPackets::process (this=0x4e63b8)
    at node/DeferredPackets.cpp:89
89  node/DeferredPackets.cpp: No such file or directory.
(gdb) print _q
$1 = {list_start = 0x4e3668, list_end = 0x4e3668, elements = 1, 
  a = {<No data fields>}}
(gdb) print pkt
$2 = {list_start = 0x4e7af8, list_end = 0x4e7af8, elements = 0, 
  a = {<No data fields>}}

HIGH CPU USAGE LEDE 17.01.6

I am currently running Zerotier 1.1.14 on LEDE 17.01.6 on a Linksys EA3500 router. CPU and memory usage by Zerotier seems high all of the time, for example, at 25% and 49%, respectively. I compiled LEDE and Zerotier myself by following the guide in the readme of this repository. I would like to try a later version to see if this solves the problem. How do I upgrade to a later(or latest) version of Zerotier? I thought by adding the line below to feeds.conf.default it would have pull the latest version. Your help is appreciated. Thanks.

src-git zerotier https://github.com/mwarning/zerotier-openwrt.git

Error message when compile in openwrt

Hi Master, I have follow your instruction to compile the zerotier package for openwrt in ubuntu 15.05 but I face the error is follow, would you tell me how to solve this, thank you so much.


make[1] package/zerotier/compile
make[2] -C package/libs/toolchain compile
make -r package/zerotier/compile: build failed. Please re-run make with -j1 V=s to see what's going on

make: *** [package/zerotier/compile] Error 1

Can`t compile for BRCM47xxx

I followed all instructions and also searched through other forums and found no solution :-(

http://pastebin.com/XGk8HLwe

virtual@virtual-Parallels-Virtual-Platform:~/openwrt$ make
make[1] world
make[2] toolchain/install
make[3] -C toolchain/gdb prepare
make[3] -C toolchain/gdb compile
make[3] -C toolchain/gdb install
make[3] -C toolchain/binutils prepare
make[3] -C toolchain/binutils compile
make[3] -C toolchain/binutils install
make[3] -C toolchain/gcc/minimal prepare
make[3] -C toolchain/gcc/minimal compile
make[3] -C toolchain/gcc/minimal install
make[3] -C toolchain/kernel-headers prepare
make[3] -C toolchain/kernel-headers compile
make[3] -C toolchain/kernel-headers install
make[3] -C toolchain/uClibc/headers prepare
make[3] -C toolchain/uClibc/headers compile
make[3] -C toolchain/uClibc/headers install
make[3] -C toolchain/gcc/initial prepare
make[3] -C toolchain/gcc/initial compile
make[3] -C toolchain/gcc/initial install
make[3] -C toolchain/uClibc prepare
make[3] -C toolchain/uClibc compile
make[3] -C toolchain/uClibc install
make[3] -C toolchain/gcc/final prepare
make[3] -C toolchain/gcc/final compile
make[3] -C toolchain/gcc/final install
make[3] -C toolchain/uClibc/utils prepare
make[3] -C toolchain/uClibc/utils compile
make[3] -C toolchain/uClibc/utils install
make[2] target/compile
make[3] -C target/linux compile
make[2] package/cleanup
make[2] package/compile
make[3] -C package/libs/toolchain compile
make[3] -C package/libs/libnl-tiny compile
make[3] -C package/libs/libjson-c compile
make[3] -C package/utils/lua compile
make[3] -C package/libs/libubox compile
make[3] -C package/system/ubus compile
make[3] -C package/system/uci compile
make[3] -C package/network/config/netifd compile
make[3] -C package/system/opkg host-compile
make[3] -C package/system/ubox compile
make[3] -C package/libs/lzo compile
make[3] -C package/libs/zlib compile
make[3] -C package/libs/ncurses compile
make[3] -C package/utils/util-linux compile
make[3] -C package/utils/ubi-utils compile
make[3] -C package/system/procd compile
make[3] -C package/utils/jsonfilter compile
make[3] -C package/base-files compile
make[3] -C package/kernel/gpio-button-hotplug compile
make[3] -C package/firmware/linux-firmware compile
make[3] -C package/kernel/linux compile
make[3] -C package/network/services/hostapd compile
make[3] -C package/network/utils/iw compile
make[3] -C package/kernel/mac80211 compile
make[3] -C package/network/utils/iptables compile
make[3] -C package/network/config/firewall compile
make[3] -C package/network/config/swconfig compile
make[3] -C package/network/ipv6/odhcp6c compile
make[3] -C package/libs/gmp compile
make[3] -C package/libs/nettle compile
make[3] -C package/network/services/dnsmasq compile
make[3] -C package/network/services/dropbear compile
make[3] -C package/network/services/odhcpd compile
make[3] -C package/libs/libpcap compile
make[3] -C package/network/utils/linux-atm compile
make[3] -C package/network/utils/resolveip compile
make[3] -C package/network/services/ppp compile
make[3] -C package/network/utils/iproute2 compile
make[3] -C package/network/utils/iwinfo compile
make[3] -C package/system/fstools compile
make[3] -C package/system/mtd compile
make[3] -C package/libs/ocf-crypto-headers compile
make[3] -C package/libs/openssl compile
make[3] -C package/system/opkg compile
make[3] -C package/utils/busybox compile
make[3] -C package/utils/nvram compile
make[3] -C package/libs/uclibc++ compile
make[3] -C package/zerotier compile
make -r world: build failed. Please re-run make with V=s to see what's going on
/home/virtual/openwrt/include/toplevel.mk:171: návod pro cíl „world“ selhal

Segmentation fault

Hey, after the update to the latest version (1.1.12) I get the following error:

[207868.474072] zerotier-one[32346]: segfault at 8 ip 0000000000406627 sp 00007ff0dddcdfb0 error 6 in zerotier-one[400000+84000

Sometimes right after I (re)start the service, sometimes after a day or so.
I reinstalled the packages already.

I use openWRT 15.05.1 x86_64

Every time I reboot new Address

Hi,
Every time I reboot the router getting a new address in my.zerotier.com
Is there a way to have it persistent ?
Thanks

No zt0 interface

Some details first:

  • Router: NETGEAR WNDR3700v4
  • Firmware: OpenWrt 18.06.1 r7258-5eb055306f / LuCI openwrt-18.06 branch (git-18.228.31946-f64b152)
  • Kernel: 4.9.120

Problem:

There is no zt0 interface after following instructions.

How to reproduce:

I followed the instructions from the wiki page (https://github.com/mwarning/zerotier-openwrt/wiki). After rebooting my router I could ping it from my local LAN, via mobile network from my smartphone and vice versa. However the instructions state there is a zt0 interface I have to cover via a ZT0 interface (to be honest I do not quite understand that part either). But there is no zt0 interface created by zerotier.

Configs:

#~> uci show zerotier
zerotier.sample_config=zerotier
zerotier.sample_config.enabled='0'
zerotier.sample_config.secret='generate'
zerotier.sample_config.join='8056c2e21c000001'
zerotier.olymp=zerotier
zerotier.olymp.interface='wan'
zerotier.olymp.secret='1234567890'
zerotier.olymp.enabled='1'
zerotier.olymp.join='1234567890'
#~> cat /etc/config/zerotier 

config zerotier 'sample_config'
	option enabled '0'
	option secret 'generate'
	list join '8056c2e21c000001'

config zerotier 'olymp'
	option interface 'wan'
	option secret '1234567890'
	option enabled '1'
	list join '1234567890
#~> ifconfig zt0
ifconfig: zt0: error fetching interface information: Device not found

Segmentation fault on LEDE with 4.9 kernel on bcm4709

Linux LEDE 4.9.65 #0 SMP Wed Nov 29 13:17:19 2017 armv7l GNU/Linux
Segmentation fault occurs when it`s installed from release or built from source code.
However ,zerotier of v1.1.14-4 runs normally ,it is wired.

Building for ar71xx

I try building for TP-LINK WR841ND router.

make[3]: Entering directory '/home/frost/tmp/openwrt/package/zerotier' CFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16 -I/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include " CXXFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16 -I/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include " LDFLAGS="-L/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib -L/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/lib -L/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/lib -L/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib " make -C /home/frost/tmp/openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2/zerotier-1.1.14/. AR="mips-openwrt-linux-uclibc-gcc-ar" AS="mips-openwrt-linux-uclibc-gcc -c -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float" LD=mips-openwrt-linux-uclibc-ld NM="mips-openwrt-linux-uclibc-gcc-nm" CC="mips-openwrt-linux-uclibc-gcc" GCC="mips-openwrt-linux-uclibc-gcc" CXX="mips-openwrt-linux-uclibc-g++" RANLIB="mips-openwrt-linux-uclibc-gcc-ranlib" STRIP=mips-openwrt-linux-uclibc-strip OBJCOPY=mips-openwrt-linux-uclibc-objcopy OBJDUMP=mips-openwrt-linux-uclibc-objdump SIZE=mips-openwrt-linux-uclibc-size CROSS="mips-openwrt-linux-uclibc-" ARCH="mips" ZT_ENABLE_NETWORK_CONTROLLER=1 LDFLAGS+=" -L/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/uClibc++ -pthread " LDLIBS+=" -fno-builtin -nodefaultlibs -Wl,-Bstatic -luClibc++ -Wl,-Bdynamic -lpthread -lm -lc -lsupc++ -lc -lgcc -lgcc_eh -lgcc_s -lpthread -lm " CXXFLAGS+=" -fno-builtin -nostdinc++ -I/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/uClibc++ -DGCC_HASCLASSVISIBILITY -Wall -fPIE -fvisibility=hidden " one; make[4]: Entering directory '/home/frost/tmp/openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2/zerotier-1.1.14' mips-openwrt-linux-uclibc-g++ -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16 -I/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include -fno-builtin -nostdinc++ -I/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/uClibc++ -DGCC_HASCLASSVISIBILITY -Wall -fPIE -fvisibility=hidden -Wall -Wno-unused-result -Wreorder -fPIE -fno-rtti -pthread -DNDEBUG -D_FORTIFY_SOURCE=2 -DZT_ENABLE_NETWORK_CONTROLLER -L/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib -L/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/lib -L/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/lib -L/home/frost/tmp/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib -L/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/lib/uClibc++ -pthread -o zerotier-one node/C25519.o node/CertificateOfMembership.o node/Cluster.o node/DeferredPackets.o node/Identity.o node/IncomingPacket.o node/InetAddress.o node/Multicaster.o node/Network.o node/NetworkConfig.o node/Node.o node/OutboundMulticast.o node/Packet.o node/Path.o node/Peer.o node/Poly1305.o node/Salsa20.o node/SelfAwareness.o node/SHA512.o node/Switch.o node/Topology.o node/Utils.o osdep/BackgroundResolver.o osdep/ManagedRoute.o osdep/Http.o osdep/OSUtils.o service/ClusterGeoIpService.o service/ControlPlane.o ext/lz4/lz4.o ext/http-parser/http_parser.o ext/json-parser/json.o controller/SqliteNetworkController.o service/OneService.o one.o osdep/LinuxEthernetTap.o -fno-builtin -nodefaultlibs -Wl,-Bstatic -luClibc++ -Wl,-Bdynamic -lpthread -lm -lc -lsupc++ -lc -lgcc -lgcc_eh -lgcc_s -lpthread -lm controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::handleControlPlaneHttpDELETE(std::vector<std::string, std::allocatorstd::string > const&, std::map<std::string, std::string, std::lessstd::string, std::allocatorstd::string > const&, std::map<std::string, std::string, std::lessstd::string, std::allocatorstd::string > const&, std::string const&, std::string&, std::string&)':
SqliteNetworkController.cpp:(.text+0x11c): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x132): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x146): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x1c2): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x1d8): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x1ec): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x202): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x218): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x22c): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x27c): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x292): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x2ac): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x2c0): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x2d6): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x2ec): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x306): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x31a): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x32e): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x348): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x35e): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x378): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x38c): undefined reference to sqlite3_step'
controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::_doCPGet(std::vector<std::string, std::allocator<std::string> > const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::string> > const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::string> > const&, std::string const&, std::string&, std::string&)': SqliteNetworkController.cpp:(.text+0x87e): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x8a6): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8de): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x8f2): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x920): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x960): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x996): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x9e0): undefined reference to sqlite3_column_int64' SqliteNetworkController.cpp:(.text+0xae6): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0xb1c): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0xb50): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0xb6e): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0xb8c): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0xbb0): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0xc1e): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0xd8a): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0xdc0): undefined reference to sqlite3_column_bytes'
SqliteNetworkController.cpp:(.text+0xeb6): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0xed8): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0xf28): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0xf78): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0xfce): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x1048): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x107e): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x10c6): undefined reference to sqlite3_bind_int64'
SqliteNetworkController.cpp:(.text+0x1100): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x111e): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x114a): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0x1184): undefined reference to sqlite3_column_bytes'
SqliteNetworkController.cpp:(.text+0x12ac): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x12d4): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x12f8): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x130e): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x1438): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x14b0): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x14f6): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x152c): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x15be): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x15e6): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x1602): undefined reference to sqlite3_column_int64' SqliteNetworkController.cpp:(.text+0x162e): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x164a): undefined reference to sqlite3_column_int64' SqliteNetworkController.cpp:(.text+0x174e): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x1786): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x17a4): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x180e): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x185a): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x190e): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x1940): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x195a): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x19d0): undefined reference to sqlite3_column_blob'
SqliteNetworkController.cpp:(.text+0x19f6): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x1a62): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x1be4): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x1ce2): undefined reference to sqlite3_column_type'
SqliteNetworkController.cpp:(.text+0x1d38): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x1d76): undefined reference to sqlite3_column_blob'
SqliteNetworkController.cpp:(.text+0x1d92): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x1eae): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x1f22): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x1f54): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x1f6e): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x1f8c): undefined reference to sqlite3_column_blob'
SqliteNetworkController.cpp:(.text+0x1fb2): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0x200a): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x2280): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x22b8): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x22d6): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x2324): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x2376): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x239e): undefined reference to sqlite3_column_type'
SqliteNetworkController.cpp:(.text+0x23b4): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x2410): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x2456): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2474): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x24c4): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x24e2): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x2532): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2550): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x25aa): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x25ca): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x2624): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2642): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x26f2): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2710): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x27cc): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x27fc): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x2890): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x28ae): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x2942): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2960): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x29b0): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x29ce): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x2a1e): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2a3c): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x2a96): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2ab4): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x2afa): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2b18): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x2b68): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2b86): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x2bf2): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x2c10): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x2f62): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x2fb4): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x3016): undefined reference to sqlite3_column_text' controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::threadMain()':
SqliteNetworkController.cpp:(.text+0x38be): undefined reference to sqlite3_backup_init' SqliteNetworkController.cpp:(.text+0x38fc): undefined reference to sqlite3_backup_step'
SqliteNetworkController.cpp:(.text+0x3936): undefined reference to sqlite3_backup_finish' SqliteNetworkController.cpp:(.text+0x3946): undefined reference to sqlite3_close'
SqliteNetworkController.cpp:(.text+0x3a58): undefined reference to sqlite3_open_v2' SqliteNetworkController.cpp:(.text+0x3a84): undefined reference to sqlite3_close'
SqliteNetworkController.cpp:(.text+0x3ac0): undefined reference to sqlite3_backup_finish' SqliteNetworkController.cpp:(.text+0x3ad0): undefined reference to sqlite3_close'
controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::~SqliteNetworkController()': SqliteNetworkController.cpp:(.text+0x3bba): undefined reference to sqlite3_finalize'
SqliteNetworkController.cpp:(.text+0x3bca): undefined reference to sqlite3_finalize' SqliteNetworkController.cpp:(.text+0x3bda): undefined reference to sqlite3_finalize'
SqliteNetworkController.cpp:(.text+0x3bea): undefined reference to sqlite3_finalize' SqliteNetworkController.cpp:(.text+0x3bfa): undefined reference to sqlite3_finalize'
controller/SqliteNetworkController.o:SqliteNetworkController.cpp:(.text+0x3c0a): more undefined references to sqlite3_finalize' follow controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::~SqliteNetworkController()':
SqliteNetworkController.cpp:(.text+0x3e3a): undefined reference to sqlite3_close' controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::SqliteNetworkController(ZeroTier::Node*, char const*, char const*)':
SqliteNetworkController.cpp:(.text+0x40a0): undefined reference to sqlite3_open_v2' SqliteNetworkController.cpp:(.text+0x4128): undefined reference to sqlite3_busy_timeout'
SqliteNetworkController.cpp:(.text+0x4148): undefined reference to sqlite3_exec' SqliteNetworkController.cpp:(.text+0x4168): undefined reference to sqlite3_exec'
SqliteNetworkController.cpp:(.text+0x4188): undefined reference to sqlite3_prepare_v2' SqliteNetworkController.cpp:(.text+0x42c8): undefined reference to sqlite3_exec'
SqliteNetworkController.cpp:(.text+0x42e0): undefined reference to sqlite3_errmsg' SqliteNetworkController.cpp:(.text+0x430c): undefined reference to sqlite3_close'
SqliteNetworkController.cpp:(.text+0x4380): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x4392): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x43a8): undefined reference to sqlite3_finalize' SqliteNetworkController.cpp:(.text+0x43de): undefined reference to sqlite3_exec'
SqliteNetworkController.cpp:(.text+0x43fe): undefined reference to sqlite3_exec' SqliteNetworkController.cpp:(.text+0x4422): undefined reference to sqlite3_exec'
SqliteNetworkController.cpp:(.text+0x4442): undefined reference to sqlite3_prepare_v2' SqliteNetworkController.cpp:(.text+0x4468): undefined reference to sqlite3_prepare_v2'
SqliteNetworkController.cpp:(.text+0x448e): undefined reference to sqlite3_prepare_v2' SqliteNetworkController.cpp:(.text+0x44b4): undefined reference to sqlite3_prepare_v2'
SqliteNetworkController.cpp:(.text+0x44da): undefined reference to sqlite3_prepare_v2' controller/SqliteNetworkController.o:SqliteNetworkController.cpp:(.text+0x4500): more undefined references to sqlite3_prepare_v2' follow
controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::SqliteNetworkController(ZeroTier::Node*, char const*, char const*)': SqliteNetworkController.cpp:(.text+0x4a5a): undefined reference to sqlite3_close'
SqliteNetworkController.cpp:(.text+0x4ad0): undefined reference to sqlite3_errmsg' SqliteNetworkController.cpp:(.text+0x4afc): undefined reference to sqlite3_close'
SqliteNetworkController.cpp:(.text+0x4b7a): undefined reference to sqlite3_errmsg' SqliteNetworkController.cpp:(.text+0x4ba6): undefined reference to sqlite3_close'
SqliteNetworkController.cpp:(.text+0x4c28): undefined reference to sqlite3_errmsg' SqliteNetworkController.cpp:(.text+0x4c54): undefined reference to sqlite3_close'
SqliteNetworkController.cpp:(.text+0x4cd4): undefined reference to sqlite3_close' SqliteNetworkController.cpp:(.text+0x4dca): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x4de2): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x4dfc): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x4e64): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x4e7e): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x4eb2): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x4eca): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x4f4a): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x5066): undefined reference to sqlite3_errmsg'
SqliteNetworkController.cpp:(.text+0x509a): undefined reference to sqlite3_close' controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::doNetworkConfigRequest(ZeroTier::InetAddress const&, ZeroTier::Identity const&, ZeroTier::Identity const&, unsigned long long, ZeroTier::Dictionary<8194u> const&, ZeroTier::NetworkConfig&)':
SqliteNetworkController.cpp:(.text+0x534a): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x535e): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x5374): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x5388): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x5406): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x541e): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x544e): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x5466): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x5498): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x54ba): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x54cc): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x54e8): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x54fe): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x551e): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x553e): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x555e): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x5574): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x558a): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x55a0): undefined reference to sqlite3_column_int64' SqliteNetworkController.cpp:(.text+0x55ba): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x55d4): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x55ee): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x560c): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x5622): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x5636): undefined reference to sqlite3_column_int64' SqliteNetworkController.cpp:(.text+0x564c): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x5670): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x5690): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x56a6): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0x56da): undefined reference to sqlite3_column_bytes'
SqliteNetworkController.cpp:(.text+0x5718): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x572e): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x574c): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x576c): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x5780): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x5796): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x57b2): undefined reference to sqlite3_last_insert_rowid' SqliteNetworkController.cpp:(.text+0x57c6): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x57e0): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x57f6): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x5b26): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x5b36): undefined reference to sqlite3_clear_bindings'
SqliteNetworkController.cpp:(.text+0x5b46): undefined reference to sqlite3_bind_int64' SqliteNetworkController.cpp:(.text+0x5b68): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x5b7e): undefined reference to sqlite3_bind_int64' SqliteNetworkController.cpp:(.text+0x5b98): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x5cae): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x5cc4): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x5cda): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x5cee): undefined reference to sqlite3_column_type'
SqliteNetworkController.cpp:(.text+0x5d2a): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x5e58): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x5e70): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x5e8c): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x5ea0): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x5f90): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x5fa6): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x5fbc): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x6018): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x6030): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x604e): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x606e): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x61a6): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x61bc): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x61d2): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x61e8): undefined reference to sqlite3_column_text'
SqliteNetworkController.cpp:(.text+0x61fe): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x6332): undefined reference to sqlite3_column_blob'
SqliteNetworkController.cpp:(.text+0x634c): undefined reference to sqlite3_column_bytes' SqliteNetworkController.cpp:(.text+0x6376): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x638c): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x63a2): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x63b6): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x63cc): undefined reference to sqlite3_column_blob'
SqliteNetworkController.cpp:(.text+0x63e2): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0x6400): undefined reference to sqlite3_column_bytes'
SqliteNetworkController.cpp:(.text+0x6416): undefined reference to sqlite3_column_bytes' SqliteNetworkController.cpp:(.text+0x6650): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x6666): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x6690): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x66a4): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x66b8): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x66cc): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x66e2): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x66f8): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x6714): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x672a): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x6752): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x6766): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x677c): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x6790): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x6806): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x681c): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x6832): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x6846): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x685c): undefined reference to sqlite3_column_blob'
SqliteNetworkController.cpp:(.text+0x6872): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0x6890): undefined reference to sqlite3_column_bytes'
SqliteNetworkController.cpp:(.text+0x68a6): undefined reference to sqlite3_column_bytes' SqliteNetworkController.cpp:(.text+0x69bc): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x69e0): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0x69f8): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x6a14): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0x6a26): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x6a64): undefined reference to sqlite3_column_type' SqliteNetworkController.cpp:(.text+0x6a7c): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x6aa2): undefined reference to sqlite3_column_blob' SqliteNetworkController.cpp:(.text+0x6ad6): undefined reference to sqlite3_column_blob'
SqliteNetworkController.cpp:(.text+0x6b0e): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x6b2a): undefined reference to sqlite3_column_int'
SqliteNetworkController.cpp:(.text+0x6b56): undefined reference to sqlite3_column_int' SqliteNetworkController.cpp:(.text+0x6db0): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x6dc8): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x6de4): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x6df8): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x6e0c): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x6e20): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x6e34): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x6e4a): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x6e66): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x6e7c): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x6e96): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x6eaa): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x6ec0): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x6ed4): undefined reference to sqlite3_step' controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::handleControlPlaneHttpPOST(std::vector<std::string, std::allocatorstd::string > const&, std::map<std::string, std::string, std::lessstd::string, std::allocatorstd::string > const&, std::map<std::string, std::string, std::lessstd::string, std::allocatorstd::string > const&, std::string const&, std::string&, std::string&)':
SqliteNetworkController.cpp:(.text+0x700e): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x703a): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x704a): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x7062): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x7288): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x72b4): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x72c4): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x730c): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x732a): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x7352): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x7382): undefined reference to sqlite3_bind_int64' SqliteNetworkController.cpp:(.text+0x739a): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x7434): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x745c): undefined reference to sqlite3_bind_int64'
SqliteNetworkController.cpp:(.text+0x74fc): undefined reference to sqlite3_prepare_v2' SqliteNetworkController.cpp:(.text+0x753c): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x7576): undefined reference to sqlite3_prepare_v2' SqliteNetworkController.cpp:(.text+0x7630): undefined reference to sqlite3_prepare_v2'
SqliteNetworkController.cpp:(.text+0x76b6): undefined reference to sqlite3_prepare_v2' SqliteNetworkController.cpp:(.text+0x76e6): undefined reference to sqlite3_prepare_v2'
SqliteNetworkController.cpp:(.text+0x77dc): undefined reference to sqlite3_prepare_v2' controller/SqliteNetworkController.o:SqliteNetworkController.cpp:(.text+0x783a): more undefined references to sqlite3_prepare_v2' follow
controller/SqliteNetworkController.o: In function ZeroTier::SqliteNetworkController::handleControlPlaneHttpPOST(std::vector<std::string, std::allocator<std::string> > const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::string> > const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::string> > const&, std::string const&, std::string&, std::string&)': SqliteNetworkController.cpp:(.text+0x7874): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x7a14): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x7a44): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x7a56): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x7a78): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x7aa4): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x7b26): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x7b5c): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x7b78): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x7be2): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x7bfc): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x7c18): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x7e86): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x7ea4): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x7eca): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x7f16): undefined reference to sqlite3_bind_blob' SqliteNetworkController.cpp:(.text+0x7f32): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x7f4a): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x7f64): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x7f7e): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x7f98): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x82e2): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x82fc): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x8318): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x8342): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x836e): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x840e): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x8432): undefined reference to sqlite3_bind_blob' SqliteNetworkController.cpp:(.text+0x8454): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x8464): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x849c): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x84da): undefined reference to sqlite3_bind_blob' SqliteNetworkController.cpp:(.text+0x852c): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x854a): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x856a): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x88e6): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x8904): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x8924): undefined reference to sqlite3_bind_int64' SqliteNetworkController.cpp:(.text+0x893c): undefined reference to sqlite3_bind_null'
SqliteNetworkController.cpp:(.text+0x8980): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x89be): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x89fc): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8a1e): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x8a34): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x8a50): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x8aac): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8b0e): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x8b4a): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8b66): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x8b86): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x8ba8): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x8bbe): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x8bda): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x8bfe): undefined reference to sqlite3_bind_int64' SqliteNetworkController.cpp:(.text+0x8c16): undefined reference to sqlite3_bind_int64'
SqliteNetworkController.cpp:(.text+0x8c44): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8c54): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x8c7c): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8c8e): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x8c9e): undefined reference to sqlite3_finalize' SqliteNetworkController.cpp:(.text+0x8cca): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x8ce4): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x8e54): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x8e80): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8e9a): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x8eb4): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x8ecc): undefined reference to sqlite3_column_int64'
SqliteNetworkController.cpp:(.text+0x8eee): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x8f1a): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x8f34): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8f4e): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x8f70): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x8f90): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x8fa6): undefined reference to sqlite3_last_insert_rowid' SqliteNetworkController.cpp:(.text+0x8fbe): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x8fe0): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x9000): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x90a2): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x90cc): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x90e8): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x9104): undefined reference to sqlite3_bind_int64'
SqliteNetworkController.cpp:(.text+0x9122): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x9140): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x915e): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x9176): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x91ba): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x91e4): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x9200): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x921c): undefined reference to sqlite3_bind_int64'
SqliteNetworkController.cpp:(.text+0x923a): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x9258): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x929c): undefined reference to sqlite3_reset' SqliteNetworkController.cpp:(.text+0x92c8): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x92e2): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x92fe): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x9316): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x93a0): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x93ba): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x93e0): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x93fa): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x941c): undefined reference to sqlite3_bind_blob'
SqliteNetworkController.cpp:(.text+0x9448): undefined reference to sqlite3_bind_int' SqliteNetworkController.cpp:(.text+0x945e): undefined reference to sqlite3_bind_int'
SqliteNetworkController.cpp:(.text+0x9478): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x94bc): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x94e8): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x94f8): undefined reference to sqlite3_step'
SqliteNetworkController.cpp:(.text+0x9510): undefined reference to sqlite3_column_text' SqliteNetworkController.cpp:(.text+0x955e): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x958a): undefined reference to sqlite3_bind_text' SqliteNetworkController.cpp:(.text+0x95b6): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x95d0): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x9668): undefined reference to sqlite3_reset'
SqliteNetworkController.cpp:(.text+0x9690): undefined reference to sqlite3_bind_int64' SqliteNetworkController.cpp:(.text+0x96b0): undefined reference to sqlite3_bind_text'
SqliteNetworkController.cpp:(.text+0x96cc): undefined reference to sqlite3_step' SqliteNetworkController.cpp:(.text+0x9a08): undefined reference to sqlite3_bind_null'
collect2: error: ld returned 1 exit status
make-linux.mk:127: recipe for target 'one' failed
make[4]: *** [one] Error 1
make[4]: Leaving directory '/home/frost/tmp/openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2/zerotier-1.1.14'
Makefile:87: recipe for target '/home/frost/tmp/openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2/zerotier-1.1.14/.built' failed
make[3]: *** [/home/frost/tmp/openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2/zerotier-1.1.14/.built] Error 2
make[3]: Leaving directory '/home/frost/tmp/openwrt/package/zerotier'
package/Makefile:191: recipe for target 'package/zerotier/compile' failed
make[2]: *** [package/zerotier/compile] Error 2
make[2]: Leaving directory '/home/frost/tmp/openwrt'
package/Makefile:188: recipe for target '/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile' failed
make[1]: *** [/home/frost/tmp/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/frost/tmp/openwrt'
/home/frost/tmp/openwrt/include/toplevel.mk:181: recipe for target 'world' failed
make: *** [world] Error 2`

##ATTENTION!!!##Installing ZeroTier On Your LEDE

I download and installed zerotier_1.2.8-1_mipsel_24kc.ipk
Then i found The config fiile /etc/config/zerotier is wrong
By correct it should look something like this:
config zerotier 'default' option enabled '1' option interface 'wan' list join '8056c2e21c000001' option secret 'some_really_long_hex_string'

Need to explicitely join zt net after reboot

Using latest tree (and also before) I need to explicitely zerotier-cli join xxxxxxxxxx after a reboot, or after a /etc/init.d/zerotier restart

uci delete zerotier.sample_config
uci set zerotier.mgmt_net='zerotier'
uci set zerotier.mgmt_net.enabled=1
uci set zerotier.mgmt_net.join='z2d702236df22344'
uci set zerotier.mgmt_net.secret='generate'
uci commit

after restart : no zt0

I have to zerotier-cli join z2d702236df22344 to have zt0 again.

tried to do that in the add_join but no dice

'ifstatus ZT0' shows no IP

Currently 'ifstatus ZT0' shows no IP.
As a result (I suppose) it is not possible to start dropbear explicitly on ZT0 as it cannot obtain an IP address of the interface. There is also a cosmetic problem with no IP shown for ZT0 in the Interfaces section.
Will it be possible to fix that?

Compile failure on PPC arch

Hello,

First off, thanks for creating this package! I am working on getting this compiled for a LEDE device using the APM821xx target (PPC464 variant), and am hitting a small compile snag. The issue returned is:

node/Network.o: In function `ZeroTier::Network::applyConfiguration(ZeroTier::NetworkConfig const&)':
Network.cpp:(.text+0x9ac): undefined reference to `__stack_chk_fail_local'
node/Network.o: In function `ZeroTier::Network::setConfiguration(ZeroTier::NetworkConfig const&, bool)':
Network.cpp:(.text+0xc14): undefined reference to `__stack_chk_fail_local'
node/Network.o: In function `ZeroTier::Network::~Network()':
Network.cpp:(.text+0xd24): undefined reference to `__stack_chk_fail_local'
node/Network.o: In function `ZeroTier::Network::Network(ZeroTier::RuntimeEnvironment const*, unsigned long long, void*)':
Network.cpp:(.text+0x1248): undefined reference to `__stack_chk_fail_local'
node/Network.o: In function `ZeroTier::Network::requestConfiguration()':
Network.cpp:(.text+0x1610): undefined reference to `__stack_chk_fail_local'
node/Network.o:Network.cpp:(.text+0x1e50): more undefined references to `__stack_chk_fail_local' follow
/home/riptide_wave/Repos/source/staging_dir/toolchain-powerpc_464fp_gcc-5.4.0_musl-1.1.15/lib/gcc/powerpc-openwrt-linux-musl/5.4.0/../../../../powerpc-openwrt-linux-musl/bin/ld: zerotier-one: hidden symbol `__stack_chk_fail_local' isn't defined
/home/riptide_wave/Repos/source/staging_dir/toolchain-powerpc_464fp_gcc-5.4.0_musl-1.1.15/lib/gcc/powerpc-openwrt-linux-musl/5.4.0/../../../../powerpc-openwrt-linux-musl/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make-linux.mk:127: recipe for target 'one' failed
make[4]: *** [one] Error 1

I also tried setting -fno-stack-protector but had no success.

symbol not found

`
root@LEDE:# opkg install zerotier
Upgrading zerotier on root from 1.2.4-2 to 1.2.8-2...
Downloading http://mirrors.ustc.edu.cn/lede/snapshots/packages/arm_cortex-a9/packages/zerotier_1.2.8-2_arm_cortex-a9.ipk
Removing obsolete file /usr/bin/zerotier-selftest.
Configuring zerotier.
disabled in config
root@LEDE:# zerotier-cli status
Error relocating /usr/bin/zerotier-cli: _ZNSt6thread15_M_start_threadESt10unique_ptrINS_6_StateESt14default_deleteIS1_EEPFvvE: symbol not found
Error relocating /usr/bin/zerotier-cli: _ZNSt6thread6_StateD2Ev: symbol not found
Error relocating /usr/bin/zerotier-cli: _ZTINSt6thread6_StateE: symbol not found
root@LEDE:# uname
Linux
root@LEDE:# /etc/init.d/zerotier start
disabled in config
root@LEDE:# /etc/init.d/zerotier enable
root@LEDE:# zerotier-cli status
Error relocating /usr/bin/zerotier-cli: _ZNSt6thread15_M_start_threadESt10unique_ptrINS_6_StateESt14default_deleteIS1_EEPFvvE: symbol not found
Error relocating /usr/bin/zerotier-cli: _ZNSt6thread6_StateD2Ev: symbol not found
Error relocating /usr/bin/zerotier-cli: _ZTINSt6thread6_StateE: symbol not found
root@LEDE:~#
root@LEDE:# uname -a
Linux LEDE 4.9.51 #0 SMP Tue Sep 26 08:18:57 2017 armv7l GNU/Linux

`

Add 9993 port rule in the wiki How-To

I think that in wiki how-to must have an entry about "open" ZeroTier port, simply add the following section in /etc/config/firewall

config rule
	option target 'ACCEPT'
	option proto 'udp'
	option dest_port '9993'
	option name 'Allow-ZeroTier-Inbound'
	option src '*'

In other hand, now the zerotier interface has not zt0 as its name. Since version 1.2.6 it have a ztXXXXXXXX pattern 😉 (Device names are now generated deterministically based on network IDs)

Compile failure with ZT 1.1.0

mips-openwrt-linux-uclibc-g++ -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16  -I/media/daten/openwrt_zt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include -I/media/daten/openwrt_zt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/include -I/media/daten/openwrt_zt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/media/daten/openwrt_zt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include  -fno-builtin -nostdinc++ -I/media/daten/openwrt_zt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/uClibc++ -DGCC_HASCLASSVISIBILITY -Wall -fPIE -fvisibility=hidden    -c -o node/Peer.o node/Peer.cpp
In file included from node/Peer.hpp:35:0,
                 from node/Peer.cpp:31:
/media/daten/openwrt_zt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/uClibc++/algorithm: In instantiation of 'void std::sort(RandomAccessIterator, RandomAccessIterator, Compare) [with RandomAccessIterator = ZeroTier::Path*; Compare = ZeroTier::_SortPathsByQuality]':
node/Peer.cpp:526:70:   required from here
/media/daten/openwrt_zt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/uClibc++/algorithm:836:32: error: 'stable_sort' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
   stable_sort(first, last, comp);
                                ^
/media/daten/openwrt_zt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/usr/include/uClibc++/algorithm:847:8: note: 'template<class RandomAccessIterator, class Compare> void std::stable_sort(RandomAccessIterator, RandomAccessIterator, Compare)' declared here, later in the translation unit
   void stable_sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp)
        ^
<builtin>: recipe for target 'node/Peer.o' failed
make[4]: *** [node/Peer.o] Error 1
make[4]: Leaving directory '/media/daten/openwrt_zt/build_dir/target-mips_34kc_uClibc-0.9.33.2/zerotier-1.1.0'
Makefile:87: recipe for target '/media/daten/openwrt_zt/build_dir/target-mips_34kc_uClibc-0.9.33.2/zerotier-1.1.0/.built' failed
make[3]: *** [/media/daten/openwrt_zt/build_dir/target-mips_34kc_uClibc-0.9.33.2/zerotier-1.1.0/.built] Error 2
make[3]: Leaving directory '/media/daten/openwrt_zt/package/zerotier'
package/Makefile:191: recipe for target 'package/zerotier/compile' failed
make[2]: *** [package/zerotier/compile] Error 2
make[2]: Leaving directory '/media/daten/openwrt_zt'
package/Makefile:188: recipe for target '/media/daten/openwrt_zt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile' failed
make[1]: *** [/media/daten/openwrt_zt/staging_dir/target-mips_34kc_uClibc-0.9.33.2/stamp/.package_compile] Error 2
make[1]: Leaving directory '/media/daten/openwrt_zt'
/media/daten/openwrt_zt/include/toplevel.mk:181: recipe for target 'world' failed
make: *** [world] Error 2

Segmentation fault

root@OpenWrt:~# uname -a
Linux OpenWrt 4.9.77 #0 SMP Thu Jan 25 12:45:48 2018 armv7l GNU/Linux
root@OpenWrt:~# zerotier-cli status
Segmentation fault
root@OpenWrt:~# opkg update
Downloading http://mirrors.ustc.edu.cn/lede/snapshots/targets/bcm53xx/generic/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_core
Downloading http://mirrors.ustc.edu.cn/lede/snapshots/packages/arm_cortex-a9/base/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_base
Downloading http://mirrors.ustc.edu.cn/lede/snapshots/packages/arm_cortex-a9/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_luci
Downloading http://mirrors.ustc.edu.cn/lede/snapshots/packages/arm_cortex-a9/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_packages
Downloading http://mirrors.ustc.edu.cn/lede/snapshots/packages/arm_cortex-a9/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_routing
Downloading http://mirrors.ustc.edu.cn/lede/snapshots/packages/arm_cortex-a9/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_telephony
root@OpenWrt:~# opkg remove zerotier
Removing package zerotier from root...
root@OpenWrt:~# opkg install zerotier
Installing zerotier (1.2.4-3) to root...
Downloading http://mirrors.ustc.edu.cn/lede/snapshots/packages/arm_cortex-a9/packages/zerotier_1.2.4-3_arm_cortex-a9.ipk
Configuring zerotier.
root@OpenWrt:~# /etc/init.d/zerotier start
root@OpenWrt:~# zerotier-cli status
Segmentation fault

Very high CPU usage (OpenWrt 18.06.1 on WNDR4300)

Under 18.06.1, zerotier (1.2.8) seems to be using an unusually large amount of CPU time. Without zerotier running, the load is less than 1. Upon starting zerotier, the load jumps to around 4. Any connection involving zerotier does not perform well - lagging SSH, LuCI pages load very slowly and unreliably, etc.

This issue does not seem to be present on 18.06.0, or is at least less severe. Under 18.06.0 with zerotier running, the load is around 1. SSH and LuCI are both relatively responsive.

'option interface' meaning

Just a quick question - what is the meaning of
option interface 'wan' ?
Is this just a reference to Internet-facing interface which should be used by the client?
So, if one has the interface named wan1 and/or wwan then the desired name should be there?

Generating new ZT client id each time rebooting router

Hi, I followed the KB article and each time I reboot I get a new network id, so each time I need to authorize it. The filesystem on the router seems to be writable, because the /etc/config/zerotier was modified and saved. Is there something else I can look at? Thanks.

My Setup:
LEDE/Openwrt: LEDE Reboot SNAPSHOT r5465-98fb380 / LuCI Master (git-17.341.69632-b7906fc)
firmware: brcm47xx-mips74k-linksys-e2000-v1-squashfs.bin
ZeroTier One version 1.2.4 build 0 (platform 1 arch 5)
Router is behind modem/router

/etc/config/zerotier

config zerotier 'default'
	option enabled '1'
	option interface 'wan'
	list join 'my network address'
	option secret 'long string'

interface zt0, allow unmanaged
interface lan general setup: 10.99.5.1 255.255.254.0 / physical: zt0 enabled/checked

Error after installation - "disabled in config"

After downloading and installing with opkg on LEDE Reboot 17.01.4 the following lines are printed in console:
Configuring zerotier.
disabled in config
Previous version (1.1.14) had no such problem.

router TP-LINK TL-WDR3600/4300/4310, Atheros AR9344 rev 2
opkg file: zerotier_1.2.8-1_mips_24kc.ipk

Error `disabled in config` in starting ZeroTier

I am unable to start ZeroTier after freshly installing ZeroTier from opkg:

# root @ Router in /var/lib/zerotier-one [5:53:05]
$ opkg install zerotier
Installing zerotier (1.2.8-2) to root...
Downloading http://mirrors.ustc.edu.cn/lede/releases/18.06.1/packages/mipsel_24kc/packages/zerotier_1.2.8-2_mipsel_24kc.ipk
Configuring zerotier.
disabled in config
# root @ Router in /var/lib/zerotier-one [5:53:13]
$ /etc/init.d/zerotier start
disabled in config

Also, I could manually start ZeroTier using zerotier-one

Identity not preserved across reboots

When joining a network, the zerotier daemon writes some info into /var/lib/zerotier/identity.*
This needs to be preserved across reboots, so now every time the device reboots it shows
up on the zerotier website as a new device.

libminiupnpc.so.16 is missing in zerotier (1.2.4-2)

Error loading shared library libminiupnpc.so.16: No such file or directory (needed by /usr/bin/zerotier-cli)

Sorry, late night hacking leads to poor judgement.
Additional info:
ver. of OS is LEDE 17.01.4
arch is MIPS MIPS 74Kc, installing on top of v1.1.14,

Installing libminiupnpc (1.9-1) to root...
Downloading http://downloads.lede-project.org/releases/17.01.4/packages/mips_24kc/packages/libminiupnpc_1.9-1_mips_24kc.ipk

so, thats new.

allowDefault=true causes ZT0 interface to go offline

I'm trying to get my router to send all traffic for connected devices through the Zerotier-assigned default gateway. When the setting allowDefault=true is enabled via zerotier-cli, the ZT0 interface goes offline and can't be reconnected until after a reboot.

persistent folder and variable paths to be able to run a ZeroTier controller on LEDE

I am currently experimenting with the ZeroTier controller which is implemented into ZeroTier since Version 1.2 on my LEDE router (OpenWrt SNAPSHOT r5849-5bbcd80) with ZeroTier 1.2.4 on a TP-LINK TL-WDR4300.

Some problems came up.

A controller needs some reboot resistent files so I took a look at the /etc/init.d/zerotier script and found a lot of hardcoded paths in there. So I changed them to a variable so I could set my own folder which is not on a tmpfs.

I made the following changes to put all my stuff into /zerotier instead of /tmp or /var/lib/zerotier to make it reboot resistent.

Also I added an additional argument to the appropriate calls to ZeroTier binaries to specify the working directory.

IMHO this change this change should be implemented in the zerotier init script to avoid hardcoded paths and it would be great if an expert could maybe add an option to define the zerotier configuration path via uci config zerotier which should be possible with the changes below.

Here are my changes to /etc/init.d/zerotier

diff zerotier.new zerotier.org

10d9
< ZT_FOLDER=/zerotier
21c20
<       local LASTARG="$ZT_FOLDER"
---
>
24c23
<       mkdir -p $ZT_FOLDER/networks.d/
---
>       mkdir -p /var/lib/zerotier-one/networks.d/
31c30
<               ARGS="$ARGS -p$port $LASTARG"
---
>               ARGS="$ARGS -p$port"
46c45
<               echo "$secret" > $ZT_FOLDER/identity.secret
---
>               echo "$secret" > /var/lib/zerotier-one/identity.secret
48c47
<               rm -f $ZT_FOLDER/identity.public
---
>               rm -f /var/lib/zerotier-one/identity.public
53c52
<               touch $ZT_FOLDER/networks.d/$1.conf
---
>               touch /var/lib/zerotier-one/networks.d/$1.conf
60c59
<       procd_set_param command $ZT_COMMAND $ARGS $LASTARG
---
>       procd_set_param command $ZT_COMMAND $ARGS

Bridge Mode

Have this installed and working(pingable) but I want my OpenWRT to function as a bridge to my local network. I'm unable to get a bridge working and wondering if anyone has this working or any pointers for this setup?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.