Jump to content

Linux Problem


Phil Deakins
 Share

You are about to reply to a thread that has been inactive for 242 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

> > E U R E K A < <

I'm logged in using Radegast :D
 

2 hours ago, Henri Beauchamp said:

You just need to install the mono package that brings Mono Windows Forms support, which is likely named ”mono-winforms”, or something in that vein.

That's what finally did it for me. I couldn't find anything that looked suitable in the myriad of Mono packages so I did a web search on install mono on Raspberry Pi (something like that) and I found a step by step tutorial. It installed mono-complete and took a while. Running Radegast reported some errors and such but it opened and I'm logged in.

Like @Profaitchikenz Haiku I can see and wander through the inventory structure but no items get listed. That isn't important at all. If I need to do anything I would have had to fire up the tower and use a full viewer anyway.

I'm logged in with the Raspberry Pi 32 bit OS but I'll add it to the 64 bit system that I'm using for the web. I think it should be fine.

Thank you to everyone who contributed to me getting this far. Mainly Profaitchikenz and henri, but all who contributed and encouraged. Thank you :D

I've still surrendered as far as a full viewer is concerned though.

Edited by Phil Deakins
  • Thanks 1
Link to comment
Share on other sites

4 hours ago, Gavin Hird said:

The package manager on Raspbian OS is apt. If you have anything else, get rid of it.

Yes, I think the problem with others is likely to be the repositories they are querying.

It was my fault for assuming I was running synaptic via a front end that misled Phil earlier. Sometimes I can be wr- wr- wr- - not quite optimal.

  • Thanks 1
  • Haha 1
Link to comment
Share on other sites

A question for Henri, Coffee or Beq: how much work would be entailed in updating the Radegast 2.12 source to implement inventory via http and the newer login system? If it's a team-week then I appreciate it's probably not worth bothering over, but if it's a couple of hours I'm wondering if it's worth creating a Radegast fork from 2.12 targeting the Raspberry Pi specifically.

Edited by Profaitchikenz Haiku
  • Like 1
Link to comment
Share on other sites

20 minutes ago, Profaitchikenz Haiku said:

how much work would be entailed in updating the Radegast 2.12 source to implement inventory via http and the newer login system

You would probably be better off fixing the bugs in Cinder's updated Radegast version so that it properly works under Mono: main issues are about broken fonts and buttons, so that's not something terrible to fix...

Do not count on me, however. I'm busy enough with the Cool VL Viewer. :P

Edited by Henri Beauchamp
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

28 minutes ago, Henri Beauchamp said:

You would probably be better off fixing the bugs in Cinder's updated Radegast version so that it properly works under Mono:

I had thought about that first but it seemed better to start from a position of something which was working and go forwards rather than struggle to understand something that wasn't working. Thanks for your thoughts on this anyway.

Link to comment
Share on other sites

So I figured I use a rainy sunday to go down into my devil's workshop, pull out my old rpi port and see if it still works.

For the authentic experience I did all the compiling on a RPI 4 that has 8GB.

- Rebuilding the 3p libraries takes about 110 to 120 minutes.

- Building the viewer took about 8 to 9 hours (not sure, I roughly came back home after that time it look if it was done)

Time it took me to port my old changes and fix some new issues not included.

But tada

image.thumb.png.1710a119ae1956859903ab2996efdf8f.png

To answer @Monty Linden darkest and deepest hunger for knowledge: Yes, it can be done. Should it be done, lolnope. The viewer runs like a slow mess with 4 FPS as can be seen.

  • Like 3
Link to comment
Share on other sites

39 minutes ago, Nicky Dasmijn said:

The viewer runs like a slow mess with 4 FPS as can be seen.

With future/arriving SBCs using the new RK3588, you will likely be able to double or triple that FPS rate when compared to the PI4B RK3399

I'll probably buy one (once proper Linux support is available) next year...

I would also be interested to know if you can compile the current Cool VL Viewer release (v1.30.0.19) on your PI, using its current pre-built arm64 libraries.

Edited by Henri Beauchamp
Link to comment
Share on other sites

33 minutes ago, Henri Beauchamp said:

With future/arriving SBCs using the new RK3588, you will likely be able to double or triple that FPS rate when compared to the PI4B RK3399

I'll probably buy one (once proper Linux support is available) next year...

 

I saw those two SBCs in your earlier post and bookmarked them. Will be interesting to see what will come out of them.

Quote

I would also be interested to know if you can compile the current Cool VL Viewer release (v1.30.0.19) on your PI, using its current pre-built arm64 libraries.

