Netbird fails to autostart on Brodersen PLC #2453

Open
opened 2025-11-20 07:10:00 -05:00 by saavagebueno · 4 comments
Owner

Originally created by @Rareshp on GitHub (Nov 11, 2025).

Describe the problem

  • I have installed netbird_0.59.12_linux_armv6.tar.gz on a Brodersen PLC (armv7l GNU/Linux) as a binary
  • I can connect to the netbird network, but after PLC reboot... netbird is down with error
  • you will see in this report how I managed to fix the issue

Log:

$ netbird status
2025-11-11T11:07:57Z INFO ./caller_not_available:0: 2025/11/11 11:07:57 WARNING: [core] [Channel #1 SubChannel #2]grpc: addrConn.createTransport failed to connect to {Addr: "/var/run/netbird.sock", ServerName: "localhost", Attributes: {"<%!p(networktype.keyType=grpc.internal.transport.networktype)>": "unix" }, BalancerAttributes: {"<%!p(pickfirstleaf.managedByPickfirstKeyType={})>": "<%!p(bool=true)>" }}. Err: connection error: desc = "transport: Error while dialing: dial unix /var/run/netbird.sock: connect: no such file or directory"

To Reproduce

Steps to reproduce the behavior:

  1. Install netbird binary armv6 as per https://docs.netbird.io/how-to/installation/linux#binary-install
  2. Connect to the netbird network - works
  3. Reboot
  4. See error - netbird did not start properly

Expected behavior

Issue should not appear. Netbird should auto-start and connect.

Are you using NetBird Cloud?

It does not matter.

NetBird version

0.59.12

Is any other VPN software installed?

No.

Debug output

To help us resolve the problem, please attach the following anonymized status output

$ netbird status -dA
2025-11-11T11:41:33Z INFO ./caller_not_available:0: 2025/11/11 11:41:33 WARNING: [core] [Channel #1 SubChannel #2]grpc: addrConn.createTransport failed to connect to {Addr: "/var/run/netbird.sock", ServerName: "localhost", Attributes: {"<%!p(networktype.keyType=grpc.internal.transport.networktype)>": "unix" }, BalancerAttributes: {"<%!p(pickfirstleaf.managedByPickfirstKeyType={})>": "<%!p(bool=true)>" }}. Err: connection error: desc = "transport: Error while dialing: dial unix /var/run/netbird.sock: connect: no such file or directory"

Screenshots

Additional context

I noticed that /etc/rc.d/S50netbird is a symlink to /etc/init.d/netbird
I modified /etc/init.d/netbird to ouput to a custom log file to see if it runs.
It did not run because it was in /etc/rc.d folder (I believe netbird service install puts it there). I then created a symlink to rc5.d instead, as I know for sure scripts in that folder run after reboot.
Now, according to my custom log file, the netbird actually runs:

Tue Nov 11 11:07:34 UTC 2025
/etc/rc5.d/S10netbird
Starting netbird
Unable to start, see /var/log/netbird/netbird.log and /var/log/netbird/netbird.err

The folder does not exist. This causes an error in the netbird script and fails.

ls: /var/log/netbird/: No such file or directory

Solution I found

  1. create symlink in /etc/rc5.d
$ sudo ln -s /etc/init.d/netbird /etc/rc5.d/S10netbird
  1. create the /var/log/netbird directory in the file '/etc/init.d/netbird'
pid_file="/var/run/$name.pid"
+ mkdir -p /var/log/netbird  
stdout_log="/var/log/netbird/$name.log"
stderr_log="/var/log/netbird/$name.err"

after reboot, voilà:

rtu32:~$ netbird status
OS: linux/arm (ARMv)
Daemon version: 0.59.12
CLI version: 0.59.12
Profile: default
Management: Connected
Signal: Connected
Relays: 3/3 Available
Nameservers: 1/1 Available
FQDN: redacted
NetBird IP: redacted
Interface type: Userspace
Quantum resistance: false
Lazy connection: false
Networks: -
Forwarding rules: 0
Peers count: 1/4 Connected
$ cat /var/log/custom.log

Tue Nov 11 11:16:17 UTC 2025
/etc/rc5.d/S10netbird
Starting netbird
end
Originally created by @Rareshp on GitHub (Nov 11, 2025). **Describe the problem** - I have installed `netbird_0.59.12_linux_armv6.tar.gz` on a Brodersen PLC (armv7l GNU/Linux) as a [binary](https://docs.netbird.io/how-to/installation/linux#binary-install) - I can connect to the netbird network, but after PLC reboot... netbird is down with error - **you will see in this report how I managed to fix the issue** Log: ``` $ netbird status 2025-11-11T11:07:57Z INFO ./caller_not_available:0: 2025/11/11 11:07:57 WARNING: [core] [Channel #1 SubChannel #2]grpc: addrConn.createTransport failed to connect to {Addr: "/var/run/netbird.sock", ServerName: "localhost", Attributes: {"<%!p(networktype.keyType=grpc.internal.transport.networktype)>": "unix" }, BalancerAttributes: {"<%!p(pickfirstleaf.managedByPickfirstKeyType={})>": "<%!p(bool=true)>" }}. Err: connection error: desc = "transport: Error while dialing: dial unix /var/run/netbird.sock: connect: no such file or directory" ``` **To Reproduce** Steps to reproduce the behavior: 1. Install netbird binary armv6 as per https://docs.netbird.io/how-to/installation/linux#binary-install 2. Connect to the netbird network - works 3. Reboot 4. See error - netbird did not start properly **Expected behavior** Issue should not appear. Netbird should auto-start and connect. **Are you using NetBird Cloud?** It does not matter. **NetBird version** `0.59.12` **Is any other VPN software installed?** No. **Debug output** To help us resolve the problem, please attach the following anonymized status output ``` $ netbird status -dA 2025-11-11T11:41:33Z INFO ./caller_not_available:0: 2025/11/11 11:41:33 WARNING: [core] [Channel #1 SubChannel #2]grpc: addrConn.createTransport failed to connect to {Addr: "/var/run/netbird.sock", ServerName: "localhost", Attributes: {"<%!p(networktype.keyType=grpc.internal.transport.networktype)>": "unix" }, BalancerAttributes: {"<%!p(pickfirstleaf.managedByPickfirstKeyType={})>": "<%!p(bool=true)>" }}. Err: connection error: desc = "transport: Error while dialing: dial unix /var/run/netbird.sock: connect: no such file or directory" ``` **Screenshots** - **Additional context** I noticed that /etc/rc.d/S50netbird is a symlink to /etc/init.d/netbird I modified /etc/init.d/netbird to ouput to a custom log file to see if it runs. It did not run because it was in /etc/rc.d folder (I believe `netbird service install` puts it there). I then created a symlink to rc5.d instead, as I know for sure scripts in that folder run after reboot. Now, according to my custom log file, the netbird actually runs: ``` Tue Nov 11 11:07:34 UTC 2025 /etc/rc5.d/S10netbird Starting netbird Unable to start, see /var/log/netbird/netbird.log and /var/log/netbird/netbird.err ``` The folder does not exist. This causes an error in the netbird script and fails. ``` ls: /var/log/netbird/: No such file or directory ``` **Solution I found** 1. create symlink in /etc/rc5.d ``` $ sudo ln -s /etc/init.d/netbird /etc/rc5.d/S10netbird ``` 2. create the /var/log/netbird directory in the file '/etc/init.d/netbird' ```diff pid_file="/var/run/$name.pid" + mkdir -p /var/log/netbird stdout_log="/var/log/netbird/$name.log" stderr_log="/var/log/netbird/$name.err" ``` after reboot, voilà: ``` rtu32:~$ netbird status OS: linux/arm (ARMv) Daemon version: 0.59.12 CLI version: 0.59.12 Profile: default Management: Connected Signal: Connected Relays: 3/3 Available Nameservers: 1/1 Available FQDN: redacted NetBird IP: redacted Interface type: Userspace Quantum resistance: false Lazy connection: false Networks: - Forwarding rules: 0 Peers count: 1/4 Connected ``` ``` $ cat /var/log/custom.log Tue Nov 11 11:16:17 UTC 2025 /etc/rc5.d/S10netbird Starting netbird end ```
saavagebueno added the feature-requestcompatibilitysystem-compatibility-issue labels 2025-11-20 07:10:00 -05:00
Author
Owner

@Rareshp commented on GitHub (Nov 11, 2025):

I am aware this is a very niche case. In addition as the solution works on my end, please feel free to close the ticket.

@Rareshp commented on GitHub (Nov 11, 2025): I am aware this is a very niche case. In addition as the solution works on my end, please feel free to close the ticket.
Author
Owner

@nazarewk commented on GitHub (Nov 11, 2025):

Thanks for the provided steps. Could you give us more info on what kind of operating system/distribution runs on that device?

I have converted it to a feature request and will keep it open just in case we'd want to support that setup in the future.

@nazarewk commented on GitHub (Nov 11, 2025): Thanks for the provided steps. Could you give us more info on what kind of operating system/distribution runs on that device? I have converted it to a feature request and will keep it open just in case we'd want to support that setup in the future.
Author
Owner

@Rareshp commented on GitHub (Nov 11, 2025):

The linux system is stripped down from many commands, but I can provide the following. If you want something specific I can try the command and let you know.

rtu32:~$ lsb_release -a
LSB Version:    n/a
Distributor ID: fslc-framebuffer
Description:    FSLC FrameBuffer 3.0
Release:        3.0
Codename:       zeus


rtu32:~$ uname -a
Linux rtu32 5.4.3.2593+gb40ccfdb73ea #1 SMP PREEMPT Thu Jun 12 06:54:07 UTC 2025 armv7l GNU/Linux


rtu32:~$ cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 109.09
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5
Hardware        : Freescale i.MX6 Ultralite (Device Tree)
Revision        : 0000
Serial          : 0000000000000000


rtu32:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:          242Mi        68Mi       131Mi       0.0Ki        42Mi       166Mi
Swap:            0B          0B          0B

@Rareshp commented on GitHub (Nov 11, 2025): The linux system is stripped down from many commands, but I can provide the following. If you want something specific I can try the command and let you know. ``` rtu32:~$ lsb_release -a LSB Version: n/a Distributor ID: fslc-framebuffer Description: FSLC FrameBuffer 3.0 Release: 3.0 Codename: zeus rtu32:~$ uname -a Linux rtu32 5.4.3.2593+gb40ccfdb73ea #1 SMP PREEMPT Thu Jun 12 06:54:07 UTC 2025 armv7l GNU/Linux rtu32:~$ cat /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 109.09 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xc07 CPU revision : 5 Hardware : Freescale i.MX6 Ultralite (Device Tree) Revision : 0000 Serial : 0000000000000000 rtu32:~$ free -h total used free shared buff/cache available Mem: 242Mi 68Mi 131Mi 0.0Ki 42Mi 166Mi Swap: 0B 0B 0B ```
Author
Owner

@Rareshp commented on GitHub (Nov 11, 2025):

I think is best to check and create log folder in the script. On my laptop it seems the folder is not deleted, so maybe the PLC is removing the folder for reasons.

log_dir="/var/log/netbird"
if [ ! -d "$log_dir" ]; then
    mkdir -p "$log_dir"
fi

stdout_log="$log_dir/$name.log"
stderr_log="$log_dir/$name.err"
@Rareshp commented on GitHub (Nov 11, 2025): I think is best to check and create log folder in the script. On my laptop it seems the folder is not deleted, so maybe the PLC is removing the folder for reasons. ```sh log_dir="/var/log/netbird" if [ ! -d "$log_dir" ]; then mkdir -p "$log_dir" fi stdout_log="$log_dir/$name.log" stderr_log="$log_dir/$name.err" ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: SVI/netbird#2453