Packaging SCO OpenServer 5 drivers for installation

Packaging drivers for releases before SCO OpenServer 5 Release 5

This section deals with preparing a non-BTLD driver for distribution on versions of the operating system before SCO OpenServer 5 Release 5. If you have the Software Mastering Toolkit (SMT), the procedures discussed here are largely automated for non-BTLD drivers. The format of BTLD-driver disks is discussed in ``Boot-time loadable drivers''.

The custom(ADM). utility extracts the contents of the driver installation floppy, using them to control the custom installation procedure. custom requires the presence of the following files on each floppy volume:

All files on the driver installation floppy should be referred to by relative pathname, starting at the root. For example, if /bin/ls is on the floppy, its pathname becomes ./bin/ls .

The product identification file has a name of the following form:

where ``sidd'' is the driver's prefix (in this case, it stands for Sample Installable Device Driver), and ``386AT'' is a machine-type specifier. To find the type specifier for your machine, check the /etc/perms/inst file on your system. If you are developing for a different system, check /etc/perms/inst on that system for the type identifier for that machine.

In the above example, 1.0.0 is the software release number of the driver, and 01 is the volume number of the floppy containing the driver. Note that there is no volume 0; volume numbers must start at 01 and be consecutive.

A perms file must exist, even if it is empty, in ./tmp/perms on each volume of your driver installation set. Remember to increment the volume number for each volume.

A perms file contains a list (``permlist'') of the files on the floppy, their permissions, and their packages. It is used by custom(ADM) both as an argument to fixperm(ADM) and to determine which driver files belong to which package. This makes it easy for the user to install one driver in a driver suite containing many. The following is an example permlist:

   #set="Sample Installable Device Driver"
   # User id's:
   uid	root		0
   # Group id's:
   gid	root		0
   #!SIDD    11    	Sample Installable Device Driver
   # Fields are: package [d,f,x]mode, user/group, links,
   # path, volume
   SIDD    F644    root/root    1      ./tmp/perms/sidd                  01
   SIDD    F755    root/root    1      ./tmp/init.sidd                   01
   SIDD    F644    root/root    1      ./etc/conf/pack.d/sidd/Driver.o   01
Some of the fields are self-explanatory and can be copied as they appear. The ``prd'', ``typ'', ``rel'', and ``set'' fields are comments to fixperm but are meaningful to custom. They must agree with the prd, typ, and rel entries in the product identification file. The ``set'' field is used by custom when it prompts for the user's choice of packages to install.

Fields starting with ``#!'' are package specifiers. At least one must be present so that custom has a package for which to prompt. The ``11'' in the ``#!SIDD'' field above is the total size of all the files in the package (in 512-byte blocks as reported by du(C)). The comment following the size is also used in custom prompting.

The final section contains the package specifier, file type and permission, ownership, link count, filename, and volume for each file on the distribution. The file type is d for directory, x for executable file, and f for normal file. If the file type is capitalized, the file is optional, and custom will not generate an error if it is missing.

© 2005 The SCO Group, Inc. All rights reserved.