I cannot:

  • There a curl prebuild with a wrong md5 in install.xml (87d52583fcf2cffb7ca3a61a4d1c1623  curl-7.47.0-aarch64-20220621.tar.bz2 would be correct)
  • After fixing that there is more severe errors:
[  9%] Building C object libopenjpeg/CMakeFiles/openjpeg.dir/jp2.c.o
In file included from /source/linden/indra/libopenjpeg/dwt.c:35:
/source/linden/indra/../include/sse2neon.h: In function _mm_malloc’:
/source/linden/indra/../include/sse2neon.h:1967:10: error: implicit declaration of function posix_memalign [-Werror=implicit-function-declaration]
 1967 |     if (!posix_memalign(&ptr, align, size))
      |          ^~~~~~~~~~~~~~
In file included from /source/linden/indra/libopenjpeg/dwt.c:35:
/source/linden/indra/../include/sse2neon.h: In function _rdtsc’:
/source/linden/indra/../include/sse2neon.h:8815:5: error: asm undeclared (first use in this function)
 8815 |     asm volatile("mrs %0, cntvct_el0" : "=r"(val));
      |     ^~~
/source/linden/indra/../include/sse2neon.h:8815:5: note: each undeclared identifier is reported only once for each function it appears in
/source/linden/indra/../include/sse2neon.h:8815:8: error: expected ‘;’ before volatile
 8815 |     asm volatile("mrs %0, cntvct_el0" : "=r"(val));
      |        ^~~~~~~~~
      |        ;
