idinstall(ADM) 19 June 1992 idinstall(ADM) Name idinstall - add, delete, update, or get device driver configuration data Syntax /etc/conf/bin/idinstall -[adu] [-e] [-k] [-msnirhclopt] devname /etc/conf/bin/idinstall -g -[snirhclpt] devname Description The idinstall command is called by a Driver Software Package (DSP) Install script or Remove script to Add (-a), Delete (-d), Update (-u), or Get (-g) device driver configuration data. idinstall expects to find driver component files in the current directory. When components are installed or updated, they are moved or appended to files in the /etc/conf directory and then deleted from the current directory unless the -k flag is used. The options for the command are as follows: Action Specifiers: -a Add the DSP components -d Delete the DSP components -u Update the DSP components -g Get the DSP components (print to stdout, except Master) Component Specifiers: (*) -m Master component -s System component -o Driver.o component -p Space.c component -t Stubs.c component -n Node (special file) component -i Inittab component -r Device Initialization (rc) component -h Device shutdown (sd) component -c Mfsys component: file system type config (Master) data -l Sfsys component: file system type local (System) data (*) If no component is specified, the default is all except for the -g option where a single component must be specified explic- itly. Miscellaneous: -e Disable free disk space check -k Keep files (do not remove from current directory) on add or update. In the simplest case of installing a new DSP, the command syntax used by the DSP's installation script should be idinstall -a devname. In this case the command will require and install a Driver.o, Master and System entry, and optionally install the Space.c, Stubs.c, Node, Init, Rc, Shut- down, Mfsys, and Sfsys components if those modules are present in the current directory. The Driver.o, Space.c, and Stubs.c files are moved to a directory in /etc/conf/pack.d, and end up in /etc/conf/pack.d/dev_name. The devname is passed as an argument, which is used as the directory name. The remaining components are stored in the corresponding directories under /etc/conf in a file whose name is devname. For example, the Node file would be moved to /etc/conf/node.d/dev_name. The idinstall -m usage provides an interface to the idmaster command which will add, delete, and update mdevice file entries using a Master file from the local directory. An interface is provided here so that driver writers have a consistent interface to install any DSP component. As stated above, driver writers will generally use only the idinstall -a devname form of the command. Other options of idinstall are provided to allow an Update DSP (that is, one that replaces an existing device driver component) to be installed, and to support installation of multiple con- troller boards of the same type. If the call to idinstall uses the -u (update) option, it will: overlay the files of the old DSP with the files of the new DSP. invoke the idmaster command with the 'update' option if a Master module is part of the new DSP. idinstall also does a verification that enough free disk space is avail- able to start the reconfiguration process. This is done by calling the idspace command. idinstall will fail if insufficient space exists, and exit with a non-zero return code. The -e option bypasses this check. idinstall makes a record of the last device installed in a file (/etc/.last_dev_add), and saves all removed files from the last delete operation in a directory (/etc/.last_dev_del). These files are recovered by /etc/conf/bin/idmkenv whenever it is determined that a system recon- figuration was aborted due to a power failure or unexpected system reboot. Diagnostics An exit value of zero indicates success. If an error was encountered, idinstall will exit with a non-zero value, and report an error message. All error messages are designed to be self-explanatory. Typical error messages that can be generated by idinstall are as follows: Device package already exists.Cannot make the driver package directory. Cannot remove driver package directory. Local directory does not contain a Driver object (Driver.o) file. Local directory does not contain a Master file. Local directory does not contain a System file. Cannot remove driver entry. See also idspace(ADM), idcheck(ADM), mdevice(F), sdevice(F)