Track Internet disconnections, provider outages with historical data, and automated speed testing.
For Windows, Linux, ARM64, ARMa7. Learn more by visiting www.outagesio.com
Notice: If you created an account on app.outagesio.com, simply use the same credentials to log in here.
Raspberry Pi new install cannot download binary
-
Attempting a new setup, I had to create the starter.sh script by hand, and did chmod +x it. The log in /tmp/log_starter.txt keeps showing:
Downloading the OTM binary.
Download failed. Retrying...Looking at line 103 of starter.sh, I noted
CURL_CMD="curl --silent --connect-timeout 15 --max-time 30 --request POST https://www.foxymon.com/receiver/receiver2.php"
I attempted this in my windows browser, authenticated, and then was met with a completely blank page even in the dev console.
Is there something I should update in the script to point to a site that hosts the binary?
-
Hi,
Can you explain what you mean by you had to create the script by hand?
When you install a new Pi agent, the info pages provide two links. One for the service and another for the /etc/agentid.
The only think you have to do is to make sure the /etc/agentid is where it's supposed to be and that the service is created along with the /otm directory.
Once that's done, it should be as simple as starting the new service and the rest is automatic.
If you can expand on what you are doing, I'll try to help.
-
Okay, so I followed this: https://www.outagesio.com/monitor-your-internet-with-raspberry-pi-nanopi-and-other-arm-devices/
And it fails with the following:
root@pihole:/otm# systemctl status otm.service ● otm.service - Startup of the OutagesIO Internet monitor agent Loaded: loaded (/etc/systemd/system/otm.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sun 2024-09-15 20:09:58 CDT; 20s ago Process: 2633 ExecStartPre=/bin/sleep 30 (code=exited, status=0/SUCCESS) Process: 2634 ExecStartPre=/usr/bin/curl -s https://downloads.echonets.com/scripts/starter.sh -o /otm/starter.sh (code Process: 2636 ExecStartPre=/bin/chmod +x /otm/starter.sh (code=exited, status=0/SUCCESS) Process: 2637 ExecStart=/bin/bash /otm/starter.sh start (code=exited, status=0/SUCCESS) Main PID: 2662 (code=exited, status=2) Sep 15 20:09:15 pihole systemd[1]: Starting Startup of the OutagesIO Internet monitor agent... Sep 15 20:09:46 pihole bash[2637]: => Function: send_starter_version Sep 15 20:09:58 pihole bash[2637]: Starting OTM then exiting this script Sep 15 20:09:58 pihole systemd[1]: Started Startup of the OutagesIO Internet monitor agent. Sep 15 20:09:58 pihole systemd[1]: otm.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Sep 15 20:09:58 pihole systemd[1]: otm.service: Failed with result 'exit-code'. lines 1-15/15 (END) ● otm.service - Startup of the OutagesIO Internet monitor agent Loaded: loaded (/etc/systemd/system/otm.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sun 2024-09-15 20:09:58 CDT; 20s ago Process: 2633 ExecStartPre=/bin/sleep 30 (code=exited, status=0/SUCCESS) Process: 2634 ExecStartPre=/usr/bin/curl -s https://downloads.echonets.com/scripts/starter.sh -o /otm/starter.sh (code=exited, status=0/SUCCESS) Process: 2636 ExecStartPre=/bin/chmod +x /otm/starter.sh (code=exited, status=0/SUCCESS) Process: 2637 ExecStart=/bin/bash /otm/starter.sh start (code=exited, status=0/SUCCESS) Main PID: 2662 (code=exited, status=2) Sep 15 20:09:15 pihole systemd[1]: Starting Startup of the OutagesIO Internet monitor agent... Sep 15 20:09:46 pihole bash[2637]: => Function: send_starter_version Sep 15 20:09:58 pihole bash[2637]: Starting OTM then exiting this script Sep 15 20:09:58 pihole systemd[1]: Started Startup of the OutagesIO Internet monitor agent. Sep 15 20:09:58 pihole systemd[1]: otm.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Sep 15 20:09:58 pihole systemd[1]: otm.service: Failed with result 'exit-code'.
The file is now working for download as shown:
root@pihole:/otm# ls -alhst total 252K 240K -rwxr-xr-x 1 root root 239K Sep 15 20:09 otm_binary 4.0K drwxr-xr-x 2 root root 4.0K Sep 15 20:09 . 4.0K -rwxr-xr-x 1 root root 3.6K Sep 15 20:09 starter.sh 4.0K drwxr-xr-x 23 root root 4.0K Sep 15 20:08 ..
From the log_starter.txt log
root@pihole:/otm# cat /tmp/log_starter.txt => Function: create_empty_log run_curl curl --silent --connect-timeout 15 --max-time 30 --request POST https://www.foxymon.com/receiver/receiver2.php -u SI2VopkqJs:3hCejvzEbaNRsqZ7ySmgV4WLMtcu8wTfr9noHQ6I -F function=send_starter_version -F version=2023-07-21_0930_Phoenix_TZ Wait 5 seconds Attempting execution Answer: 1 CURL executed => Function: check_to_download_new_otm run_curl curl --silent --connect-timeout 15 --max-time 30 --request POST https://www.foxymon.com/receiver/receiver2.php -u SI2VopkqJs:3hCejvzEbaNRsqZ7ySmgV4WLMtcu8wTfr9noHQ6I -F function=receive_binary_location Wait 5 seconds Attempting execution Answer: https://downloads.echonets.com/otm/arm64_otm_1_81_2401 CURL executed https://downloads.echonets.com/otm/arm64_otm_1_81_2401 OTM binaries are different. Downloading the OTM binary. Download successful. Starting OTM binary. OTM binary started with PID 2662
More interesting is what's in the otm.log
root@pihole:/otm# cat /tmp/otm.log /otm/otm_binary: 1: /otm/otm_binary: ELF��n@X�@8: not found /otm/otm_binary: 2: /otm/otm_binary: �@: not found /otm/otm_binary: 3: /otm/otm_binary: T ��: not found /otm/otm_binary: 3: /otm/otm_binary: H���gF M: not found /otm/otm_binary: 5: /otm/otm_binary: �v5�␦�% 8 %����Z����: not found /otm/otm_binary: 7: /otm/otm_binary: �� �: not found /otm/otm_binary: 7: /otm/otm_binary: �������: not found /otm/otm_binary: 1: /otm/otm_binary: Syntax error: word unexpected (expecting ")")
-
Ah, I see that we have to update some articles.
Just follow the steps when creating an agent, don't follow that article please and let me know what happens. -
Okay, so cleared the otm directory completely to allow for a fresh download
root@pihole:/# mkdir otm root@pihole:/# cd /otm root@pihole:/otm# cd ~ root@pihole:~# systemctl daemon-reload root@pihole:~# systemctl start otm.service root@pihole:~# systemctl status otm.service ● otm.service - Startup of the OutagesIO Internet monitor agent Loaded: loaded (/etc/systemd/system/otm.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sun 2024-09-15 20:35:46 CDT; 28s ago Process: 2839 ExecStartPre=/bin/sleep 30 (code=exited, status=0/SUCCESS) Process: 2845 ExecStartPre=/usr/bin/curl -s https://downloads.echonets.com/scripts/starter.sh -o /otm/starter.sh (code=exited, status=0/SUC Process: 2847 ExecStartPre=/bin/chmod +x /otm/starter.sh (code=exited, status=0/SUCCESS) Process: 2848 ExecStart=/bin/bash /otm/starter.sh start (code=exited, status=0/SUCCESS) Main PID: 2874 (code=exited, status=2) Sep 15 20:35:03 pihole systemd[1]: Starting Startup of the OutagesIO Internet monitor agent... Sep 15 20:35:34 pihole bash[2848]: => Function: send_starter_version Sep 15 20:35:46 pihole bash[2848]: Starting OTM then exiting this script Sep 15 20:35:46 pihole systemd[1]: Started Startup of the OutagesIO Internet monitor agent. Sep 15 20:35:46 pihole systemd[1]: otm.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Sep 15 20:35:46 pihole systemd[1]: otm.service: Failed with result 'exit-code'.
Popped into the otm directory, and starter was there:
root@pihole:~# cd otm root@pihole:~/otm# ls starter.sh
I had cleared the otm log, after this above execution, fresh output.
root@pihole:~/otm# cat /tmp/otm.log /otm/otm_binary: 1: /otm/otm_binary: ELF��n@X�@8: not found /otm/otm_binary: 2: /otm/otm_binary: �@: not found /otm/otm_binary: 3: /otm/otm_binary: T ��: not found /otm/otm_binary: 3: /otm/otm_binary: H���gF M: not found /otm/otm_binary: 5: /otm/otm_binary: �v5�␦�% 8 %����Z����: not found /otm/otm_binary: 7: /otm/otm_binary: �� �: not found /otm/otm_binary: 7: /otm/otm_binary: �������: not found /otm/otm_binary: 1: /otm/otm_binary: Syntax error: word unexpected (expecting ")")
-
The reason this is showing us because it is the Linux binary that is being run, not the ARM one.
There might be a bug in the new method we've started using. It seems even when you select Pi, it's giving you the Linux binary.
I can have the developer that works on this look at it tomorrow and fix it. Once it's done, I can update this post.
We appreciate your letting us know because we were not aware of this issue.
-
I'm happy to be your test bed for this fix. I already have a script wrote to wipe both logs and the /otm folder.
-
Thanks for your patience. We'll certainly fix this tomorrow and update you also.
-
Question, what hardware exactly are you using? Which version of Pi, make and model please.
-
We see that everything is fine, the service is downloading the correct binary. We suspect that the hardware is not compatible with the aarch64 ARM binary.
For a test, please download the binary directly, then make it executable, then just run it like ./arm64_otm_1_81_2401
https://downloads.echonets.com/otm/arm64_otm_1_81_2401
Let us know the make/model of the Pi and what happens when you run it manually.
-
Raspberry Pi 3 B+ with 10 / Buster.
240K -rwxr-xr-x 1 root root 239K Sep 11 15:57 arm64_otm_1_81_2401 root@pihole:/otm# ./arm64_otm_1_81_2401 bash: ./arm64_otm_1_81_2401: cannot execute binary file: Exec format error
I can format it to 11 / Bullseye, but if that's still too old I can grab a new one, as I run a pi-hole I'll maintain a raspberry pi for my installation.
-
The Raspberry Pi 3 B+ typically runs a 32bit operating system by default, even though the hardware is 64bit capable.
If you're using a 32bit OS, the binary cannot work.
The binary is compiled as a 64bit executable, it won't run on a 32bit OS, which is likely the cause of the error you're seeing.
Here’s how you can check:
Confirm OS architecture: Run the following command to confirm if your OS is 32bit or 64bit:
uname -m
If the output is armv7l, it’s a 32bit OS. If it’s aarch64, then it’s 64bit.
Try running this against the binary that gets downloaded;
file /otm/otm_binary
-
-
Sorry, I didn't' see your reply before completing mine. Yes, you would need a 64bit OS running on the device for otm to run on this.
Hope this helps to solve the mystery.
-
All good, cleared up for now. Ordered a Pi 5, will be here tomorrow.
-
Great, let us know how that goes. It should work no problem.
-
Alright, we're in business. Purchased a Pi 5 for the PiHole / OTM client, working grand. The Pi 3 was formatted to the latest OS, and brought up as a purely OTM client.
Should I start a new thread about moving licenses and renaming things to let this be as something searchable for others in case they see this themselves?
-
If it's s different topic, best to start a new one otherwise, it gets lost in the thread. If you don't mind :).
-