Barf Expert
Joined: 24 Oct 2008 Posts: 855
|
Posted: Mon Oct 17, 2016 3:58 am Post subject: RemoteMaster on Raspberry Pi with Raspian |
|
|
Since I recently got IrScrutinizer running on Raspberry Pi, ("RPi") running Raspian Jessie I thought I should look at having RemoteMaster running on said hardware. (IrScrutinizer 1.3 fully supports the RPi with Raspian Jessie, although it takes 30 seconds to start on a RPi 3.)
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: |
cd Linux-arm
ln -s /usr/lib/arm-linux-gnueabihf/libhidapi-libusb.so.0.0.0 libhidapi.so
|
It turns out that jp12serial and DecodeIR works fine, but for some reason I was not able to get the hidapi stuff to work. It failed to find and download a Nevo C2. This is (an except of) rmaster.err:
Code: | 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
...
|
I guess it would be possible for me (or someone else) to find and fix, but for the moment I do not feel sufficiently motivated...
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.) |
|