Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
27.  Dynamically Configuring Devices (Tasks) IA: PCI Hot-Plugging With the cfgadm Command IA: How to Add a PCI Adapter Card  Previous   Contents   Next 
   
 

IA: Troubleshooting PCI Configuration Problems

Error Message
cfgadm: Configuration operation invalid: invalid transition
Cause

An invalid transition was attempted.

Solution

Check whether the cfgadm -c command was issued appropriately. Use the cfgadm command to check the current receptacle and occupant state and to make sure that the Ap_Id is correct.

Error Message
cfgadm: Attachment point not found
Cause

The specified attachment point was not found.

Solution

Check whether the attachment point is correct. Use the cfgadm command to display a list of available attachment points. Also check the physical path to see if the attachment point is still there.


Note - In addition to the cfgadm command, several other commands are helpful during hot-pluggable operations. The prtconf command displays whether Solaris recognizes the hardware. After adding hardware, use the prtconf command to verify that the hardware is recognized. After a configure operation, use the prtconf -D command to verify that the driver is attached to the newly installed hardware device.


Reconfiguration Coordination Manager (RCM) Script Overview

The Reconfiguration Coordination Manager (RCM) is the framework that manages the dynamic removal of system components. By using RCM, you can register and release system resources in an orderly manner.

You can use the new RCM script feature to write your own scripts to shut down your applications, or to cleanly release the devices from your applications during dynamic reconfiguration. The RCM framework launches a script automatically in response to a reconfiguration request, if the request impacts the resources that are registered by the script.

You can also release resources from applications manually before you could dynamically remove the resource. Or, you could use the cfgadm command with the -f option to force a reconfiguration operation, but this option might leave your applications in an unknown state. Also, the manual release of resources from applications commonly causes errors.

The RCM script feature simplifies and better controls the dynamic reconfiguration process. By creating an RCM script, you can do the following:

  • Automatically release a device when you dynamically remove a device. This process also closes the device if the device is opened by an application.

  • Run site-specific tasks when you dynamically remove a device from the system.

What Is an RCM Script?

An RCM script is as follows:

  • An executable shell script (Perl, sh, csh, or ksh) or binary program that the RCM daemon runs. Perl is the recommended language.

  • A script that runs in its own address space by using the user ID of the script file owner.

  • A script that is run by the RCM daemon when you use the cfgadm command to dynamically reconfigure a system resource.

What Can an RCM Script Do?

You can use an RCM script to release a device from an application when you dynamically remove a device. If the device is currently open, the RCM script also closes the device.

For example, an RCM script for a tape backup application can inform the tape backup application to close the tape drive or shut down the tape backup application.

How Does the RCM Script Process Work?

You can invoke a script as follows:

$ script-name command [args ...]

A script performs the following basic steps:

  1. Takes the RCM command from command-line arguments.

  2. Executes the command.

  3. Writes the results to stdout as name-value pairs.

  4. Exits with the appropriate exit status.

The RCM daemon runs one instance of a script at a time. For example, if a script is running, the RCM daemon does not run the same script until the first script exits.

RCM Script Commands

You must include the following RCM commands in an RCM script:

  • scriptinfo - Gathers script information

  • register - Registers interest in resources

  • resourceinfo - Gathers resource information

You might include some or all of the following RCM commands:

  • queryremove - Queries whether the resource can be released

  • preremove - Releases the resource

  • postremove - Provides post-resource removal notification

  • undoremove - Undoes the actions done in preremove

For a complete description of these RCM commands, see rcmscript(4).

RCM Script Processing Environment

When you dynamically remove a device, the RCM daemon runs the following:

  • The script's register command to gather the list of resources (device names) that are identified in the script.

  • The script's queryremove/preremove commands prior to removing the resource if the script's registered resources are affected by the dynamic remove operation.

  • The script's postremove command if the remove operation succeeds. However, if the remove operation fails, the RCM daemon runs the script's undoremove command.

 
 
 
  Previous   Contents   Next