[ELDK] Just starting - ipkg errors

Larry Baker baker at usgs.gov
Tue Aug 6 02:56:02 CEST 2013


On 5 Aug 2013, at 3:39 AM, Wolfgang Denk wrote:

> Dear Larry,
> 
> In message <AD13F680-3F58-44AD-B0A5-6CFA6D187BE1 at usgs.gov> you wrote:
>> 
>> I have installed the ELDK-5.3 basic rootfs for armv5te.  I wrote it to a
>> USB stick, and it boots fine on my hardware.  Great so far.  Now, I want
>> to customize the installed packages and configure the services.
>> 
>> 1) I tried the command given in the FAQ
>> (http://www.denx.de/wiki/view/ELDK-5/FrequentlyAskedQuestionsAndAnswers)
>> to list the packages in the rootfs.  I get nothing.
> 
> I guess by "basic rootfs" you refer to the core-image-basic image?
> Well, the "basic" in the name really means what it says: this is a
> root file system which contains just the very basic tools needed to
> run a system.  Package management is not considered such a basic tool,
> so it is not included here.  And without a package database you cannot
> get any package information.

The name I use is from the table in the ELDK home page, 1.5. Supported Target Configurations.

Perhaps I misunderstood the FAQ.

I am looking for the commands to execute on the development host that will list the packages that are installed on any of the ELDK root file systems.  I consulted the FAQ and found what appears to be exactly that.  This is the FAQ question:

How can I find out which software packages are installed in a root file system image, and what their versions are?

The answer on the FAQ is:

ELDK 5.1 and later uses "ipk" packages for software package management. To get an overview over the installed packages use a command like this:
$ sudo $(type -p opkg-cl) -o /opt/eldk-5.1/powerpc/rootfs-sato-sdk list

When I enter the command as given in the FAQ on my CentOS development system, I get nothing.  This is not what I was expecting.

This response makes sense to me regarding a package manager on the target.  I understand that the basic rootfs does not include a package manager; I do not want a package manager on the target.

I have looked at the different ELDK root file systems for the services I need.  The basic rootfs is the closest.  Now I wish to add and remove packages from that rootfs.  I assumed these example root file systems could be customized by adding and removing packages, but I do not know how.

>> I also get nothing when I leave out the -o option to list what is on the
>> host.
> 
> Ditto - there is simply no information there that could be listed.
> 
>> 2) How do I start/stop services and enable/disable services?  On CentOS,
>> the "service" command starts/stops services, the "chkconfig" command
>> enables/disables services.  On Arch, it seems to all be done by the
>> "systemctl" command.  What are the ELDK equivalent procedures?
> 
> This depends which type of init system you install in your root file
> system.  For example, the core-image-basic image uses a SystemV style
> init, so to start a service you would use "sh /etc/init.d/<name> start";
> to enable the service for a specific runlevel you would create a S*
> symlink in the respective /etc/rcX.d/ directory (i. e. do manually
> what "chkconfig" resp. "service" would do).

I configured a Linux 3.2.48 kernel with support for systemd, since I did not know which init system ELDK uses.  I saw the SystemV-style links, which is what CentOS uses.  I am familiar with chkconfig/service on CentOS.  I saw chkconfig in the list of ELDK packages.  I did not know if there was a different command already installed on the basic rootfs that I could use.  I have seen that Debian uses different commands for this purpose.  And, systemd uses one command, systemctl, to both enable/disable and start/stop installed services.  I'm trying to learn how to do things the ELDK way.

>> 3) Relating to my question 2, can/are either or both of these done on
>> the host (chkconfig only on the host, not service, of course), or the
>> target (both)?  I would like to be able to configure the services on the
>> host, and both configure and control the services on the target.
> 
> Both "chkconfig" and "service" are very simple tools.  "chkconfig" is
> part of the chkconfig package; if you want it included with your root
> file system, you can add the chkconfig recipy to your machine
> configuration.  "service" is but a shell script...

I understand this to mean:

chkconfig and service will be the tools to manage services on the target, exactly as I do on my CentOS systems.  This is perfect.  I'll figure out if the service command is part of the chkconfig package.  If not, can easily write it.

On the development host, I will use a "machine configuration" to either build my own rootfs or modify the basic rootfs (which?).  This sounds like exactly what I need to do next.  But, I don't know how to do this.  Where can I learn these steps?  Is there a tutorial anywhere, for example, where I can learn the steps to replicate the basic rootfs image?  (When I develop systems on new hardware/software, I like to use the vendor tools to replicate the factory installation.  I learn about their development process, and I then have a procedure to start over from bare metal when I brick the system.)

> 
> Best regards,
> 
> Wolfgang Denk
> 
> -- 
> DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
> How many seconds are there in a year? If I tell you there are 3.155 x
> 10^7, you won't even try to remember it. On the other hand, who could
> forget that, to within half a percent, pi seconds is a nanocentury.
>                                                - Tom Duff, Bell Labs


I look forward to a very successful project using ELDK.  I am grateful for the quality software and support DENX provides to the ARM embedded system community.

Thank you,

Larry Baker
US Geological Survey
650-329-5608
baker at usgs.gov



More information about the eldk mailing list