CVMEventi / Countdown

Simple timer for live events
Mozilla Public License 2.0
59 stars 7 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 1 year ago

@djbx83 any news of your attempts?

djbx83 commented 1 year 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 1 year 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 1 year ago

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

djbx83 commented 1 year ago

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

cipi1965 commented 1 year 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 1 year ago

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

cipi1965 commented 1 year ago

Is you used 0.0.32 it should have worked

djbx83 commented 1 year ago

Yes, 2 weeks ago I've tested 0.0.32