09-09-2016 03:13 PM
So I'm still sorta looking into getting Wine running on an x64 based controller, and it seems the path to make this work hits many road blocks when it comes to the choice in package management. Other Linux distros aren't as open with their package manageers, but there is more of an eco system with them. Others like apt-get, yum, deb, and dnf just to name a few. So I started looking into how to install some of these other package managers and I figured I'd try apt-get since it seems to be popular.
APT has a pretty useful download and install page here. But running the sh files seems to require the Java runtime engine. So I tried installing the RPM. First I had to install RPM using OPKG then install the RPM but I needed to use the --nodeps because it believed dependencies were missing when it seemed they were already installed. The paths it complained about had files with the exact names. After that the APT installer still wouldn't run with an error:
./jre/bin/java: No such file or directory
But doing Java -version returns what looks like a good install. Instead of running the sh where it was I could extract it using a different Linux machine, then try to run the Jar file itself. This resulted in several exception, and failed dependency errors. Is there other options with package managers? Is there other options with Java? Thanks.
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
at java.awt.Window.<init>(Window.java:536)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.JFrame.<init>(JFrame.java:189)
at com.izforge.izpack.installer.GUIInstaller.loadLangPack(Unknown Source)
at com.izforge.izpack.installer.GUIInstaller.access$000(Unknown Source)
at com.izforge.izpack.installer.GUIInstaller$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Can not find optional resource conditions.xml
No specification for conditions found.
RulesEngine.init()
Initializing builtin conditions for packs.
Pack.getCondition(): null for pack APT
No custom langpack available.
java.lang.NullPointerException
at com.izforge.izpack.installer.GUIInstaller.loadGUI(Unknown Source)
at com.izforge.izpack.installer.GUIInstaller.access$100(Unknown Source)
at com.izforge.izpack.installer.GUIInstaller$2.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
09-09-2016 05:00 PM
Since the ipk package format is essentially a stripped-down version of the deb package format (dpkg/apt/aptitude/synaptic), you can usually install the .deb directly from opkg. One thing, however, to be aware of is that package names between the .deb and .ipk may differ, so there's a little detective work and playing the part of the package manager involved
09-09-2016 10:14 PM
"... there's a little detective work..."
Specifically checking the listed dependencies and whether or not they're already installed.
09-12-2016 08:18 AM
Oh I have been doing some detective work for sure. Installing a package will complain about all kinds of missing dependencies. Several times it will state missing dependencies for things that are already installed. For things that aren't already installed I'll track down the dependency, and it will claim it has a missing dependency...which is already installed. I've had some success with using the --nodeps to force and install if it thinks dependencies are missing that aren't. Then there are times when I know a dependency is missing, it is not installed, and I can't find it in a compatibile opkg format.
I'm not done trying to track it down, but I did get yum installed. It throws errors with some kind of missing python dependency (which are installed) but I was able to make and make install yum from source.
After installing a whole bunch of stuff:
opkg install packagegroup-core-buildessential
opkg install packagegroup-core-buildessential-dev
opkg install packagegroup-core-python
opkg install packagegroup-core-full-cmdline
opkg install packagegroup-core-perl
I downloaded the tar ball from here. I uncompressed it with "tar zxf file.tar.gz" performed a make, then make install in the directory. Then running yum from bash I get the following, which may indicate a version compatibility issue with python.
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.7.9 (default, Jun 8 2016, 23:40:34)
[GCC 4.8.2]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
09-12-2016 04:22 PM
I would certainly recommend avoiding attempting to use two package managers unless you know what you're getting yourself into and can dig yourself out. The niceties that some distros provide for mixing package managers is largely absent from NI LInux RT. That being said, again, if I was in your position I'd try to make opkg work for what you need for installing the .deb file. I would start from a clean format of the controller
09-13-2016 10:16 AM
Thanks for the information. I partially just thought of package managers as something similar to an app store, and didn't see any reason why I can't have multiple app stores on an android or iOS. I certainly am not an expert, and I'll try to avoid getting into multiple package manager madness.
Yes I see that opkg is supposed to support deb packages, and by adding "arch i386 28" and "arch amd64 29" to my /etc/opkg/arch.conf I am able to somewhat convince opkg to install deb packages. But another issue I've seen with this is the majority of deb pacakges made today are using the zx compression level on the data.tar and opkg only supports gzip. I'm still trying to work through this issue but at the moment I'm trying to download the source on a Debian machine and rebuild it using gzip compression in the hopes it can be installed with opkg.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
09-13-2016 12:23 PM
xz compression was just added to opkg a few days ago
Repo: http://git.yoctoproject.org/cgit/cgit.cgi/opkg/
Commit: http://git.yoctoproject.org/cgit/cgit.cgi/opkg/commit/?id=1053fbc7de095e53ed10a97e8c6d408f03767cd4
An option would be to build opkg from master and use that, if you are willing to take that on.
09-13-2016 12:35 PM
Yeah that's what I'm in the process of doing right now. Download source, build, extract the deb, extract the tar, rebuild the tar as a gz, rebuild the deb. I tried commanding the build to make a gz instead of xz but it wasn't working. Thanks for looking into the opkg and xz support, getting that to work sounds like an easier solution. I still need to track down all the missing dependencies but at least I don't need to rebuild each of them multiple times.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
02-04-2017 07:23 PM
Hi all,
sorry for jumping back again on this thread. I was trying to upgrade opgk to version 0.3.4 since I need support for tar.gz archives, but I've some troubles.
Here's what I did:
All works fine 'til now, I can even check that opkg has been updated to a new version (0.3.5 SNAPSHOT).
However, all commands I give return immediately without doing nothing. Return code seems ok (running echo $? return 0) but opkg doesn't do anything. What have I done wrong?
Thanks for helping.
02-08-2017 04:51 PM
Hi Fabio,
What sub-commands have you tried? It seems like you've at least tried opkg or opkg --help. Have you updated the local feed listings (as the format may have changed, meaning the results from past opkg update calls may no longer be valid). You should try running a few commands with the -V4 flag (to turn up the verbosity).
Also, generally, it's not a good idea to make install a tool over an already-installed tool, I'd try to use opkg to remove opkg. Since that's a fairly meta operation, I don't know if that would actually work, and it shouldn't be required (but you may need to do some manual cleanup before the new tools work correctly).
The last resort would be to use tools like strace to figure out what the binary's actually doing during execution. It can give clues as to what's going wrong or what it's trying to do.