NI Linux Real-Time Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Any doc on hosting my own OPKG repository? How about how to make an OPKG package?

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!

0 Kudos
Message 1 of 5
(3,702 Views)

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.   

Message 2 of 5
(3,666 Views)

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!

 

Message 3 of 5
(3,662 Views)

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?

0 Kudos
Message 4 of 5
(3,638 Views)

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.

 

0 Kudos
Message 5 of 5
(3,628 Views)