Example class HWCD
Jump to navigation
Jump to search
this is an example of a detection routine for "shiney plastic disc drives". it uses an internal table to check what drive has what capability, as a central discover database for this info does not exist (that i know of).
first, it checks to see if a cdrom driver is loaded, then checks what device its loaded for. the only results of this script should be a jhwdetect.var (for debugging), and one of four classes, depending on what the drive can do. the four classes are "HWCDROM HWDVDROM HWCDBURN HWDVDBURN"
#!/bin/sh
#(c) Julia Longtin, 2005-2008, risc@volumehost.com
#the output of this program will define hardware related classes.
#try to detect "shiney plastic disc" drives.
#first, see if theres a cdrom driver loaded
driver=`cat /proc/ide/drivers | grep cdrom`
if [ -n "$driver" ]
then
{
#a cdrom driver was loaded, a cdrom device is likely
cdroms=`grep -R ide-cdrom /proc/ide/ide* | sed "s/\(.*\)\/.*:.*/\1/"`
for cdrom in $cdroms; # try to detect the "shiney metal disc drive"
do {
compaqdvd=`grep "COMPAQ DVD-ROM" $cdrom/model`
[ -n "$compaqdvd" ] && dvdroms=`echo $dvdroms $cdrom`
atapiburner=`grep "ATAPI CD-RW" $cdrom/model`
[ -n "$atapiburner" ] && cdburners=`echo $atapiburners $cdrom`
gwburner=`grep "CR-48X9TE" $cdrom/model`
[ -n "$gwburner" ] && cdburners=`echo $cdburners $cdrom`
sonydvd=`grep "SONY DVD-ROM" $cdrom/model`
[ -n "$sonydvd" ] && dvdroms=`echo $dvdroms $cdrom`
sonyburner=`grep "SONY DVD RW" $cdrom/model`
[ -n "$sonyburner" ] && dvdburners=`echo $dvdburners $cdrom`
i8kdvd=`grep "TOSHIBA DVD-ROM" $cdrom/model`
[ -n "$i8kdvd" ] && dvdroms=`echo $dvdroms $cdrom`
}
done;
if [ -n "$cdburners" ]
then
{
echo "cdburners=$cdburners" >> $LOGDIR/jhwdetect.log
newclasses=`echo $newclasses HWCDROM HWCDBURN`
}
else
{
if [ -n "$dvdburners" ]
then
{
echo "dvdburners=$dvdburners" >> $LOGDIR/jhwdetect.log
newclasses=`echo $newclasses HWCDROM HWCDBURN HWDVDROM HWDVDBURN`
}
else
{
if [ -n "$dvdroms" ]
then
{
echo "dvdroms=$dvdroms" >> $LOGDIR/jhwdetect.log
newclasses=`echo $newclasses HWCDROM HWDVDROM`
}
else
{
echo "cdroms=$cdroms" >> $LOGDIR/jhwdetect.log
newclasses=`echo $newclasses HWCDROM`
}
fi
}
fi
}
fi
}
else
echo "WARNING: no cdrom detected, and i was written for fai-cd! continuing anyways!"
fi