Since RM is written in Java, only the shared libraries needs investigation. Since RM searches for these in os.name . os.arch this amounts to a subdirectory Linux-arm. (Note that this is not sufficiently fine-grained for some applications: there are ARM processors of different versions, with and without hardware floating-point. For our purposes, it is good enough though. IIRC, the RPi 2 and 3 uses ARM version 7 with hardware FP.)
First step is thus to create the directory Linux-arm. Binaries for jp12serial is available here, DecodeIR 2.45 here. hidapi in two different versions can be installed using Raspian apt-get (packet names libhidapi-libusb0 and
libhidapi-hidraw0 ) For RM to find it, I made a symblic link, e.g.
Code: Select all
cd Linux-arm
ln -s /usr/lib/arm-linux-gnueabihf/libhidapi-libusb.so.0.0.0 libhidapi.so
Code: Select all
LibraryLoader: Loaded 'DecodeIR' successfully from '/home/bengt/jp1/controlremote-code/km/Linux-arm/libDecodeIR.so'
Starting normal download
Interface Name = CommHID
Port Name = /dev/xsight
Testing interface: JP1.X Serial
Testing interface: CommHID
Interface matched. Trying to open remote.
Download error: com.codeminders.hidapi.HIDManager.init()V
java.util.concurrent.ExecutionException: java.lang.UnsatisfiedLinkError: com.codeminders.hidapi.HIDManager.init()V
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at javax.swing.SwingWorker.get(SwingWorker.java:602)
at com.hifiremote.jp1.RemoteMaster$DownloadTask.done(RemoteMaster.java:691)
at javax.swing.SwingWorker$5.run(SwingWorker.java:737)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:832)
at sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:842)
at javax.swing.Timer.fireActionPerformed(Timer.java:312)
at javax.swing.Timer$DoPostEvent.run(Timer.java:244)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
at java.awt.EventQueue.access$300(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:706)
at java.awt.EventQueue$3.run(EventQueue.java:704)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.UnsatisfiedLinkError: com.codeminders.hidapi.HIDManager.init()V
at com.codeminders.hidapi.HIDManager.init(Native Method)
at com.codeminders.hidapi.HIDManager.<init>(HIDManager.java:53)
at com.codeminders.hidapi.HIDManager.getInstance(HIDManager.java:121)
at com.hifiremote.jp1.io.CommHID.getPIDofAttachedRemote(CommHID.java:44)
at com.hifiremote.jp1.io.CommHID.openRemote(CommHID.java:213)
at com.hifiremote.jp1.RemoteMaster.testInterface(RemoteMaster.java:3362)
at com.hifiremote.jp1.RemoteMaster.getOpenInterface(RemoteMas
...
Bottom line: RM works on RPi, with the exception of hdiapi. It takes 50 seconds to start though (using OpenJDK Runtime Environment (IcedTea 2.6.6) (java version "1.7.0_101"). (May be faster with other Java implementations.)