sccn / liblsl

C++ lsl library for multi-modal time-synched data transmission over the local network
Other
108 stars 63 forks source link

Add support for building a liblsl binary for the new architecture of Notion 2 #80

Closed andrewjaykeller closed 3 years ago

andrewjaykeller commented 3 years ago

Hi Liblsl team

We've had success running LSL natively and enabling it with a toggle button on the Notion 1. We're ramping up to ship out Notion 2 but don't have access to the proper binary.

We're using a 64 bit arm core and need a .so

What do we need to do to get the binary automatically build by liblsl?

Thanks,

AJ

cboulay commented 3 years ago

ARM targets are currently not part of any of our CI implementations and are therefore not automatically deployed to the tags/releases. That's something that we should fix. As far as you know, will building for a Raspberry Pi 4 B (Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz) be a decent proxy for whether or not it will work on your device?

tstenner commented 3 years ago

The fastest way is to download the repository and run standalone_linux.sh

The recent releases have drastically lower memory requirements so building on the device itself is both feasible and avoids all of the usual problems with cross compilation.

andrewjaykeller commented 3 years ago

Hi @cboulay I think that should be fine, the arch is arm64. Worth a try for sure.

@tstenner I'm trying as instructed and am waiting on compilation - thanks

andrewjaykeller commented 3 years ago

Thanks for the help @tstenner i was able to get the arm64 build. Have a great day!

cboulay commented 3 years ago

@andrewjaykeller I made a new prerelease and attached a tar.bz2 of liblsl.so that I compiled on my raspberry pi 4b. https://github.com/sccn/liblsl/releases/tag/v1.14.0b3 I know you don't need it, but someone else might find this thread in a search, or maybe it'll be useful to point your build system to a web-accessible file. I have no idea if it will work for you. Its dependencies might be all wrong for your platform.

pi@raspberrypi:~/Code/labstreaminglayer/LSL/liblsl $ ldd -v liblsl.so
    linux-vdso.so.1 (0xbefc5000)
    /usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0xb6e6e000)
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6e30000)
    librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6e19000)
    libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6e06000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xb6cbf000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb6c3d000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb6c10000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6ac2000)
    /lib/ld-linux-armhf.so.3 (0xb6f9b000)