{
    "content": [
        {
            "type": "text",
            "text": "# cciss (man)\n\n## NAME\n\ncciss - HP Smart Array block driver\n\n## SYNOPSIS\n\nmodprobe cciss [ ccissallowhpsa=1 ]\n\n## DESCRIPTION\n\nNote:  This  obsolete driver was removed from the kernel in version 4.14, as it is superseded\nby the hpsa(4) driver in newer kernels.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION** (3 subsections)\n- **FILES** (6 subsections)\n- **SEE ALSO**\n- **COLOPHON**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "cciss",
        "section": "",
        "mode": "man",
        "summary": "cciss - HP Smart Array block driver",
        "synopsis": "modprobe cciss [ ccissallowhpsa=1 ]",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "hpsa",
                "section": "4",
                "url": "https://www.chedong.com/phpMan.php/man/hpsa/4/json"
            },
            {
                "name": "ccissvolstatus",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/ccissvolstatus/8/json"
            },
            {
                "name": "hpacucli",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/hpacucli/8/json"
            },
            {
                "name": "hpacuxe",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/hpacuxe/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 5,
                "subsections": [
                    {
                        "name": "Options",
                        "lines": 22
                    },
                    {
                        "name": "Supported hardware",
                        "lines": 27
                    },
                    {
                        "name": "Configuration details",
                        "lines": 4
                    }
                ]
            },
            {
                "name": "FILES",
                "lines": 1,
                "subsections": [
                    {
                        "name": "Device nodes",
                        "lines": 34
                    },
                    {
                        "name": "Files in /proc",
                        "lines": 24
                    },
                    {
                        "name": "Files in /sys",
                        "lines": 34
                    },
                    {
                        "name": "SCSI tape drive and medium changer support",
                        "lines": 25
                    },
                    {
                        "name": "Hot plug support for SCSI tape drives",
                        "lines": 28
                    },
                    {
                        "name": "SCSI error handling for tape drives and medium changers",
                        "lines": 28
                    }
                ]
            },
            {
                "name": "SEE ALSO",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "COLOPHON",
                "lines": 7,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "cciss - HP Smart Array block driver\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "modprobe cciss [ ccissallowhpsa=1 ]\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "Note:  This  obsolete driver was removed from the kernel in version 4.14, as it is superseded\nby the hpsa(4) driver in newer kernels.\n\ncciss is a block driver for older HP Smart Array RAID controllers.\n",
                "subsections": [
                    {
                        "name": "Options",
                        "content": "ccissallowhpsa=1: This option prevents the cciss driver from attempting to drive  any  con‐\ntrollers that the hpsa(4) driver is capable of controlling, which is to say, the cciss driver\nis restricted by this option to the following controllers:\n\nSmart Array 5300\nSmart Array 5i\nSmart Array 532\nSmart Array 5312\nSmart Array 641\nSmart Array 642\nSmart Array 6400\nSmart Array 6400 EM\nSmart Array 6i\nSmart Array P600\nSmart Array P400i\nSmart Array E200i\nSmart Array E200\nSmart Array E200i\nSmart Array E200i\nSmart Array E200i\nSmart Array E500\n"
                    },
                    {
                        "name": "Supported hardware",
                        "content": "The cciss driver supports the following Smart Array boards:\n\nSmart Array 5300\nSmart Array 5i\nSmart Array 532\nSmart Array 5312\nSmart Array 641\nSmart Array 642\nSmart Array 6400\nSmart Array 6400 U320 Expansion Module\nSmart Array 6i\nSmart Array P600\nSmart Array P800\nSmart Array E400\nSmart Array P400i\nSmart Array E200\nSmart Array E200i\nSmart Array E500\nSmart Array P700m\nSmart Array P212\nSmart Array P410\nSmart Array P410i\nSmart Array P411\nSmart Array P812\nSmart Array P712m\nSmart Array P711m\n"
                    },
                    {
                        "name": "Configuration details",
                        "content": "To configure HP Smart Array controllers, use  the  HP  Array  Configuration  Utility  (either\nhpacuxe(8) or hpacucli(8)) or the Offline ROM-based Configuration Utility (ORCA) run from the\nSmart Array's option ROM at boot time.\n"
                    }
                ]
            },
            "FILES": {
                "content": "",
                "subsections": [
                    {
                        "name": "Device nodes",
                        "content": "The device naming scheme is as follows:\n\nMajor numbers:\n\n104     cciss0\n105     cciss1\n106     cciss2\n105     cciss3\n108     cciss4\n109     cciss5\n110     cciss6\n111     cciss7\n\nMinor numbers:\n\nb7 b6 b5 b4 b3 b2 b1 b0\n|----+----| |----+----|\n|           |\n|           +-------- Partition ID (0=wholedev, 1-15 partition)\n|\n+-------------------- Logical Volume number\n\nThe device naming scheme is:\n\n/dev/cciss/c0d0     Controller 0, disk 0, whole device\n/dev/cciss/c0d0p1   Controller 0, disk 0, partition 1\n/dev/cciss/c0d0p2   Controller 0, disk 0, partition 2\n/dev/cciss/c0d0p3   Controller 0, disk 0, partition 3\n\n/dev/cciss/c1d1     Controller 1, disk 1, whole device\n/dev/cciss/c1d1p1   Controller 1, disk 1, partition 1\n/dev/cciss/c1d1p2   Controller 1, disk 1, partition 2\n/dev/cciss/c1d1p3   Controller 1, disk 1, partition 3\n"
                    },
                    {
                        "name": "Files in /proc",
                        "content": "The files /proc/driver/cciss/cciss[0-9]+ contain information about the configuration of  each\ncontroller.  For example:\n\n$ cd /proc/driver/cciss\n$ ls -l\ntotal 0\n-rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss0\n-rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss1\n-rw-r--r-- 1 root root 0 2010-09-10 10:38 cciss2\n$ cat cciss2\ncciss2: HP Smart Array P800 Controller\nBoard ID: 0x3223103c\nFirmware Version: 7.14\nIRQ: 16\nLogical drives: 1\nCurrent Q depth: 0\nCurrent # commands on controller: 0\nMax Q depth since init: 1\nMax # commands on controller since init: 2\nMax SG entries since init: 32\nSequential access devices: 0\n\ncciss/c2d0:   36.38GB       RAID 0\n"
                    },
                    {
                        "name": "Files in /sys",
                        "content": "/sys/bus/pci/devices/<dev>/ccissX/cXdY/model\nDisplays the SCSI INQUIRY page 0 model for logical drive Y of controller X.\n\n/sys/bus/pci/devices/<dev>/ccissX/cXdY/rev\nDisplays the SCSI INQUIRY page 0 revision for logical drive Y of controller X.\n\n/sys/bus/pci/devices/<dev>/ccissX/cXdY/uniqueid\nDisplays the SCSI INQUIRY page 83 serial number for logical drive Y of controller X.\n\n/sys/bus/pci/devices/<dev>/ccissX/cXdY/vendor\nDisplays the SCSI INQUIRY page 0 vendor for logical drive Y of controller X.\n\n/sys/bus/pci/devices/<dev>/ccissX/cXdY/block:cciss!cXdY\nA symbolic link to /sys/block/cciss!cXdY.\n\n/sys/bus/pci/devices/<dev>/ccissX/rescan\nWhen  this  file is written to, the driver rescans the controller to discover any new,\nremoved, or modified logical drives.\n\n/sys/bus/pci/devices/<dev>/ccissX/resettable\nA value of 1 displayed in this file indicates that the \"resetdevices=1\" kernel param‐\neter  (used  by kdump) is honored by this controller.  A value of 0 indicates that the\n\"resetdevices=1\" kernel parameter will not be honored.  Some models  of  Smart  Array\nare not able to honor this parameter.\n\n/sys/bus/pci/devices/<dev>/ccissX/cXdY/lunid\nDisplays the 8-byte LUN ID used to address logical drive Y of controller X.\n\n/sys/bus/pci/devices/<dev>/ccissX/cXdY/raidlevel\nDisplays the RAID level of logical drive Y of controller X.\n\n/sys/bus/pci/devices/<dev>/ccissX/cXdY/usagecount\nDisplays the usage count (number of opens) of logical drive Y of controller X.\n"
                    },
                    {
                        "name": "SCSI tape drive and medium changer support",
                        "content": "SCSI  sequential  access devices and medium changer devices are supported and appropriate de‐\nvice nodes are automatically created (e.g., /dev/st0, /dev/st1, etc.; see st(4) for more  de‐\ntails.)  You must enable \"SCSI tape drive support for Smart Array 5xxx\" and \"SCSI support\" in\nyour kernel configuration to be able to use SCSI tape drives with your Smart Array 5xxx  con‐\ntroller.\n\nAdditionally,  note  that  the driver will not engage the SCSI core at init time.  The driver\nmust be directed to dynamically engage the SCSI core via the /proc  filesystem  entry,  which\nthe \"block\" side of the driver creates as /proc/driver/cciss/cciss* at run time.  This is be‐\ncause at driver init time, the SCSI core may not yet be initialized (because the driver is  a\nblock  driver)  and attempting to register it with the SCSI core in such a case would cause a\nhang.  This is best done via an initialization script (typically in  /etc/init.d,  but  could\nvary depending on distribution).  For example:\n\nfor x in /proc/driver/cciss/cciss[0-9]*\ndo\necho \"engage scsi\" > $x\ndone\n\nOnce the SCSI core is engaged by the driver, it cannot be disengaged (except by unloading the\ndriver, if it happens to be linked as a module.)\n\nNote also that if no sequential access devices or medium changers are detected, the SCSI core\nwill not be engaged by the action of the above script.\n"
                    },
                    {
                        "name": "Hot plug support for SCSI tape drives",
                        "content": "Hot  plugging  of SCSI tape drives is supported, with some caveats.  The cciss driver must be\ninformed that changes to the SCSI bus have been  made.   This  may  be  done  via  the  /proc\nfilesystem.  For example:\n\necho \"rescan\" > /proc/scsi/cciss0/1\n\nThis causes the driver to:\n\n1. query the adapter about changes to the physical SCSI buses and/or fiber channel ar‐\nbitrated loop, and\n\n2. make note of any new or removed sequential access devices or medium changers.\n\nThe driver will output messages indicating which devices have been added or removed  and  the\ncontroller,  bus,  target, and lun used to address each device.  The driver then notifies the\nSCSI midlayer of these changes.\n\nNote that the naming convention of the /proc filesystem entries contains a number in addition\nto the driver name (e.g., \"cciss0\" instead of just \"cciss\", which you might expect).\n\nNote: Only sequential access devices and medium changers are presented as SCSI devices to the\nSCSI midlayer by the cciss driver.  Specifically, physical SCSI disk drives are not presented\nto  the  SCSI  midlayer.   The only disk devices that are presented to the kernel are logical\ndrives that the array controller constructs from regions on the physical drives.  The logical\ndrives  are presented to the block layer (not to the SCSI midlayer).  It is important for the\ndriver to prevent the kernel from accessing the physical drives directly, since these  drives\nare used by the array controller to construct the logical drives.\n"
                    },
                    {
                        "name": "SCSI error handling for tape drives and medium changers",
                        "content": "The Linux SCSI midlayer provides an error-handling protocol that is initiated whenever a SCSI\ncommand fails to complete within a certain amount of time (which can vary  depending  on  the\ncommand).   The cciss driver participates in this protocol to some extent.  The normal proto‐\ncol is a four-step process:\n\n*  First, the device is told to abort the command.\n\n*  If that doesn't work, the device is reset.\n\n*  If that doesn't work, the SCSI bus is reset.\n\n*  If that doesn't work, the host bus adapter is reset.\n\nThe cciss driver is a block driver as well as a SCSI driver and  only  the  tape  drives  and\nmedium changers are presented to the SCSI midlayer.  Furthermore, unlike more straightforward\nSCSI drivers, disk I/O continues through  the  block  side  during  the  SCSI  error-recovery\nprocess.   Therefore, the cciss driver implements only the first two of these actions, abort‐\ning the command, and resetting the device.  Note also that most tape drives will  not  oblige\nin  aborting  commands,  and  sometimes  it  appears they will not even obey a reset command,\nthough in most circumstances they will.  If the command cannot be aborted and the device can‐\nnot be reset, the device will be set offline.\n\nIn the event that the error-handling code is triggered and a tape drive is successfully reset\nor the tardy command is successfully aborted, the tape drive may still not allow I/O to  con‐\ntinue  until  some  command is issued that positions the tape to a known position.  Typically\nyou must rewind the tape (by issuing mt -f /dev/st0 rewind for example) before I/O  can  pro‐\nceed again to a tape drive that was reset.\n"
                    }
                ]
            },
            "SEE ALSO": {
                "content": "hpsa(4), ccissvolstatus(8), hpacucli(8), hpacuxe(8)\n\n⟨http://cciss.sf.net⟩,   and   Documentation/blockdev/cciss.txt  and  Documentation/ABI/test‐\ning/sysfs-bus-pci-devices-cciss in the Linux kernel source tree\n",
                "subsections": []
            },
            "COLOPHON": {
                "content": "This page is part of release 5.10 of the Linux  man-pages  project.   A  description  of  the\nproject,  information about reporting bugs, and the latest version of this page, can be found\nat https://www.kernel.org/doc/man-pages/.\n\n\n\nLinux                                        2017-09-15                                     CCISS(4)",
                "subsections": []
            }
        }
    }
}