Ylianst / MeshCentral

A complete web-based remote monitoring and management web site. Once setup you can install agents and perform remote desktop session to devices on the local network or over the Internet.
https://meshcentral.com
Apache License 2.0
4.24k stars 568 forks source link

/lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found #1857

Open drnikcuk opened 4 years ago

drnikcuk commented 4 years ago

Is anyone successfully running meshagent on aaarch64 ?

I have a NanoPi that's based on aarch64 nad for the life of me cannot get it running, error in topic.

I'm trying to figure out if there is a compatibility issue or a OS issue on the PI, I'm guessing the later ?

Ylianst commented 4 years ago

So yes, MeshCentral has an MeshAgent for 64bit ARM (aarch64). However your operating system probably uses an older version of GLIBC. Can you run the following commands and send back the output?

uname -a
ldd --version

If you login to your MeshCentral server and go to /meshagents you should see something like this:

image

Agent number 26 is the one that should work on 64bit ARM Raspberry Pi. Let me know exactly what OS you have and if you can update your OS.

drnikcuk commented 4 years ago

Thanks @Ylianst

Linux dns 4.14.111 #1 SMP Thu Dec 19 19:12:27 CST 2019 aarch64 aarch64 aarch64 GNU/Linux
ldd (Ubuntu GLIBC 2.23-0ubuntu11.2) 2.23

I'm running friendlyelec and its bang up to date (I assume, I've run updates and nothing is needed).

Currnet Model: NanoPi-NEO2-Black Kernel Version: 4.14.111

And my option 26 matches yours:

image

Installation was performed using an agent install script generated from the web gui.

Thanks

Ylianst commented 4 years ago

Thanks. Right now, I don't have a MeshAgent for aarch64 that works on GLIBC 2.23. I do have one for 32bit (Agent ID 27 will work on the older GLIBC for 32bit) The easiest would to update your operating system if possible. Otherwise, I need to get myself more devices.

drnikcuk commented 4 years ago

Happy to donate a NanoPi-NEO2-Black to the project!

Ylianst commented 4 years ago

Oh. I will gladly buy it online if I can get it with the exact operating system you have, but yes, if you have a very specific device and want support for it, contact me directly and send it over. I will add it to our test bench. This is what we have so far.

MC2-TestingTable

vitko-bg commented 4 years ago

@Ylianst sorry for off topic but pic you posted... just smashing - RESPECT for all hard work!!!!!

krayon007 commented 4 years ago

I'd post a cool picture too, but mine would be boring... I just have VMWare setup with 50 different guest VMs running all sorts of different OS/distributions/versions, lol...

vitko-bg commented 4 years ago

@krayon007 if all running at same time, what H/W you are running it on?!?! Poss dual Xeon Silver with 512GB Ram.... Upsss - off topic again :)

krayon007 commented 4 years ago

@krayon007 if all running at same time, what H/W you are running it on?!?! Poss dual Xeon Silver with 512GB Ram.... Upsss - off topic again :)

lol. No, I don't run it all at the same time. The most I've run simultaneously was around 5 images or so. My wife commandeered my home office, so I'm currently working out of a 16" Macbook Pro with 32gb RAM and 3TB of storage.

leleb commented 4 years ago

Please help,, could not install agent in: -openwrt running in x86_64 machine -also failed to install in a Endian firewall (based on linux centos x64 kernel 4.4) -also could not install in a gl.inet mv-1000 (which should be openwrt aarch64) -also failed to install in a gl.inet mt-300n-v2 (openwrt mipsel?) tried all available binary only succeeded to instal in a Huawei HG553 Does someone has experience in one of the above router?

1001crew commented 3 years ago

Thanks. Right now, I don't have a MeshAgent for aarch64 that works on GLIBC 2.23. I do have one for 32bit (Agent ID 27 will work on the older GLIBC for 32bit) The easiest would to update your operating system if possible. Otherwise, I need to get myself more devices.

Hi. Sorry to bother you. I have few (11) units of Odroid C2 running Stretch, around the world. Logged in in reverse SSH via Wireguard. Tried to install meshagent (26) Unfortunately they are stuck at GLIBC 2.24 while MeshAgent v8 require 2.25 Is there a way to bypass the request of GLIBC2.25 ??? Latest upgrade done but no signs of 2.25 or newer.

krayon007 commented 3 years ago

After unzipping this file, run the following command and let me know if it works: ./meshagent_aarch64 -info

