| #!/bin/sh |
| # Script to create device nodes for SMART array controllers |
| # Usage: |
| # mkdev.cciss [num controllers] [num log volumes] [num partitions] |
| # |
| # With no arguments, the script assumes 1 controller, 16 logical volumes, |
| # and 16 partitions/volume, which is adequate for most configurations. |
| # |
| # If you had 5 controllers and were planning on no more than 4 logical volumes |
| # each, using a maximum of 8 partitions per volume, you could say: |
| # |
| # mkdev.cciss 5 4 8 |
| # |
| # Of course, this has no real benefit over "mkdev.cciss 5" except that it |
| # doesn't create so many device nodes in /dev/cciss. |
| |
| NR_CTLR=${1-1} |
| NR_VOL=${2-16} |
| NR_PART=${3-16} |
| |
| if [ ! -d /dev/cciss ]; then |
| mkdir -p /dev/cciss |
| fi |
| |
| C=0; while [ $C -lt $NR_CTLR ]; do |
| MAJ=`expr $C + 104` |
| D=0; while [ $D -lt $NR_VOL ]; do |
| P=0; while [ $P -lt $NR_PART ]; do |
| MIN=`expr $D \* 16 + $P` |
| if [ $P -eq 0 ]; then |
| mknod /dev/cciss/c${C}d${D} b $MAJ $MIN |
| else |
| mknod /dev/cciss/c${C}d${D}p${P} b $MAJ $MIN |
| fi |
| P=`expr $P + 1` |
| done |
| D=`expr $D + 1` |
| done |
| C=`expr $C + 1` |
| done |