Serial USB Port doesn't work with RFXCOM

  • Platform information:

    • Apple Silicon M4 ARM64
    • MacOS Tahoe
    • Oracle - Jjdk-21_macos-aarch64_bin
    • openHAB 5.1.1
  • Hello Community

    I switched from an Intel-based Mac Mini to an Apple Silicon Mac Mini M4 (ARM64) with openhab. I reinstalled Openhab 5.1.1. After installing the RFXCOM binding and entering the USB Prot, the following error occurs after starting openhab:

    (mach-o file, but is an incompatible architecture (have “x86_64”, need “arm64e” or “arm64e.v1” or “arm64” or “arm64”))

    I first installed Java Temurin21 for ARM and currently have Oracle 21 Java for ARM installed, but I always get the same error message with both. I also tried installing various FTDI drivers (VCP, D2xx) for the ARM platform, but without success.
    Unfortunately, I am not a programmer and do not know what else I can do to make it work. Does anyone have any ideas?

    Best regards,
    Carsten

openhab> log:tail
10:57:54.947 [INFO ] [org.openhab.core.Activator           ] - Starting openHAB 5.1.1 (Release Build)
10:57:55.044 [INFO ] [b.core.internal.i18n.I18nProviderImpl] - Time zone set to 'Europe/Berlin'.
10:57:55.046 [INFO ] [b.core.internal.i18n.I18nProviderImpl] - Location set to '51.4156736682485,6.568466934552127'.
10:57:55.046 [INFO ] [b.core.internal.i18n.I18nProviderImpl] - Locale set to 'de_DE'.
10:57:57.018 [INFO ] [b.core.model.lsp.internal.ModelServer] - Started Language Server Protocol (LSP) service on port 5007
10:58:00.109 [INFO ] [re.automation.internal.RuleEngineImpl] - Rule engine started.
10:58:02.144 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'rfxcom:RFXtrx433:86203ae030' changed from UNINITIALIZED (NOT_YET_READY) to INITIALIZING
10:58:02.145 [INFO ] [hab.event.ThingStatusInfoChangedEvent] - Thing 'rfxcom:RFXtrx433:86203ae030' changed from INITIALIZING to OFFLINE
10:58:02.147 [INFO ] [ternal.connector.RFXComJD2XXConnector] - Connecting to RFXCOM device '/dev/tty.usbserial-A11DA4VL' using JD2XX.
/jni/mac/x86_64/libjd2xx.jnilib
10:58:02.151 [ERROR] [.internal.handler.RFXComBridgeHandler] - Error occurred when trying to load native library for OS 'Mac OS X' version '26.2', processor 'aarch64'
java.lang.UnsatisfiedLinkError: /Users/server/Downloads/openhab-5.1.1/userdata/tmp/libjd2xx379715987545615707.jnilib: dlopen(/Users/server/Downloads/openhab-5.1.1/userdata/tmp/libjd2xx379715987545615707.jnilib, 0x0001): tried: '/Users/server/Downloads/openhab-5.1.1/userdata/tmp/libjd2xx379715987545615707.jnilib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64e.v1' or 'arm64' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/server/Downloads/openhab-5.1.1/userdata/tmp/libjd2xx379715987545615707.jnilib' (no such file), '/Users/server/Downloads/openhab-5.1.1/userdata/tmp/libjd2xx379715987545615707.jnilib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64e.v1' or 'arm64' or 'arm64'))
	at jdk.internal.loader.NativeLibraries.load(Native Method) ~[?:?]
	at jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:331) ~[?:?]
	at jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:197) ~[?:?]
	at jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:139) ~[?:?]
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2418) ~[?:?]
	at java.lang.Runtime.load0(Runtime.java:852) ~[?:?]
	at java.lang.System.load(System.java:2025) ~[?:?]
	at cz.adamh.utils.NativeUtils.loadLibraryFromJar(NativeUtils.java:91) ~[?:?]
	at jd2xx.JD2XX.<clinit>(JD2XX.java:768) ~[?:?]
	at org.openhab.binding.rfxcom.internal.connector.RFXComJD2XXConnector.connect(RFXComJD2XXConnector.java:49) ~[?:?]
	at org.openhab.binding.rfxcom.internal.handler.RFXComBridgeHandler.connect(RFXComBridgeHandler.java:211) ~[?:?]
	at org.openhab.binding.rfxcom.internal.handler.RFXComBridgeHandler.lambda$0(RFXComBridgeHandler.java:184) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) ~[?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:358) ~[?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[?:?]
	at java.lang.Thread.run(Thread.java:1583) [?:?]

Hi Carsten, welcome to openHAB. I am not able to fully help you but there is a Stackoverflow post that may point you into the right direction to get the proper jd2xx library for arm64.

Thank you for your reply. Unfortunately, it doesn’t help me because my knowledge may not be sufficient to make the necessary changes.