02-12-2019 03:35 PM
I am wondering if I can host an OPKG repository on a server connected to my cRIO's LAN. Possibly for distributing my own packages to networked cRIOs.
But I don't know anything about host requirements or how to make an OPKG package. Is there doc on this?
Thanks!
02-13-2019
12:50 PM
- last edited on
07-12-2024
08:57 AM
by
Content Cleaner
Are you familiar with NI SystemLink? SystemLink is a relatively new software product from NI that runs on a web server architecture and provides remote management and secure data collection for a group of systems, such as CompactRIOs or PC-based test stations. SystemLink provides a package repository application with support for OPKG repositories, as well as Windows packages. From SystemLink, you can deploy packages to one or multiple system nodes (targets). For creating OPKG packages from LabVIEW Real-Time, NI offers a plug-in known as the LabVIEW Package Builder. The plug-in adds a new build spec for "Package" and the resulting file output is a .ipk file that meets the OPKG specification.
For more in-depth materials on SystemLink, consult the following page for links to documentation, instructional videos, and the product support forum: Getting Started with SystemLink. This page also provides a link to a resource for creating OPKG files outside of NI tools.
02-13-2019 12:56 PM - edited 02-13-2019 01:03 PM
Our build systems use opkg-build to construct IPKs, which is a script in opkg-utils. You can find the source at https://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils . You can install these tools from NI's feed by running opkg install opkg-utils or clone the git repository to a Linux desktop to use them locally.
To use opkg-build, first stage your files in a directory and add a control file. I.e. create a file structure like this:
mypkgname
CONTROL
control
usr
bin
someexe
usr
lib
somelib.so
"mypkgname/CONTROL/control" looks something like this:
Package: mypkgname
Version: 1.0.0
Architecture: x64
Maintainer: somebody <somebody@somewhere.com>
Description: a neat package
Then run opkg-build mypkgname to generate a mypkgname_1.0.0_x64.ipk .
If you want to turn the current directory into a feed, run opkg-make-index -p Packages Packages to generate Packages and Packages.gz files. Finally, you can throw all these files onto HTTP/S web server to access the feed remotely, like http://download.ni.com/ni-linux-rt/feeds/ .
I hope this help!
02-14-2019 08:24 AM
Hi Haris,
JLanier mentioned SystemLink. Did you consider systemlink, or did you go straight to the OPKG built in package management tools? If you considered systemlink, what made the OPKG tools more attractive?
02-14-2019 09:16 AM
I was referring to the OpenEmbedded build system of NI Linux RT OS in my earlier post, which predates SystemLink. I can't really compare the two since I haven't used LabVIEW's package builder.
An ipk (a.k.a. opk) file is just an archive of other files. It's pretty easy to build in just about any scripting language. My recommendation is use whatever's easiest for your project.