cc1: all warnings being treated as errors
make[2]: *** [libopenjpeg/CMakeFiles/openjpeg.dir/build.make:104: libopenjpeg/CMakeFiles/openjpeg.dir/dwt.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....

 

Link to comment
Share on other sites

On 10/1/2022 at 10:59 AM, Profaitchikenz Haiku said:

A question for Henri, Coffee or Beq: how much work would be entailed in updating the Radegast 2.12 source to implement inventory via http and the newer login system? If it's a team-week then I appreciate it's probably not worth bothering over, but if it's a couple of hours I'm wondering if it's worth creating a Radegast fork from 2.12 targeting the Raspberry Pi specifically.

Though I haven't tried the older Radegast myself recently, I'd suspect that like the Lumiya viewer it would still work as expected in Opensim for Inventory and logins since the developer by request, used an either or approach to the newer HTTP protocol vs the older UDP. The login for Lumiya still works in S/L but like Radegast, the inventory no longer does.

Edited by Arielle Popstar
Link to comment
Share on other sites

1 hour ago, Nicky Dasmijn said:

There a curl prebuild with a wrong md5 in install.xml (87d52583fcf2cffb7ca3a61a4d1c1623  curl-7.47.0-aarch64-20220621.tar.bz2 would be correct)

I thought I had that fixed already ! 😲

EDIT2: I did fix it for v1.30.1.2 (experimental branch), but forgot the v1.30.0 stable branch... 🤪

1 hour ago, Nicky Dasmijn said:

After fixing that there is more severe errors:

These are just ”warnings treated as errors”, because we use the pedantic -Wall and strict -Werror.

You should be able to compile the viewer nonetheless, using the ”--ignore-warnings” option (or ”-i”, for short) in the linux-build.sh command line, i.e. ./linux-build.sh -i

But I'll try and (blindly, since I cannot test) fix those warnings.

EDIT: the missing ”asm” is likely due to your gcc compiler being (strangely, since I'm not seeing this happening with gcc for x86_64) too strict about the C standard. Try and change 'set(CMAKE_C_FLAGS ”${CMAKE_C_FLAGS} -std=c11”)' for 'set(CMAKE_C_FLAGS ”${CMAKE_C_FLAGS} -std=gnu11”)' line 134 of linden/indra/cmake/00-Common.cmake

EDIT3: the implicit posix_memalign issue should be fixed after inserting '# include <stdlib.h>' before '# include ”sse2neon.h”' in linden/indra/libopenjpeg/dwt.c and linden/indra/libopenjpeg/mct.c Not sure why sse2neon.h is not including stdlib.h by itself...

Edited by Henri Beauchamp
  • Like 1
Link to comment
Share on other sites

4 minutes ago, Henri Beauchamp said:

These are just ”warnings treated as errors”, because we use the pedantic -Wall and strict -Werror.

You should be able to compile the viewer nonetheless, using the ”--ignore-warnings” option (or ”-i”, for short) in the linux-build.sh command line, i.e. ./linux-build.sh -i

The first one (about post memalign) is a warning treated as error. The next two about the inline assembly are real errors and would not go away by disabling -Werror.

The resulting binary btw would not run, there is a few libraries that are compiled with a more recent GLIBC (2.32) than the official Rasperry Distribution (Debian 11/bullseye, GLIBC 2.31) ships.

Link to comment
Share on other sites

1 minute ago, Nicky Dasmijn said:

The first one (about post memalign) is a warning treated as error. The next two about the inline assembly are real errors and would not go away by disabling -Werror.

See my EDIT above :-P

1 minute ago, Nicky Dasmijn said:

The resulting binary btw would not run, there is a few libraries that are compiled with a more recent GLIBC (2.32) than the official Rasperry Distribution (Debian 11/bullseye, GLIBC 2.31) ships.

Yes, apparently Phil encountered the same issue, at first, but he also found a newer distro with a newer glibc for his PI...

Link to comment
Share on other sites

8 hours ago, Henri Beauchamp said:

EDIT: the missing ”asm” is likely due to your gcc compiler being (strangely, since I'm not seeing this happening with gcc for x86_64) too strict about the C standard. Try and change 'set(CMAKE_C_FLAGS ”${CMAKE_C_FLAGS} -std=c11”)' for 'set(CMAKE_C_FLAGS ”${CMAKE_C_FLAGS} -std=gnu11”)' line 134 of linden/indra/cmake/00-Common.cmake

 

 

 

Those lines are for Darwin, not for Linux.

Changing c++17 to gnu++17 did not help.

What helps is changing 'asm' to '__asm__' in se2neon.h:8815

Link to comment
Share on other sites

21 minutes ago, Nicky Dasmijn said:

Those lines are for Darwin, not for Linux.

Not line 134, no, but you may change both (clang will accept it too, for Darwin).

21 minutes ago, Nicky Dasmijn said:

Changing c++17 to gnu++17 did not help.

Normal... libopenjpeg is pure C code...

22 minutes ago, Nicky Dasmijn said:

What helps is changing 'asm' to '__asm__' in se2neon.h:8815

Yes, but with just the change of the compile flag, you should get it to compile without risking breaking sse2neon.h for other compilers.

Link to comment
Share on other sites

5 minutes ago, Henri Beauchamp said:

Not line 134, no, but you may change both (clang will accept it too, for Darwin).

Normal... libopenjpeg is pure C code...

 

And why did you suggest it then last night?

 

Anyway with changing a header I can get to SLPlugin, then it's trying to link apr the first time. apr is one of the libs linked to a too recent glibc and unsurprisingly that fails and stops the build for good

 39%] Linking CXX executable SLPlugin
/usr/bin/ld: /source/linden/indra/../lib/release/libapr-1.so: undefined reference to `pthread_sigmask@GLIBC_2.32'
collect2: error: ld returned 1 exit status
make[2]: *** [llplugin/slplugin/CMakeFiles/SLPlugin.dir/build.make:102: llplugin/slplugin/SLPlugin] Error 1
make[1]: *** [CMakeFiles/Makefile2:913: llplugin/slplugin/CMakeFiles/SLPlugin.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
[1]    26284 exit 2     make

 

Link to comment
Share on other sites

I am so impressed with this continuation and getting a full viewer to actually run. Even if I understood a word of what's being discussed, it's not for me. When I need a full viewer, I need more than 4 fps. I'm very impressed though :)

 

Edited by Phil Deakins
Link to comment
Share on other sites

31 minutes ago, Nicky Dasmijn said:

And why did you suggest it then last night?

I made several edits in a raw (it was past 02:00 and I was tired): you probably missed the last ”line 134” addition I made just before going to bed...

31 minutes ago, Nicky Dasmijn said:

Anyway with changing a header I can get to SLPlugin, then it's trying to link apr the first time. apr is one of the libs linked to a too recent glibc and unsurprisingly that fails and stops the build for good

Yes, you'd need to update glibc; it should be doable without reinstalling everything (that's the beauty of Linux), and ”just” a matter of finding the glibc v2.32+ packages for your distro (you could grab packages from a newer distro and install them manually in yours).

Sadly, the pre-built libraries builder apparently updated his own system and re-complied some libraries with it... This kind of things will not happen any more when I will have bought myself an ARM64 SBC, at which point I will ”officially” support Linux-arm64 Cool VL Viewer builds.

Edited by Henri Beauchamp
Link to comment
Share on other sites

On 10/3/2022 at 5:33 AM, Henri Beauchamp said:

Sadly, the pre-built libraries builder apparently updated his own system and re-complied some libraries with it... This kind of things will not happen any more when I will have bought myself an ARM64 SBC, at which point I will ”officially” support Linux-arm64 Cool VL Viewer builds.

So though I haven't a clue about the building and compiling, seeing my android phone is running on an Arm64 processor, how much trouble would it be to also adapt Cool viewer to an Android, whether Cell or tablet?

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 242 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...