# Linux tunneler on armv6?

**URL:** <https://openziti.discourse.group/t/linux-tunneler-on-armv6/530>\
**Category:** Ziti Edge Tunnel\
**Created:** [May 27, 2022, 2:57am UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530 "2022-05-27T02:57:41Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![qrkourier](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/qrkourier/32/52_2.png) [@qrkourier](https://openziti.discourse.group/u/qrkourier)\
**Post date:** [May 27, 2022, 2:57am UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/1 "2022-05-27T02:57:41Z")

</div>

I’m trying to build ziti-edge-tunnel for armv6 (found a Raspberry Pi Zero v1 in my bench stock). Stop me if you know for fact this will never work! I see the arm 32-bit build is for arch armv7 and that must be why I got a segfault (attached strace).

```bash
kb@kpizero1:~ $ sudo strace ./ziti-edge-tunnel -h
execve("./ziti-edge-tunnel", ["./ziti-edge-tunnel", "-h"], 0xbef537e4 /* 14 vars */) = 0
brk(NULL) = 0x37ec000
uname({sysname="Linux", nodename="kpizero1", ...}) = 0
access("/etc/ld.so.preload", R_OK) = 0
openat(AT_FDCWD, "/etc/ld.so.preload", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=54, ...}) = 0
mmap2(NULL, 54, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xb6f1c000
close(3) = 0
readlink("/proc/self/exe", "/home/kb/ziti-edge-tunnel", 4096) = 25
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libarmmem-v6l.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\250\3\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9512, ...}) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f1a000
mmap2(NULL, 73772, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6ed8000
mprotect(0xb6eda000, 61440, PROT_NONE) = 0
mmap2(0xb6ee9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb6ee9000
close(3) = 0
munmap(0xb6f1c000, 54) = 0
openat(AT_FDCWD, "/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/tls/v6l/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/tls/v6l/vfp", 0xbefc1b80) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/tls/v6l/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/tls/v6l", 0xbefc1b80) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/tls/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/tls/vfp", 0xbefc1b80) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/tls/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/tls", 0xbefc1b80) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/v6l/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/v6l/vfp", 0xbefc1b80) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/v6l/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/v6l", 0xbefc1b80) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/vfp", 0xbefc1b80) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/runner/work/ziti-tunnel-sdk-c/ziti-tunnel-sdk-c/build/lib", 0xbefc1b80) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v6l/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v6l/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=30999, ...}) = 0
mmap2(NULL, 30999, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6f12000
close(3) = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libm.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\20\222\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=386572, ...}) = 0
mmap2(NULL, 450684, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e69000
mprotect(0xb6ec7000, 61440, PROT_NONE) = 0
mmap2(0xb6ed6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5d000) = 0xb6ed6000
close(3) = 0
openat(AT_FDCWD, "tls/v6l/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v6l/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libpthread.so.0", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0t]\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=137364, ...}) = 0
mmap2(NULL, 176728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e3d000
mprotect(0xb6e55000, 65536, PROT_NONE) = 0
mmap2(0xb6e65000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0xb6e65000
mmap2(0xb6e67000, 4696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6e67000
close(3) = 0
openat(AT_FDCWD, "tls/v6l/vfp/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v6l/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/vfp/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\330\v\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=13864, ...}) = 0
mmap2(NULL, 78020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e29000
mprotect(0xb6e2c000, 61440, PROT_NONE) = 0
mmap2(0xb6e3b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0xb6e3b000
close(3) = 0
openat(AT_FDCWD, "tls/v6l/vfp/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v6l/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/vfp/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/librt.so.1", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\20\33\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=30676, ...}) = 0
mmap2(NULL, 94728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e11000
mprotect(0xb6e17000, 65536, PROT_NONE) = 0
mmap2(0xb6e27000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0xb6e27000
close(3) = 0
openat(AT_FDCWD, "tls/v6l/vfp/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v6l/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/vfp/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libresolv.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\220+\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=75568, ...}) = 0
mmap2(NULL, 149416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6dec000
mprotect(0xb6dfe000, 61440, PROT_NONE) = 0
mmap2(0xb6e0d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0xb6e0d000
mmap2(0xb6e0f000, 6056, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6e0f000
close(3) = 0
openat(AT_FDCWD, "tls/v6l/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/v6l/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "tls/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "v6l/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "vfp/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\240\255\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1321488, ...}) = 0
mmap2(NULL, 1390760, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6c98000
mprotect(0xb6dd7000, 61440, PROT_NONE) = 0
mmap2(0xb6de6000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13e000) = 0xb6de6000
mmap2(0xb6dea000, 6312, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6dea000
close(3) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f10000
set_tls(0xb6f10500) = 0
mprotect(0xb6de6000, 8192, PROT_READ) = 0
mprotect(0xb6e0d000, 4096, PROT_READ) = 0
mprotect(0xb6e65000, 4096, PROT_READ) = 0
mprotect(0xb6e27000, 4096, PROT_READ) = 0
mprotect(0xb6e3b000, 4096, PROT_READ) = 0
mprotect(0xb6ed6000, 4096, PROT_READ) = 0
mprotect(0xb6ee9000, 4096, PROT_READ) = 0
mprotect(0x5c4000, 28672, PROT_READ) = 0
mprotect(0xb6f1d000, 4096, PROT_READ) = 0
munmap(0xb6f12000, 30999) = 0
set_tid_address(0xb6f100a8) = 1165
set_robust_list(0xb6f100b0, 12) = 0
rt_sigaction(SIGRTMIN, {sa_handler=0xb6e426a8, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0xb6ccadb0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0xb6e42764, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0xb6ccadb0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x4} ---
+++ killed by SIGSEGV +++
Segmentation fault

```

---

<div class="post-metadata">

**Author:** ![qrkourier](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/qrkourier/32/52_2.png) [@qrkourier](https://openziti.discourse.group/u/qrkourier)\
**Post date:** [May 27, 2022, 12:44pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/2 "2022-05-27T12:44:27Z")

</div>

Success!

```bash
kb@kpizero1:~/ziti-tunnel-sdk-c $ (set -x; rm -rf ./build/ && cmake -E make_directory ./build && cmake -DCMAKE_TOOLCHAIN_FILE=./toolchains/default.cmake -DDISABLE_LIBSYSTEMD_FEATURE=ON -S . -B ./build && cmake --build ./build --target bundle --verbose ;)

kb@kpizero1:~/ziti-tunnel-sdk-c $ ./build/programs/ziti-edge-tunnel/ziti-edge-tunnel run-host -h
ziti-edge-tunnel run-host: run Ziti tunnel to host services
usage: ziti-edge-tunnel run-host -i <id.file> [-r N] [-v N]

        -i|--identity <identity> run with provided identity file (required)
        -I|--identity-dir <dir> load identities from provided directory
        -v|--verbose N set log level, higher level -- more verbose (default 3)
        -r|--refresh N set service polling interval in seconds (default 10)

```

---

<div class="post-metadata">

**Author:** ![qrkourier](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/qrkourier/32/52_2.png) [@qrkourier](https://openziti.discourse.group/u/qrkourier)\
**Post date:** [May 27, 2022, 12:50pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/3 "2022-05-27T12:50:22Z")

</div>

```bash
kb@kpizero1:~/ziti-tunnel-sdk-c $ cat /proc/cpuinfo 
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 997.08
Features : half thumb fastmult vfp edsp java tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7

Hardware : BCM2835
Revision : 900093
Serial : 00000000b80f3a3d
Model : Raspberry Pi Zero Rev 1.3

kb@kpizero1:~/ziti-tunnel-sdk-c $ cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

```

I needed to install Debian packages `git`, `build-essential`, `cmake`.

---

<div class="post-metadata">

**Author:** ![gberl002](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/gberl002/32/333_2.png) [@gberl002](https://openziti.discourse.group/u/gberl002)\
**Post date:** [May 27, 2022, 1:24pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/4 "2022-05-27T13:24:34Z")

</div>

![popcorn](https://global.discourse-cdn.com/free1/uploads/netfoundry/original/1X/2200cf0390a917d88f8f36c9dd0b2bb8ded4959e.gif)

I’m watching intently. I’ve been wanting to run Ziti on my RasPi, just haven’t gotten around to it.

---

<div class="post-metadata">

**Author:** ![qrkourier](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/qrkourier/32/52_2.png) [@qrkourier](https://openziti.discourse.group/u/qrkourier)\
**Post date:** [May 27, 2022, 7:13pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/5 "2022-05-27T19:13:31Z")

</div>

You might not have to build it at all if your Pi is armv7 (32 bit) or v8 (64 bit). Those binary builds are pinned to each release. 👍

---

<div class="post-metadata">

**Author:** ![gberl002](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/gberl002/32/333_2.png) [@gberl002](https://openziti.discourse.group/u/gberl002)\
**Post date:** [May 27, 2022, 7:17pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/6 "2022-05-27T19:17:08Z")

</div>

Hmm, they might be, I have a 2B, two Ws and a 4… I assume the 4 would be armv8 but I’ll have to check them out.

---

<div class="post-metadata">

**Author:** ![qrkourier](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/qrkourier/32/52_2.png) [@qrkourier](https://openziti.discourse.group/u/qrkourier)\
**Post date:** [May 29, 2022, 3:23pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/7 "2022-05-29T15:23:15Z")

</div>

Got one more built on Raspbian (Debian 11 Bulleseye) running on the Pi Zero v1.3 `ziti-router` for `armhf` i.e. `armv6`.

```auto
kb@kpizero1:~ $ file ./ziti/linux-build/ziti-router
./ziti/linux-build/ziti-router: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, Go BuildID=s-sP2o3-fa2hW7Ua5gdY/xNW-j_qhEzDiKzeb6mq_/ypz0-tyx5vdpRTi92fmE/E-Psq7Erp4S0fiCARSSz, BuildID[sha1]=cf6989d3667879c5a383e2cc5d78ad5c852f8723, not stripped

kb@kpizero1:~ $ ./ziti/linux-build/ziti-router version
v0.0.0

```

Now to see if it actually performs at all with only 512MB of ram. 😬

---

<div class="post-metadata">

**Author:** ![JamminSoleng](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/jamminsoleng/32/314_2.png) [@JamminSoleng](https://openziti.discourse.group/u/JamminSoleng)\
**Post date:** [May 31, 2022, 3:56pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/8 "2022-05-31T15:56:41Z")

</div>

I have ziti binary run on raspberry 2. And we have our binary running on the field on raspberry 3.

Raspberry 4 is 64bit armv8. that is also working on my setup.

---

<div class="post-metadata">

**Author:** ![qrkourier](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/qrkourier/32/52_2.png) [@qrkourier](https://openziti.discourse.group/u/qrkourier)\
**Post date:** [May 31, 2022, 3:58pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/9 "2022-05-31T15:58:37Z")

</div>

Although Go build succeeded I ran into a problem with `ziti-router run` in another topic [Ziti-router fatal error on startup](https://openziti.discourse.group/t/ziti-router-fatal-error-on-startup/538)

---

<div class="post-metadata">

**Author:** ![dmuensterer](https://yyz2.discourse-cdn.com/free1/user_avatar/openziti.discourse.group/dmuensterer/32/2451_2.png) [@dmuensterer](https://openziti.discourse.group/u/dmuensterer)\
**Post date:** [November 28, 2022, 2:36pm UTC](https://openziti.discourse.group/t/linux-tunneler-on-armv6/530/10 "2022-11-28T14:36:05Z")

</div>

Jup, can confirm, works on my Raspi 4b from the repo.
