Compact Flash Creation and Management
using IDFBuilder and SDFCreator
This document explains the use of IDFBuilder and
SDFCreator
to create a flash image and update the flash from the client
during the client-side boot process.
The document formats we use are known as an Image Description File,
or IDF, and a Software Description File, or SDF.
An IDF is a collection of lines, with each line representing one SDF,
its size, CRC value, the date it was created, and where the file
can be found on the server. The IDFs themselves are constructed
using IDFBuilder. An SDF is the same as an IDF with the exception that
each line in an SDF is a file, such as libraries, binaries, text files,
etc.
Using IDFBuilder
IDFBuilder is a tool which allows for easy creation of the IDFs
which will be used to create the images for your flash cards.
To begin, go to the File menu and choose New or Open if you have previously made an IDF
At this point you will see a list of all of the packages you have
available to include on a flash, on the left hand side of the window.
These packages are all SDFs which have been created by IBM or custom
SDF files which you have created using SDFCreator.
It will look like the image below. Note: The packages listed below are for demonstration
purposes, so the package list you see could be very different.
You select a package from the list on the left and the information
regarding this package will appear on the right hand side of the
window. There will be a description of the package itself, and below
that is the size of the package and a checkbox to indicate whether
the item has been included within the package or not.

To add or remove a package from the IDF is as simple as checking or
unchecking the checkbox on the bottom right.
You can gather information about the image you currently have in
progress by going to the Options menu and choosing Image Info as seen in the next image.
You will be presented with a window like the one you see below. This will show all
of the SDFs you have selected to be included in the current IDF and the total
size this image will be when it is fully installed upon the flash.
Note: The box where the names appear will have scrollbars if they are needed
to show the entire list of packages included.
If you will be adding a large number of packages from among the available
list of SDF files, you may wish to make use of the Add All SDFs command,
and then simply uncheck the few packages you do not wish to include in the IDF.
Another choice under the Options menu is the Refresh Listings
which is useful for when you have used SDFCreator
to create a new SDF file and wish to refresh the IDFBuilder listing on the
left of available packages.
When you wish to save the IDF file, simply going to the File menu
and choosing Save will prompt you for a filename if this is a new
IDF or simply save it under the current name if you are editing a previously
created IDF file. Choosing Save As will of course allow you to modify the name
the file is saved under.
Using SDF Creator
The second major phase of creating packages and the image is the use of
SDFCreator to build custom software packages. When you launch SDFCreator
you will see a window just like the one below.
This program can be invoked from the command line by typing "/IBM/bin/SDFCreator"
or it can also be spawned as a separate process from within IDFBuilder using the
Options menu command titled Create Custom SDF, as shown in the picture below
To begin creating a new SDF, choose New under the file menu. A dialog box
will appear asking for the desired SDF package name, the version number,
and the description you wish to give to the package. This is the same
description which will be displayed within IDFBuilder when the package is
selected. The name chosen here and the version are also what you see
on the left side of IDFBuilder for the list of packages. In the example
picture below I have filled in some values, but the box does appear with
blanks when you create a new SDF
The view for SDFCreator consists of 4 panes. The top-left pane is an explorer-like
tree interface, allowing you to choose which diretory to examine quickly
and easily. The top-right pane is used to display the contents of the directory
selected. You navigate to the directories where the files to be included
in the SDF are located, and when the files to be added are shown on the sorted
list on the right you will select the file(s) by either clicking one file
at a time and right clicking and selecting the Add option, or by multiple
selections using control or shift-click styles and then adding with the right
click method. Note: If you have a directory selected on the upper-right pane,
all files and all subdirectories under that directory will be added to the SDF
as well. If you need only certain files from the sub-directory, expand the tree
on the upper-left pane and add the files that way.
The files you have added will appear in the bottom two panes. The bottom-left
pane is for the Source of the file, which will be used by the server when
updating a client or building the image by looking in this location for the
file specified. The bottom-right pane is for the destination, which is where
you would like the file to be copied to.
If your flash card will use a different directory structure for files or
programs than what is on the server, then changing the destination would be where
this is specified. To modify the destination you select the file they wish to edit
and then right clicking and choosing Edit.
This brings up a small window allowing you to edit the path name and either accept
or abort the changes by clicking OK or Cancel respectively.
As shown in above, the right click menu has other commands as well.
If you choose Remove the entry will remove the listing from both panes
and therefore the SDF.
In addition, as shown, when you right-click on the bottom right pane you can
change the protocol of the selected item in the list. This protocol change
will affect how the file is pulled down to the client.
If you elect to have FTP or HTTP as the file-retrieval protocol, then you will
be allowed to modify the information on the right side of this dialog box.
This is detailed in the following image. Note: You may also change the default protocol
for all files you add to the SDF through a menu command, which is described in the next section.
The Settings menu provides many useful commands for you to manipulate the
working SDF. The first such command is Default Protocol, through which you can
set a default protocol to be NFS, FTP, or HTTP for all files you add to the SDF.
Changing the default protocol for the files will NOT affect the files you have
already added to the SDF, only files added since you modify the default protocol.
To change already added ones, use the right-click option as detailed above, or
remove those files from the bottom panes and add them again.
If you choose to use FTP or HTTP you will be prompted to set the server's
information, which consists of the desired username, the password and the
server's IP.
If you elect to not set the server up at this time, you may do so later by
using the Server Settings command.
Through the Settings menu you can also change the directory where you store the
SDFs you create by using the Working Directory command.
You may also set the client mount point, which is the directory that the client
machine using this SDF will be booting from on the server.
A final option under the Settings menu is the ability to Save Settings.
This will create, or overwrite, a configuration file with your settings stored
for the next time the program is launched.
The Actions menu provides a Refresh option which will gather the latest
information about each file in the list, such as permissions, size, crc, and so
forth.
This command is very useful for when you have modified a file which is part
of an SDF and you wish for the newest incarnation of the file to be in the SDF
without having to find that file in the file panes on the bottom half of the
program window, remove it manually and then re-add the file to have the changes
acknowledged. Simply invoke the Refresh command and all files in the SDF will
be verified and updated.
Under the Edit menu is the ability to change a package's name, version
and description. This can be achieved by invoking the Heading command.
Saving a file behaves the same as it does when using IDFBuilder.
If the file you have been working on is a new SDF you will be given the Save As dialog
box giving you the chance to name the file. When you save the file you will see a small
box like this next picture indicates
The Parsing Lists window will appear over the main program screen and is there
to let you know the saving process is taking place. Once the save has been completed
the box will disappear. This process may take quite a long time depending on the size
of the SDF package since it is generating a large amount of information for each item
which will be a part of the SDF. Please be patient if this step takes a long time.
One last window you may encounter is in the event that you delete your configuration
file in the /IBM/update folder. The program will present the following window to you
which is simply a notice to you that a new configuration file with the default settings
for the program is being created. If you had made changes to the settings before you
deleted the file, these will of course be lost and must be redone.
Updating the Compact Flash
The program which handles the updates of the client machine is called lcma,
or Linux Client Management Agent, and it can be utilized in a few different manners.
The methods for updating the flash are through an automatic invocation of the
update program at the client boot time, a manual invocation on the command line,
or through remote administration using SNMP through a MIB browser.
This program will compare the IDF which exists on the flash and the one which
is of the same name on the server. If there are no differences between the packages
there will be no update performed and the update program will exit.
In the case that the server has an IDF which matches the name of the one on the
client, but the contents of the IDF are different from the contents of the Client's IDF,
then an update will occur. At this time the client will grab the information from
the server about the additional packages to install and begin the copying process
to the flash. Once this is complete the program exits normally. There is no support for
deletion of items from the flash at this time if the server IDF no longer
includes a package that it had used in the past, however this
feature is currently in the works.
If someone on a server has just modified the IDF file which the clients
happen to be booting off of at the time, perhaps to add a new package,
or modify a package which was already included in the case of a bug
fix or adding functionality, they use the IDFBuilder to modify their existing
IDF (and SDFCreator if changes are needed on the package at the SDF level).
Once the changes are saved, the client can issue an update command through one
of the methods mentioned above and the upgrade will be performed.
The lcma program also supports a method to force an update down to the client
which will ignore whatever IDF exists, if any, on the client and the entire
IDF will be copied down to the server without any comparison checking of
any kind.
Lcma supports another option which can be used to send down commands to the client,
such as those within a shell script and any supporting files. The command script
and any files needed for the command are embedded in an SDF file and the lcma
will automatically send down the files and run whatever script is specified.
The command and any resulting files will NOT be added to the IDF, because this would
cause major inconsistencies with the management system where the master IDF files
on the server would be outdated and out-of-synch with the client files.
If you wish to add the command to the IDF, build the script into an IDF file since
the command is actually an SDF, and then the post-download script of the command
line in the SDF will run the command itself.
For more usage information, as well as the syntax for the commands, you can run
./lcma --help
This displays the syntax and usage of the commands available, as well as example
invocations for all events possible.
You may also use SNMP to invoke the lcma program to perform updates. The
way in which you do this is through use of a MIB browser. If you are using
SNMP or have a MIB browser, the manner in which you perform operations
should be detailed in that program's documentation.
Created by: Christopher Glendenning
Last updated: August 23, 2000 by Christopher Glendenning
Please send any comments, typographical errors you encountered, or other
feedback to Christopher Glendenning at cglende@us.ibm.com
|