CVMEventi / Countdown

Simple timer for live events
Mozilla Public License 2.0
53 stars 5 forks source link

Disable NDI support when compiled on ARM SoC #17

Open djbx83 opened 1 year ago

djbx83 commented 1 year ago

Hello CVMEventi, as I wrote in subject, it is convenient to disable NDI support when build executables on ARM SoC processors, because NewTek does not support NDI SDK on ARM CPUs. Indeed, when I trying to run and/or build on RaspberryPI, lasts versions with NDI failed to build up.

Thank you

cipi1965 commented 1 year ago

Hello, NDI SDK supports arm on Linux, did you try compiling it?

djbx83 commented 1 year ago

Honestly not, I haven't tried. I tried to build up Countdown on Raspberry Pi OS latest version, and failed on Grandiose library. So I suppose that this issue is caused by NDI libraries not available for ARM.

What do you suggest?

cipi1965 commented 1 year ago

Unfortunately i haven't got any raspberry to try the build. I can try checking grandiose. Could you post the build log?

djbx83 commented 1 year ago

Yes I could. I will retry to build on Raspi3 and post logs in the next days.

Thank you

cipi1965 commented 1 year ago

Thank you. Is RPi 3 arm64?

djbx83 commented 1 year ago

Thank you. Is RPi 3 arm64?

Yes it is. https://www.raspberrypi.com/news/raspberry-pi-os-64-bit/

cipi1965 commented 1 year ago

@djbx83 i tried build on a arm64 Ubuntu VM and it works correctly

djbx83 commented 1 year ago

Ok. I will upload build trace in the next days, so you can see the error.

cipi1965 commented 1 year ago

I can try adding an automatic build of arm64 targets in the mean time

djbx83 commented 1 year ago

Thank you. It is not urgent, because if I use an older release, such as the last w/o NDI support, it works perfectly.

cipi1965 commented 12 months ago

@djbx83 any news of your attempts?

djbx83 commented 11 months ago

Sorry, but unfortunately I still haven't managed these days. I should be able to re-take a test tomorrow. Thank you!

djbx83 commented 11 months ago

Hello cipi1965, today I've decided to test on a Raspberry PI 4 8GB with the latest Raspberry PI OS 64bit and every upgrades done. I'm happy to announce that it works! I've followed these steps below:

NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
sudo apt-get install nodejs -y

update-electron-app config looks good; aborting updates since app is in development mode MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to retrieve device information MESA-LOADER: failed to open kms_swrast: /usr/lib/dri/kms_swrast_dri.so: impossibile aprire il file oggetto condiviso: Permesso negato (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri) failed to load driver: kms_swrast MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: impossibile aprire il file oggetto condiviso: Permesso negato (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri) failed to load swrast driver (node:6073) ExtensionLoadWarning: Warnings loading extension at /home/fabrizio/.config/countdown/extensions/nhdogjmejiglipccpnnnanhbledajbpd: Manifest version 2 is deprecated, and support will be removed in 2023. See https://developer.chrome.com/blog/mv2-transition/ for more details.

(Use electron --trace-warnings ... to show where the warning was created) Added Extension: Vue.js devtools [6073:0924/110807.952802:ERROR:CONSOLE(2)] "Electron sandboxed_renderer.bundle.js script failed to run", source: node:electron/js2c/sandbox_bundle (2) [6073:0924/110807.952934:ERROR:CONSOLE(2)] "TypeError: object null is not iterable (cannot read property Symbol(Symbol.iterator))", source: node:electron/js2c/sandbox_bundle (2)

As you can see, there are some errors but it works. After a couple of second it appear.
- Install RPM
`sudo apt install rpm`
- Lauch "yarn make"

fabrizio@raspberrypi:~/Desktop/Countdown $ yarn make yarn run v1.22.19 $ cross-env NODE_ENV=production electron-forge make ✔ Checking your system ✔ Loading configuration ✔ Resolving make targets › Making for the following targets: rpm, deb ✔ Running package command ✔ Preparing to package application ✔ Running packaging hooks ✔ Running generateAssets hook ✔ Running prePackage hook ✔ [plugin-webpack] Preparing native dependencies: 1 / 1 ✔ [plugin-webpack] Building webpack bundles ✔ Packaging application ✔ Packaging for arm64 on linux [26s] ✔ Running postPackage hook ✔ Running preMake hook ✔ Making distributables ✔ Making a rpm distributable for linux/arm64 [3m25s] ✔ Making a deb distributable for linux/arm64 [3m11s] ✔ Running postMake hook › Artifacts available at: /home/fabrizio/Desktop/Countdown/out/make Done in 525.13s.



I don't know if the issue was caused by RaspberryPI 3... I will try next week when my Raspis 3 return to home (now are deployed on an event)
cipi1965 commented 11 months ago

Do you use 32 bit RPi OS on RPi 3? It could be the difference with your RPi 4

djbx83 commented 11 months ago

No, I don't. I've used same 64bit OS on Raspberry PI 3

cipi1965 commented 11 months ago

Let's see with your RPi 3.

When did you try last time? There was a compile issue because of NDI SDK was updated and Grandiose not.

djbx83 commented 11 months ago

Last time was the same day I opened the issue, September 13.

cipi1965 commented 11 months ago

Is you used 0.0.32 it should have worked

djbx83 commented 11 months ago

Yes, 2 weeks ago I've tested 0.0.32