org-arl / unet-contrib

Unet user contributions
BSD 3-Clause "New" or "Revised" License
11 stars 15 forks source link

Stuck loading files in UNetSim when launching with "-ip 0.0.0.0" #84

Open brodiealexander opened 1 year ago

brodiealexander commented 1 year ago

Context:

All tests were performed on an M1 MacBook Air running macOS 13.2 using unet-community 3.4.0

When running UNetSim via "bin/unet -ip 0.0.0.0 sim" the simulator web page will perpetually be at "Loading files...".

This result was seen under the following testing environments:

When testing with IP = 127.0.0.1, everything loaded correctly under macOS 13.2

image
notthetup commented 1 year ago

Hi @brodiealexander. Apologies for taking a while to come back to this. Were there any errors in the log files? That "Failed to fetch simulation status" indicates that the ShellAgent didn't respond to the Web Interface when it queried for the status of the current simulation.

patel999jay commented 5 months ago

@notthetup and @brodiealexander : works fine on my macbook pro M2.

uname -a                                                                                                                          ─╯
Darwin Jays-MacBook-Pro.local 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:31:00 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T6020 arm64
Screenshot 2024-03-10 at 10 19 48 PM Screenshot 2024-03-10 at 10 21 22 PM

P.S. : tested this on all my browser : chrome, safari and firefox.

patel999jay commented 5 months ago

@notthetup : On a side note, newer version of unet-3.4.4 - phy yoda is compiled with the newer version of glibc (it may be compiled with gcc-11 and my gcc version of ubuntu 20.04 distribution and version only is gcc-9 and therefore only provides glibc_2.31 (I guess)). There should be backward compatibility, and it should support the older version of ubuntu. Any thoughts ?

here is some more info if needed :

╭─    ~/Documents/unet-community-3.4.4/unet-3.4.4 ───────────────────────────────────────────────────────── ✔  11:22:10 PM  ─╮
╰─  bin/unet -c audio                                                                                                                                     ─╯
Native library yoda_phy_pa_amd64 not found : java.lang.UnsatisfiedLinkError: /home/jay/Documents/unet-community-3.4.4/unet-3.4.4/lib/libyoda_phy_pa_amd64.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/jay/Documents/unet-community-3.4.4/unet-3.4.4/lib/libyoda_phy_pa_amd64.so)

╭─    ~/Documents/unet-community-3.4.4/unet-3.4.4 ───────────────────────────────────────────────────────── ✔  11:22:12 PM  ─╮
╰─ gcc --version                                                                                                                                         ─╯
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
notthetup commented 5 months ago

Thanks @patel999jay . Let me explore how we can support this.

patel999jay commented 3 months ago

@notthetup : any updates on this ?

patel999jay commented 2 months ago

@notthetup : any updates, we can not run this now on our newer jetson orin nano as well, Any suggestions ?

isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ uname -a
Linux isl-jetson 5.15.136-tegra #1 SMP PREEMPT Mon May 6 09:56:39 PDT 2024 aarch64 aarch64 aarch64 GNU/Linux
isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Zulu 8.60.0.21-CA-linux_aarch64) (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (Zulu 8.60.0.21-CA-linux_aarch64) (build 25.322-b06, mixed mode)
isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ ls lib
cloning-1.9.12.jar          gson-2.8.5.jar                       jetty-server-9.4.26.v20200117.jar   libyoda_phy_pa_amd64.so      unet-yoda-3.4.4.jar
commons-fileupload-1.4.jar  javax.servlet-api-3.1.0.jar          jetty-servlet-9.4.26.v20200117.jar  libyoda_phy_pa_x86_64.dylib  websocket-api-9.4.26.v20200117.jar
commons-io-2.6.jar          jetty-client-9.4.26.v20200117.jar    jetty-util-9.4.26.v20200117.jar     objenesis-3.0.1.jar          websocket-client-9.4.26.v20200117.jar
commons-lang3-3.9.jar       jetty-http-9.4.26.v20200117.jar      jetty-xml-9.4.26.v20200117.jar      unet-basic-3.4.4.jar         websocket-common-9.4.26.v20200117.jar
commons-math3-3.6.1.jar     jetty-io-9.4.26.v20200117.jar        jline-3.12.1.jar                    unet-framework-3.4.4.jar     websocket-server-9.4.26.v20200117.jar
fjage-1.9.1.jar             jetty-rewrite-9.4.26.v20200117.jar   jSerialComm-2.5.1.jar               unet-simulator-3.4.4.jar     websocket-servlet-9.4.26.v20200117.jar
groovy-2.5.9.jar            jetty-security-9.4.26.v20200117.jar  libyoda_phy_pa_aarch64.dylib        unet-webif-3.4.4.jar
isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ ls lib/libyoda_phy_pa_aarch64.dylib
lib/libyoda_phy_pa_aarch64.dylib
isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ ll lib/libyoda_phy_pa_aarch64.dylib
-rwxrwx--x 1 isl isl 176696 Feb 19 05:32 lib/libyoda_phy_pa_aarch64.dylib*
isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ echo $LD_LIBRARY_PATH
/usr/local/lib
isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ ls -l /usr/local/lib/libportaudio.so.2.0.0
-rwxr-xr-x 1 root root 647504 Jun 17 00:59 /usr/local/lib/libportaudio.so.2.0.0
isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ gcc --version
gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$ bin/unet -c audio
Native library yoda_phy_pa_aarch64 not found : java.lang.UnsatisfiedLinkError: no yoda_phy_pa_aarch64 in java.library.path
isl@isl-jetson:~/unet-community-3.4.4/unet-3.4.4$

P.S.: we re-installed the portaudio, i rebuilt the portaudio as well (NO LUCK).

notthetup commented 2 months ago

@patel999jay

Unet audio is not supported on Linux/ARM for now. We'll explore if we can also bundle a version that also supports Linux/ARM in the future. Currently supported platforms are..

Linux/x86 macOS/x86 macOS/ARM

We did publish a build for Linux/ARM in the past. You can see if you can use that. https://github.com/org-arl/unet-doc/raw/master/docs/downloads/unet-community-pi-3.1.0.tgz

We'll consider adding Linux/ARM to this list in the future. Lots of changes coming to UnetStack soon, so will have to figure out how/when things get released.


On the earlier issue with glibc combat. I did manage to get to the bottom of it. unet-v3.4.4 should be compiled on Ubuntu 18.08. So it should be compatible with anything newer than that.

patel999jay commented 2 months ago

@notthetup : Thanks, I will try this build for Linux/ARM.

manuignatius commented 2 months ago

@patel999jay This blog article that may have information regarding running Unet audio for Linux/arm: https://blog.unetstack.net/Project-Sabine-Low-cost-DIY-underwater-modem-using-COTS-components-and-Unet-audio

patel999jay commented 2 months ago

@manuignatius : still have the same issue on new jetson nano orin. I followed the same steps outlined in the post you mentioned. It does work on RPi, very strange.

notthetup commented 1 month ago

@patel999jay I think it's an ARM32 vs ARM64 issue. https://github.com/org-arl/unet-doc/raw/master/docs/downloads/unet-community-pi-3.1.0.tgz is compiled for ARM32. The Jetson Nanos are ARM64.

Let me take a look to see if it's possible to recompile the the shared library for ARM64.