meshagent_aarch64.zip

leleb commented 3 years ago

GL-MV1000W that's what i'm getting in my GL-MV1000W

krayon007 commented 3 years ago

OK, I looked up that device, I'll have to build it on a completely different toolchain... I'll get back to on this...

krayon007 commented 3 years ago

Just to clarify @drnikcuk should try the aarch64 build above, which is an aarch64/glib2.24/linux build... @leleb, you are using openwrt, which doesn't use glibc, so I'm building a toolchain for you armada soc, and will compile a different agent for you to test...

krayon007 commented 3 years ago

@leleb here is a meshagent that I built using a toolchain I made for OpenWRT v19.07.5 targeting Armada with Cortex A53

meshagent_aarch64-cortex-a53.zip

krayon007 commented 3 years ago

And here is a meshagent I built using a toolchain I made for OpenWRT targeting mipsel24kc

meshagent_mipsel24kc.zip

leleb commented 3 years ago

mipsel

OK the agent for openwrt mipsel24kc. used in GL-MT300N-V2 It connects to my meshcentral thanks!!!

leleb commented 3 years ago

I also noticed a "Linux MIPSEL24KC (OpenWRT)" with duplidcate ID28 and download link actually pointing to "Linux MIPS24KC (OpenWRT)" in agents download page after updating meshcentral to 0.7.45 Agents

krayon007 commented 3 years ago

Thanks for pointing that out... That is not the correct ID shown for MIPSEL24KC/OpenWRT... I'll have @Ylianst fix that.

leleb commented 3 years ago

Great!! also working the meshagent_aarch64-cortex-a53 in gl.inet mv-1000w aarch64

drnikcuk commented 3 years ago

Just got round to trying on my host:

root@dns:~# ./meshagent_aarch64 -info
Compiled on: 10:13:09, Jan 15 2021
   Commit Hash: 3a6e1f036c5e9c8a6bd569393ec36f2310ea9566
   Commit Date: 2021-Jan-14 14:58:14-0800
Using OpenSSL 1.1.1i  8 Dec 2020
krayon007 commented 3 years ago

ok, thanks for testing. I'll add the ones that are verified working to the server...

leleb commented 3 years ago

Just one question, the new released agents (mipsel and aarch64) connects to server but i am not able to route ports. Is that correct (because they are not released)? For example when I start ID28 in a openwrt mips router I get: Connecting to: wss://aaa.bbb.cc:443/agent.ashx Connected. Server verified meshcore... Launching meshcore...

while when starting the provided meshagent_mipsel24kc test agent I only get: Connecting to: wss://aaa.bbb.cc:443/agent.ashx Connected.

and the "Server verified meshcore... Launching meshcore..." is missing

krayon007 commented 3 years ago

Just one question, the new released agents (mipsel and aarch64) connects to server but i am not able to route ports. Is that correct (because they are not released)? For example when I start ID28 in a openwrt mips router I get: Connecting to: wss://aaa.bbb.cc:443/agent.ashx Connected. Server verified meshcore... Launching meshcore...

while when starting the provided meshagent_mipsel24kc test agent I only get: Connecting to: wss://aaa.bbb.cc:443/agent.ashx Connected.

and the "Server verified meshcore... Launching meshcore..." is missing

It should work, regardless if it's live or not... When you click on the console tab, does it show if a meshcore is loaded? Just to the left of the agent action button, there should be something like MeshCore CRC-3252971908, the actual CRC will vary depending on which core is loaded...

leleb commented 3 years ago

Immagine Actually no MeshCore CRC-...

Ylianst commented 3 years ago

