Cannot successfully recompile the AppImage for raspberry

Hello @rhys_m,

In the beginning i would like to say thank you for your whole work. It is amazing!

I was using your application for about half a year in my car using some old laptop with fedora linux. I did it just becouse i had this laptop and it was dusting in the basement.
Problem with my car is that i have a really wide dashboard, and it’s quite far from driver so it’s not possible to get a touchscreen (It is Renault Espace 4). So i ported factory joystick for navigation to some keys in python. I know it sounds ridicolous, but really it’s not possible to have touchscreen.

So to use carplay properly i did changes in keybindings and recompile appimage for linux. So far it worked very good. But Laptop have some disadvantages - high power consumption (80Watts), problem with starting and turning off computer etc.

So last time, i finally got RPi 4B and wanted to make version of application with my changes. So far i compiled it without problem on the same source that i compiled appimage for linux. But…

I’m using raspbian 64-bit and when i’m trying to start application i get this strange error:

A JavaScript error occurred in the main process
Uncaught Exception:
Error: /tmp/.mount_ReactCacKSwf/resources/app.asar.unpacked/node_modules/node-carplay/node_modules/usb/build/Release/usb_bindings.node: It is not possible to open file of shared object. There is no such file or directory.
at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1822)
at Module._extensions…node (node:internal/modules/cjs/loader:1226:18)
at Object.func [as .node] (node:electron/js2c/asar_bundle:2:2049)
at Module.load (node:internal/modules/cjs/loader:1011:32)
at Module._load (node:internal/modules/cjs/loader:846:12)
at f._load (node:electron/js2c/asar_bundle:2:13328)
at Module.require (node:internal/modules/cjs/loader:1035:19)
at require (node:internal/modules/cjs/helpers:102:18)
at load (/tmp/.mount_ReactCacKSwf/resources/app.asar/node_modules/node-gyp-build/index.js:22:10)
at Object. (/tmp/.mount_ReactCacKSwf/resources/app.asar/node_modules/node-carplay/node_modules/usb/dist/usb/bindings.js:8:36)

The problem is that in compiled and unpacked files at this path:
dist/linux-arm64-unpacked/resources/app.asar.unpacked/node-modules/node-carplay/node-modules/usb/build/Release
There is a file named usb_bindings.node.

So i don’t understand how is that possible that this file is not in compiled and packed .Appimage?

Could you please tell me what version of node.js and npm are you using? Maybe this is crucial to what is the output?
So far i was trying with 14.21.3, 15.14.0, 16.20.2, 18.16.1

In every version the problem persist.
I’m running compilation from your command: npm run build-package
As i said above, compilation from npm run build-packagex64 for standard linux worked without any problem.

Maybe you could say something to resolve the problem. I would really apreciate that.

Hi Tomek,

Can you run the prebuilt versions ok? The ones available from here:

Yes, I forgot to write about it. :sweat_smile: Pre-built version worked without problem. That’s why asking for your node version to try :sweat_smile:

Try and run ‘npm run build’ followed by ‘npm run package-x64’

Okay, i’ll give it a try!

Oh right.
So I made it finally. The problem causing electron-rebuild command form package.json:
“build-package”: “npm run electron-rebuild && npm run build && npm run build-electron && npm run package”,

But if i run:

npm run build && npm run build-electron && npm run package

Everything goes fine.

Thanks for your help and guidance!

1 Like