This document provides detailed descriptions of the manual storage controller certification tests. After you successfully complete the manual tests described in this document, use the HCTS to run the automated tests.
These Level 2 tests provide greater test coverage than the Level 1 tests. See Storage Level 1 Tests and Storage Level 2 Tests for further details.
When a driver supports multiple controllers, the controller that supports the most extensive feature set is designated the primary controller. Additional controllers supported by the same device driver are known as supplementary controllers.
The tests described in this document are used for one of these three purposes:
Functional testing of controllers at Level 2
Certifying the primary controller that has supplementary controllers supported by the same driver under test
Certifying USB hard disks
Note: The tests described in the Storage Controller Certification Level 1 Test Plan are for functional testing of controllers at Level 1 or for certifying any supplementary controllers that are supported by the same driver under test as a primary controller.
Run all tests on both system configurations.
Make sure your system meets the general hardware and software requirements for all certifications stated in the Hardware Certification Test Suite Installation Guide.
This section describes additional hardware and software required to execute the storage controller certification tests.
The minimum requirements for this configuration are as follows:
Fibre Channel
RAID
SATA
SCSI
USB Hard Drives
The minimum requirements for this configuration are as follows:
SCSI
CD-ROM and tape drives can be connected to a separate channel, or they can be on a channel with disk drives present
RAID
Note: While a dual-processor machine covers the minimum requirements for this configuration, use a quad-processor machine for RAID controllers used in servers.
CD-ROM and tape drives can be connected to a separate channel, or they can be on a channel with disk drives present
Fibre Channel
USB Hard Drives
SATA
These tests require two systems. Run all tests from System Configuration II, and use System Configuration I as the client.
Run all tests as user root unless otherwise indicated in the HCTS test ReadMe file.
First run the set of tests for all controllers, then run the tests specific to the storage technology of the driver under test.
Note: If you are only certifying a USB hard disk, the first set of tests for controllers does not have to be run.
All Controllers
SCSI
RAID
Fibre Channel
USB Hard Drives
SATA
You only need to perform this test if you are doing one of the following:
Required Hardware
Required Software
Test Strategy
The audit_itu(1M) utility verifies the format and contents of a driver diskette created using pkg_drv(1M) or pkg_drv2patch(1M).
Test Procedure
Insert the driver diskette into the diskette drive.
Verify the driver diskette format and contents.
# volcheck
# audit_itu
Expected Results
This test verifies that the driver can be installed on the system and removed properly.
Required Hardware
Test Strategy
Test Procedure
Install the test machine with the Solaris release and the driver under test.
At the initial Solaris Device Configuration Assistant screen, press F4_Add Driver and follow the instructions provided.
After the driver is installed, continue installing the Solaris OS.
Ensure that the test system is sliced correctly.
Note: To specify slice layout during Solaris installation, do the following:
After the Solaris installation completes, reboot the system and enter the Configuration Assistant by pressing Escape when this prompt is displayed:
SunOS Secondary Boot version xx
Solaris Booting System
Running Configuration Assistant...
Press ESCape to interrupt autoboot in 5 seconds...
When the Solaris Device Configuration Assistant screen appears, press F2_Continue to display a list of device drivers loaded from the driver media that have been associated with controllers in the system.
Examine the Solaris Boot screen to verify that all physical devices connected to the driver under test appear in the list.
When prompted, reinsert the driver media.
Use the Driver Post-Installation Checklist to verify that the driver is installed correctly.
Verify that all devices connected to the controller under test can be accessed.
Remove the driver from the system (see the pkgrm(1M) man page) and verify that there are no error messages.
Add the driver to the system (see the pkgadd(1M) man page) and use the Driver Post-Installation Checklist to verify that the driver is installed correctly.
Verify that all devices connected to the controller under test can be accessed.
Reboot the system, and ensure that no error messages appear.
Expected Results
Required Hardware
Test Strategy
This test is performed after the Verify Driver Diskette Format and Contents test, to eliminate the possibility of encountering problems caused by a defective driver diskette.
If a realmode version of the driver exists, this test requires a driver in the pkg_drv(1M) format. If there is no realmode version of the driver, this test requires a driver in the Solaris pkgadd(1M) format.
This test is performed on a machine running the appropriate Solaris release. The driver under test should not yet be installed.
The Solaris release is installed on a disk drive connected to a controller, such as an IDE disk drive, that is not supported by the driver under test.
Test Procedure
Verify that the system is running.
Install the Solaris environment on a disk drive that is not connected to the controller supported by the driver under test.
Install the driver by inserting the driver media.
For a realmode driver in pkg_drv format, type the following:
# volcheck
# /floppy/floppy0/DU/sol_xx/i86pc/Tools/install.sh -i
xx is the Solaris release number, for example, sol_9.
For a protected mode (Solaris) driver in pkgadd format, type the following:
# volcheck
# cd /floppy/floppy0
# pkgadd -d . $PKG_NAME
Reboot the system when driver installation completes.
Press Escape to run the Configuration Assistant.
Examine the Solaris Boot screen to verify that all physical devices connected to the controller and supported by the driver under test have corresponding software entries.
Use the Driver Post-Installation Checklist to verify that the driver is installed correctly.
Expected Results
Run this test on either System Configuration I or System Configuration II. It only has to be run once.
Required Hardware
Test Strategy
For example, to perform test case 2, you can upgrade from Solaris 9 Operating System to Solaris 10 Operating System.
Test Procedure
Install the Solaris operating environment on a disk drive that is not connected to the controller supported by the driver under test.
To start the Solaris environment upgrade, insert the Solaris Device Configuration Assistant boot diskette for the release to be installed, and reboot the system.
At the initial Solaris Device Configuration Assistant boot screen, press F4_Add Driver and insert the driver media when prompted.
Continue the installation process. When you are prompted for the type of installation to perform, choose the Upgrade option (see the installation guide for your system).
Initial Upgrade Exit
See the Driver Post-Installation Checklist to verify that the driver is installed correctly.
Expected Results
Controllers supported by the Solaris Operating System potentially require two drivers:
The realmode driver is used to identify hardware in the computer and runs prior to booting the Solaris kernel. For bootable controllers, the realmode driver assists in booting from the controller.
After the Solaris kernel boots, the protected mode driver is loaded and begins communication with the controller.
Required Hardware
Test Strategy
Test Procedure
Reboot the system.
Run the Configuration Assistant utility by pressing Escape when this prompt
is displayed:
SunOS Secondary Boot version xx
Solaris Booting System
Running Configuration Assistant...
Press ESCape to interrupt autoboot in 5 seconds...
When the Solaris Device Configuration Assistant screen appears, press F2_Continue.
The system determines the bus types, then displays the Identified Devices screen, which lists the hardware present in the system.
Verify that the name of the controller used for testing the driver is displayed, then press F2_Continue.
Press F4_Device Tasks from the Identified Devices screen, and then select View/Edit Devices to display the controller's ports and interrupts (IRQs).
Checking IRQs to verify that there are no hardware conflicts in the system.
Return to the Identified Devices screen and press F2_Continue to begin loading realmode drivers and verify that the realmode driver under test is loaded by watching for this message:
Loading Driver driver.bef ...
When the Solaris Boot screen appears, it lists all the bootable devices available on the system (the * indicates the default bootable device).
Ensure that there is a valid target ID for each SCSI
peripheral controlled by the driver under test.
A valid SCSI target ID is a number between 0 and 15.
At this point, the realmode driver
should have recognized all the controllers and peripherals.
The following is an example Solaris Boot screen:
[ ] NET: Intel Pro100/B Fast Ethernet on Board PCI bus 1, at Dev 1
[ ] DISK: (*) Target 0, QUANTUM VIKING II 4.5 WSE 4110
on Symbios Logic 53c875 SCSI on Board PCI Bus 1, at Dev 3
Boot the system.
When the system comes up, view the device files created in the /devices
and /dev/dsk directories to verify that the Solaris driver
created device files for all the peripherals connected to the
controller under test.
Another method is to execute the prtconf command and verify
that instances were created for each controller.
# prtconf
This sample fragment shows some of the entries in the output:
. . .
pci1069,20, instance #0
sd, instance #0
sd, instance #1 (driver not attached)
sd, instance #2 (driver not attached)
sd, instance #3 (driver not attached)
sd, instance #4 (driver not attached)
sd, instance #5 (driver not attached)
sd, instance #6
sd, instance #7 (driver not attached)
sd, instance #8 (driver not attached)
sd, instance #9 (driver not attached)
sd, instance #10 (driver not attached)
sd, instance #11 (driver not attached)
sd, instance #12 (driver not attached)
sd, instance #13 (driver not attached)
sd, instance #14 (driver not attached)
sd, instance #15 (driver not attached)
sd, instance #77
sd, instance #78
sd, instance #79
. . .
#
You can also use the format utility to check for disk drives.
# format
All available disk drives are listed.
For more information about testing CD-ROM and tape drives, see CD-ROM Support Test and Tape Support Test.
Expected Results
References
Required Hardware
Test Strategy
After a driver is installed, certain files specific to the driver are created and other files are modified. By checking these files, you can determine whether the driver is properly installed.
Test Procedure
Verify that one of these two sets of files are present.
driver_name is the name of the driver under test.
Verify that entries for the installed driver appear in these files:
For example, to locate the ncrs driver entry in the /etc/name_to_major file, type:
# grep ncrs /etc/name_to_major
ncrs 20
Expected Results
The files /kernel/drv/driver_name and
/kernel/drv/driver_name.conf exist
or
The files /platform/i86pc/kernel/drv/driver_name and
/platform/i86pc/kernel/drv/driver_name.conf exist.
Each of these files contains an entry for the driver installed:
Required Hardware
Test Strategy
Test Procedure
Reboot the system.
Press Escape to interrupt autoboot.
When the Solaris Boot screen is displayed,
locate the CD-ROM SCSI target ID.
The SCSI target ID is a number between 0 and 15.
Following is a sample Solaris Boot screen:
[ ] NET : Intel Pro100/B Fast Ethernet
on Board PCI bus 1, at Dev 1
[ ] DISK: (*) Target 0, QUANTUM VIKING II 4.5 WSE 4110
on Symbios Logic 53c875 SCSI on Board PCI Bus 1, atDev
Then reboot the system again, and verify that the controller is configured correctly.
After the system reboots, insert a CD into the CD-ROM drive and type these commands:
# volcheck
# df -k
Examine the df command output, looking for an entry similar to this:
/vol/dev/dsk/c1t0d0/x/y 253974 253974 0 100% /cdrom/x/ywhere x and y are directories and file names.
Type:
# mount
Look for a CD-ROM entry similar to this:
/cdrom/sol_9_404_x86/s0 on /vol/dev/dsk/c1t0d0/sol_9_404_x86/s0 readonly/nosetuid/nodevices/intr/largefiles/xattr/onerror=panic/dev=1740002 on Thu Sep 9 08:58:00 2004# ls -lR /cdrom
Expected Results
Required Hardware
Test Strategy
Test Procedure
Verify that the system is running.
Insert a tape into the tape drive and reboot the system.
At the shell prompt, type the following:
# ls -l /dev/rmt
Output similar to the following is displayed, where n is the tape drive instance:
lrwxrwxrwx 1 root root 55 Oct 28 12:32 /dev/rmt/n -> ../../devices/pci@0,0/pci1011,26@a/pci1069,20@8/st@4,0:
If the files are not displayed, type these commands:
# tapes -r /dev
# ls
/dev/rmt
View the output and select the tape drive device file.
If only one tape drive is installed on the system, use /dev/rmt/0 for the file.
To verify that I/O operations can be performed on the tape, type the following commands, where ksh can be substituted by the name of any file:
# cd /tmp
# tar cvf /dev/rmt/0 -C /bin ksh
# tar xvf /dev/rmt/0
# sum /bin/ksh ksh
Expected Results
Required Hardware
Test Strategy
Test Procedure
Reboot the system.
Run the Configuration Assistant utility by pressing Escape when this screen is displayed:
SunOS Secondary Boot version xx Solaris Booting System Running Configuration Assistant... Press ESCape to interrupt autoboot in 5 seconds...
When the Solaris Device Configuration Assistant screen appears, press F2_Continue. At the Identified Devices screen, press F2_Continue.
When the Solaris Boot screen is displayed, choose the disk drive that contains a Solaris boot partition and is connected to the HBA supported by the driver under test.
This example of a partial Solaris Boot screen shows some of the bootable controllers present on the system. This example is for a 32-bit x86 platform:
[ ] NET : Intel Pro100/B Fast Ethernet on Board PCI bus 1, at Dev 1 [ ] DISK: (*) Target 0, QUANTUM VIKING II 4.5 4110 on Symbios Logic 53c875 SCSI on Board PCI Bus 1, at Dev 3
After the system reboots, the Solaris Common Desktop Environment windowing system displays a login window.
If there are problems booting from the disk drive, note all the error messages displayed while the system is booting, for debugging purposes. A common error message displayed on the screen is operating system not found.
Expected Results
The system reboots from the disk drive containing the root (/) file system and connected to the controller supported by the driver under test.
Required Hardware
Test Strategy
Creating LUNs is part of SCSI functionality. Using a target with multiple drives, each drive can be given a specific LUN number to identify itself using one target number.
Test Procedure
This procedure shows how to create LUNs on a target with multiple CD-ROMs.
Edit /kernel/drv/sd.conf. Given that the logical name for the target with multiple CD-ROMs is c1t6d0 and there are five CD-ROM drives, add the following four lines to /kernel/drv/sd.conf:
name="sd"
class="scsi" target=6 lun=1;
name="sd"
class="scsi" target=6 lun=2;
name="sd"
class="scsi" target=6 lun=3;
name="sd"
class="scsi" target=6 lun=4;
Note that entry lun=0 does not have to be added because there is already an entry for lun=0 in sd.conf.
Reboot the system.
Configure the entries in /dev/dsk by using the devfsadm(1M) command.
Check /dev/dsk for the new entries for LUNs 1 through 4. There should be entries beginning with c1t6d1, c1t6d2, c1t6d3, and c1t6d4.
Expected Results
The LUNs created are configured correctly in /dev/dsk.
Required Hardware
Required Software
Test Strategy
Exercise the different levels of RAID supported by the controller.
Note: The Hardware Certification Test Suite does not test the RAID management utility functions (see the Solaris Operating System Driver Design Guidelines).
Definitions for some of the different RAID types are provided for reference:
Test Procedure
Configure RAID types using the RAID management utility available with the controller.
Note: You must configure all the RAID types that the RAID management utility supports. If any of the RAID levels cannot be configured, the controller will not pass certification.
On multi-channel controllers, you must configure packs across channels.
Expected Results
All RAID levels that the RAID management utility supports can be configured.
Required Hardware
Test Strategy
This test verifies that a Fibre Channel disk drive set to a target ID of 16 can be recognized by the Solaris software.
Test Procedure
Change the target ID of your disk to a number greater than 16 (see the Fibre Channel disk documents for instructions).
Perform a verbose reconfiguration reboot of the system by typing b -rv at the prompt.
<<< Current Boot Parameters >>> Boot Path :/pci@1,0/cpqncr@9/sd@1,0:a Boot args: Type b[file name] [boot-flags] <Enter> to boot with options i <Enter> to enter boot with interpreter <Enter> to boot with defaults <<< time out in 5 seconds >>> Select (b)oot or (i)nterpreter:
Run the mount command to ensure that the driver can see the high target. For example:
# mount /dev/dsk/c2t18d0s0 .mnt
Expected Results
Test Strategy
This test verifies that Solaris can recognize the USB hard drive as a storage device.
Required Hardware
Test Procedure
Hot plug a USB hard drive into your system.
Type the following command to ensure that the USB hard drive is configurable:
# format -e
The output from this command is similar to the following:
c0d0 <DEFAULT cyl 23523 alt 2 hd 64 sec 63> /pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0 c2t0d0 <DEFAULT cyl 1264 alt 2 hd 10 sec 258> /pci@0,0/pci103c,12bc@1d,2/storage@1/disk@0,0
The second disk named c2t0d0 is a USB disk.
Type the following command to verify that there is a USB disk entry:
# cfgadm
The output of this command is similar to the following:
Ap_Id Type Receptacle Occupant Condition usb0/1 unknown empty unconfigured ok usb0/2 unknown empty unconfigured ok usb1/1 unknown empty unconfigured ok usb1/2 unknown empty unconfigured ok usb2/1 usb-storage connected configured ok usb2/2 unknown empty unconfigured ok
The sixth row starting with usb2/1 is a USB disk.
Unplug the USB hard drive.
# cfgadm
The USB disk usb2/1 should no longer be there.
Expected Results
Solaris recognizes the USB hard drive as a storage device.
Test Strategy
This test verifies that the Solaris partitions, slices, and UFS file system can be built on the USB hard drive.
Required Hardware
Test Procedure
Verify that the USB hard drive under test is not mounted.
Create a partition on the USB hard drive by using the following command, where c2t0s0p0 is the name of the USB disk under test:
# fdisk /dev/rdsk/c2t0s0p0
Create two slices on the partition created in the previous step using the following command:
# format
This command produces a list of available disks.
Select the USB disk you wish to format.
At the format> prompt, type partition.
format>partition
A partion menu displays.
Create a UFS file system on the slices.
# newfs /dev/rdsk/c2t0d0s0
where c2t0d0s0 is the USB hard disk under test.
If the newfs command completes successfully, a UFS file system can be built on the USB hard drive and the test has completed successfully.
Expected Results
Test Strategy
This test verifies that the USB hard drive can be mounted, unmounted, read, and written to successfully.
Required Hardware
Test Procedure
Mount one slice of the USB hard drive.
# mount /dev/dsk/c2t0d0s0 /mp
where c2t0d0s0 is the slice of the USB hard drive under test.
Verify that the USB hard drive is mounted and verify that the c2t0d0s0 USB Hard drive slice appears in the list of mounted file systems.
# mount
Copy a file to the USB hard drive.
# cp -rf /testfile /test.c2t0d0s0
In this command, testfile is a generic file on your system that can be copied to the mounted slice on the USB hard drive and test.c2t0d0s0 is the USB mount point.
Validate that the file was copied successfully.
Copy a file from the USB hard drive.
# cp -rf /test.c2t0d0s0 /tmp/
In this command, test.c2t0d0s0 is the USB mount point. Validate that the file was copied successfully from the mount point to the destination directory.
Unmount the slice.
# umount /dev/dsk/c2t0d0s0
Verify that the hard drive is no longer mounted.
# mount
Validate that the entry for the USB hard drive is no longer in the output.
Expected Results
Test Strategy
This test verifies that the SATA hard drive can be recognized successfully by the system.
Required Hardware
Test Procedure
When the system is powering on, get into the BIOS setup. If you do not see a message telling you how to get into the BIOS setup, read the documentation for your machine. When you are in the BIOS setup, enable the support for SATA hard drives.
For example, on the Dell OptiPlex GX270 Desktop, press F2 to get into the BIOS, and then go to the following item:
Drive Configuration
SATA Primary Drive
and:
Drive Configuration
SATA Secondary Drive
Change the setting of "Drive Type" from "OFF" to "AUTO".
Change other settings if needed.
Save changes and exit BIOS setup.
Perform a verbose reconfiguration reboot of the system. To do this, enter b -rv at the prompt when the following screen messages are displayed:
<<< Current Boot Parameters >>> Boot Path :/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0:a Boot args: Type b[file name] [boot-flags] <Enter> to boot with options i <Enter> to enter boot with interpreter <Enter> to boot with defaults <<< time out in 5 seconds >>> Select (b)oot or (i)nterpreter: b -rv
When the system is up, log in as user root and open a terminal to execute the following command:
# format -e
The output from this command should be messages such as the following about the hard disks that are recognized by the system:
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0d0 <DEFAULT cyl 26005 alt 2 hd 64 sec 63>
/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
1. c2d0 <DEFAULT cyl 58118 alt 2 hd 64 sec 63>
/pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0
2. c3d0 <DEFAULT cyl 55872 alt 2 hd 64 sec 63>
/pci@0,0/pci-ide@1f,2/ide@1/cmdk@0,0
Specify disk (enter its number):
Verify that this list includes the SATA disks. In the above example, c0d0 is the IDE disk that the system resides on, and c2d0 and c3d0 are the SATA disks attached to the SATA controller.
Expected Results
The SATA hard drives are recognized successfully.
Copyright 2005 Sun Microsystems, Inc. All rights reserved.