About the wrong identifier in the agent table. This will be fixed in the new update of MeshCentral, however you can fix it now. Edit the node_modules/meshcentral/meshcentral.js file, search for these lines:

        28: { id: 28, localname: 'meshagent_mips24kc', rname: 'meshagent', desc: 'Linux MIPS24KC (OpenWRT)', update: true, amt: false, platform: 'linux', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // MIPS Router with OpenWRT
        29: { id: 29, localname: 'meshagent_osx-arm-64', rname: 'meshagent', desc: 'Apple macOS ARM-64', update: true, amt: false, platform: 'osx', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Apple Silicon ARM 64bit
        30: { id: 30, localname: 'meshagent_freebsd_x86-64', rname: 'meshagent', desc: 'FreeBSD x86-64', update: true, amt: false, platform: 'freebsd', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // FreeBSD x64
        40: { id: 28, localname: 'meshagent_mipsel24kc', rname: 'meshagent', desc: 'Linux MIPSEL24KC (OpenWRT)', update: true, amt: false, platform: 'linux', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // MIPS Router with OpenWRT
        10003: { id: 3, localname: 'MeshService.exe', rname: 'meshagent.exe', desc: 'Win x86-32 service, unsigned', update: true, amt: true, platform: 'win32', core: 'windows-amt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Unsigned version of the Windows MeshAgent x86
        10004: { id: 4, localname: 'MeshService64.exe', rname: 'meshagent.exe', desc: 'Win x86-64 service, unsigned', update: true, amt: true, platform: 'win32', core: 'windows-amt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Unsigned version of the Windows MeshAgent x64
        10005: { id: 10005, localname: 'meshagent_osx-universal-64', rname: 'meshagent', desc: 'Apple macOS Universal Binary', update: true, amt: false, platform: 'osx', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' } // Apple Silicon + x86 universal binary
    };

And change the incorrect "28" to "40" like this on the 4th line below:

        28: { id: 28, localname: 'meshagent_mips24kc', rname: 'meshagent', desc: 'Linux MIPS24KC (OpenWRT)', update: true, amt: false, platform: 'linux', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // MIPS Router with OpenWRT
        29: { id: 29, localname: 'meshagent_osx-arm-64', rname: 'meshagent', desc: 'Apple macOS ARM-64', update: true, amt: false, platform: 'osx', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Apple Silicon ARM 64bit
        30: { id: 30, localname: 'meshagent_freebsd_x86-64', rname: 'meshagent', desc: 'FreeBSD x86-64', update: true, amt: false, platform: 'freebsd', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // FreeBSD x64
        40: { id: 40, localname: 'meshagent_mipsel24kc', rname: 'meshagent', desc: 'Linux MIPSEL24KC (OpenWRT)', update: true, amt: false, platform: 'linux', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // MIPS Router with OpenWRT
        10003: { id: 3, localname: 'MeshService.exe', rname: 'meshagent.exe', desc: 'Win x86-32 service, unsigned', update: true, amt: true, platform: 'win32', core: 'windows-amt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Unsigned version of the Windows MeshAgent x86
        10004: { id: 4, localname: 'MeshService64.exe', rname: 'meshagent.exe', desc: 'Win x86-64 service, unsigned', update: true, amt: true, platform: 'win32', core: 'windows-amt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' }, // Unsigned version of the Windows MeshAgent x64
        10005: { id: 10005, localname: 'meshagent_osx-universal-64', rname: 'meshagent', desc: 'Apple macOS Universal Binary', update: true, amt: false, platform: 'osx', core: 'linux-noamt', rcore: 'linux-recovery', arcore: 'linux-agentrecovery' } // Apple Silicon + x86 universal binary
    };

Save and restart the server. That should work. Next version of MeshCentral v0.4.48 will also have this fix.

leleb commented 3 years ago

agent ID40 Linux MIPSEL24KC (OpenWRT) worked for me. It gets online but had to add -connect in the command line to have meshcore start. Otherwise connects but no "MeshCore CRC-..." in console page. Now I can route ports of my gl.inet MT300N-V2 . My meshagent.sh is now:

!/bin/sh

cd "/usr/local/mesh_services/meshagent/" exec "./meshagent" -no-embedded="1" -installedByUser=0 -connect

12nick12 commented 3 years ago

Not sure if you'd like me to open a new ticket, but I'm getting them same error when trying to install on a Unifi CloudKey Gen2. It's a Unifi box running Debian 9. Not sure what all you need from me, but here's a couple things I think might be helpful

Error: ./meshagent: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by ./meshagent)

uname -a Linux HomeNetController 3.18.44-ubnt-qcom #1 SMP Wed Jan 27 18:34:38 CST 2021 aarch64 GNU/Linux

cat /proc/cpuinfo Processor : AArch64 Processor rev 4 (aarch64) processor : 0 BogoMIPS : 38.40 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd03 CPU revision : 4

12nick12 commented 3 years ago

I downloaded and tested meshagent_aarch64 and it launched and it registered in MC, but it doesn't show the terminal option.

leleb commented 3 years ago

Finally my lasty wish is to have an agent for Openwrt x86-64, Thanks