Hello,
Got sum trouble with that raid controller mentioned above. The hardware gets detected and the driver comes up and detects all bays and everything is perfect but the device nodes in /dev/cciss are not created.
Sollution:
add to the iso image on knoppix /dev/cciss and run the script here to the missing mknods calls:
Code:#!/bin/sh # # Author: Francis Wiran <Francis.Wiran@hp.com> # # Script to create device nodes for SMART Array controllers, idea from # mkdev.cciss found in Documentation. The argument syntax is different, # hence, the name change. # # Usage: # mkdev_dyn.cciss [ctlr num] [major num] [num log vol] [num partitions] # # With no arguments, the script will check to see if there are any cciss # nodes already created in the /dev directory. If so, then it will assume # that the nodes for the first 8 controllers are already created by # /etc/makedev.d, which is likely. If not, then the script will create # them, using the major numbers reserved for cciss controllers (104 thru 111). # # After that, it will start creating nodes for the controllers which major # numbers are dynamically allocated by the kernel. It will check # /proc/devices for any cciss controllers with major numbers other than # 104 thru 111 and creates the nodes. # # Note that it is a good idea to run rmdev_dyn.cciss script if you remove # those controllers (the ones which major numbers were dynamically allocated) # This will unclutter /dev, as well as preventing possible problems due to # referenced devices and major numbers no longer available or taken by # other non-cciss drivers. # # With no arguments, the script assumes 16 logical volumes per controller # and 16 partitions per volume; # # Passing arguments: # If you know that one of your controllers, say cciss8, has been dynamically # assigned major number 254, and were planning on no more than 2 logical # volumes, using a maximum of 4 partitions per volume, you could do: # # mkdev_dyn.cciss 8 254 2 4 # # Of course, this has no real benefit over "mkdev_dyn.cciss 8 254" except # that it doesn't create as many device nodes in /dev/cciss. # # Inputs NR_CTLR=${1-8} NR_MAJOR=${2-254} NR_VOL=${3-16} NR_PART=${4-16} echo_usage() { echo "Usage: mkdev_dyn.cciss [ctlr num] [maj] [volumes] [partitions]" echo "The script assumes that ctlr 0 thru 7 is statically created" echo "Therefore, if you want to pass arguments make sure that" echo "ctlr num is equal or greater than 8, and the major number" echo "is not one that's statically assigned for cciss controller." echo "Check the correct major number in /proc/devices" # Hmm... we don't support volumes and partitions greater than 16 # either. } echo_create() { echo "created /dev/cciss/c${1}* nodes using major number ${2}" } # Function: do_mknod() # Creates devices nodes under /dev/cciss # Inputs: $1 - ctlr number # $2 - major number # $3 - number of devices on controller # $4 - number of partitions per device do_mknod() { D=0; while [ $D -lt $3 ]; do P=0; while [ $P -lt $4 ]; do MIN=`expr $D \* 16 + $P`; if [ $P -eq 0 ]; then mknod /dev/cciss/c${1}d${D} b $2 $MIN else mknod /dev/cciss/c${1}d${D}p${P} b $2 $MIN fi P=`expr $P + 1`; done D=`expr $D + 1`; done } # Function: do_dyn # Search and create cciss nodes for the controllers which # major numbers are allocated dynamically by the kernel # instead of using kernel.org 's value of 104 to 111. # # Input: $1 - ctlr num - will create nodes /dev/cciss/c${1} # $2 - major num - the major number to assign to the nodes # $3 - volumes - max number of volumes per controller # $4 - partitions - max number of partitions per volume # # Note: Without input, this function will start creating nodes # for controller c8 and above, making assumption that # c0 thru c7 are already made, and the name c8 and above # are not already taken. do_dyn() { if [ $# -eq 0 ]; then C=0; for MAJ in `cat /proc/devices |\ grep cciss |\ awk '/cciss[0-9]$/ { sub("cciss", "cciss0") }; {print}' |\ sort -k 2,2 |\ awk '{print $1-i}'`; do if [ `ls -l /dev/cciss/c* |\ awk '{print $5-i}' |\ uniq |\ grep $MAJ |\ wc -l` -gt 0 ]; then : else do_mknod $C $MAJ $NR_VOL $NR_PART; echo_create $C $MAJ; fi C=`expr $C + 1`; done else do_mknod $1 $2 $3 $4; echo_create $1 $2; fi exit } # Start here # Check the input values if [ $NR_CTLR -lt 8 ]; then echo_usage; exit fi if [ $NR_CTLR -ge 8 ]; then if [ \( $NR_MAJOR -ge 104 \) -a \( $NR_MAJOR -le 111 \) ]; then echo_usage; exit fi fi if [ ! -d /dev/cciss ]; then mkdir -p /dev/cciss fi # Assume that if c0d0p1 node already exist, then all nodes from c0d0p1 # to c7d15p15 have been created for us. if [ ! -b /dev/cciss/c0d0p1 ]; then C=0; while [ $C -lt 8 ]; do MAJ=`expr $C + 104`; do_mknod $C $MAJ $NR_VOL $NR_PART; echo_create $C $MAJ; C=`expr $C + 1`; done fi if [ $# -gt 0 ]; then do_dyn $NR_CTLR $NR_MAJOR $NR_VOL $NR_PART; else do_dyn; fi
:P
Intel Core i7-14700K - 14th Gen 20-Core (8P+12E) LGA 1700 125W CPU Processor
$373.96
Intel Core i5-6500 6th GEN Quad-Core 3.2GHz FCLGA 1151 CPU Processor SR2L6
$23.99
Intel Core i7-3770 Desktop Processor (3.4 GHz, 4 Cores, LGA 1155) Ivy Bridge
$29.99
Intel Core i7 CPU Processors, I7 2600, i7 3770, i7 4770, i7 4790
$28.99
Intel - Core i7-14700K 14th Gen 20-Core 28-Thread - 4.3GHz (5.6GHz Turbo) Soc...
$373.99
Intel Core i7-8700 3.20 GHz CPU Processor SR3QS
$92.00
Intel - Core i5-14600K 14th Gen 14-Core 20-Thread - 4.0GHz (5.3GHz Turbo) Soc...
$305.99
10th GEN INTEL Core i5-10400F 2.9GHz Socket-1200 Desktop CPU SRH3D Processor
$69.99
Intel Core i7-4790K SR219 4.00GHZ 4Th Gen Used Desktop Processor CPU FCLGA1150
$64.99
Intel Core i7-13700KF - 13th Gen Raptor Lake 16-Core (8P+8E) Desktop CPU Proc...
$289.99