Dotnet core and AXCF 3152

Hi,

we are using dot net core 3.1.28 on 2152 , and it works perfectly.
While migrating to 3152 platform, we have tried to execute it and both dotnet installation on linux-x64 or standalone c# executable can not be launched. Shell produces a „-sh: /opt/plcnext//dotnet/dotnet: No such file or directory“ error. We are using AXC_F_3152_FW2022.0.5 on harware type 2 firmware. On the 2152 the firmware was 2021.0.3

we don’t know if the issue comes from the firware release or achitecture change. Everything seems to be ok in dependencies, as ldd provides for dotnet executable:

admin@axcf3152:~$ ldd ./dotnet/dotnet
linux-vdso.so.1 (0x00007ffee1d39000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f8eb3315000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f8eb3310000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f8eb3136000)
libm.so.6 => /lib/libm.so.6 (0x00007f8eb2ff4000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f8eb2fda000)
libc.so.6 => /lib/libc.so.6 (0x00007f8eb2e1d000)
/lib64/ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x00007f8eb3554000)

architecture matches too :
file ./dotnet/dotnet
./dotnet/dotnet: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, BuildID[sha1]=b94a2343ba839a7534fc8600f49001a2077aeafb, stripped
uname -a : [15:00] SIVAMANOGARAN Rajeethan (EQUANS FR)

Linux axcf3152 5.4.47-rt28-pxc #1 SMP PREEMPT_RT Wed Dec 15 20:26:30 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Has anybody already met this issue ? Or have you any tricks to solve it ?

Thx

Does the interpreter exist on the device?
./dotnet/dotnet: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1 , BuildID[sha1]=b94a2343ba839a7534fc8600f49001a2077aeafb, strippedIf not, then a quick-fix might be to create that file as a symbolic link, pointing to the ld-linux-x86-64.so.2 interpreter.

sorry,

the information we sent was on the dotnet linux-x64 alpine.
on the linux x-64 dotnet core version, the trace is
admin@axcf3152:/opt/plcnext/dotnetrt$ file dotnet
dotnet: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/__ld-linux-x86-64.so.2 , for GNU/Linux 2.6.32, BuildID[sha1]=91a0d1a14c8dae419ae365bb7e4575123c562ba5, stripped
and this lib seems to be correctly mapped :

admin@axcf3152:/opt/plcnext/dotnetrt$ ldd dotnet
linux-vdso.so.1 (0x00007fff1c395000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f38968f6000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f38968f1000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f389676d000)
libm.so.6 => /lib/libm.so.6 (0x00007f389662c000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f3896612000)
libc.so.6 => /lib/libc.so.6 (0x00007f3896457000)
/lib64/ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x00007f3896b30000)

and the behavior is the same :
admin@axcf3152:/opt/plcnext/dotnetrt$ ls -l total 116 -rw-r–r-- 1 admin plcnext 1116 Aug 18 2022 LICENSE.txt -rw-r–r-- 1 admin plcnext 31330 Aug 18 2022 ThirdPartyNotices.txt -rwxr-xr-x 1 admin plcnext 72160 Aug 18 2022 dotnet drwxrwxr-x 3 admin plcnext 4096 Aug 18 2022 host drwxrwxr-x 3 admin plcnext 4096 Aug 18 2022 shared

admin@axcf3152:/opt/plcnext/dotnetrt$ ./dotnet -sh: ./dotnet: No such file or directory

I suspect there still needs to be a symbolic link in the lib64 directory, pointing to the interpreter in the lib directory.
Is that the case?

it works ! Thx you very much!
after su:
mkdir -p /usr/lib64 ln -s /usr/lib/ld-linux-x86-64.so.2 /usr/lib64/ld-linux-x86-64.so.2
maybe it will be a good trick to update dotnetcore deployment informations in the site with this trick :slight_smile:
Thx again!