spin up/down scsi ioctl

Manuel J. Galan (manolow@ext.step.es)
Sat, 21 Jun 1997 15:26:52 +0100


This is a multi-part message in MIME format.
--------------51B6553CC013901C7AE07EAE
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi all,
I have a noisy Quantum Grand Prix Wide SCSI drive which I use to store backup
things and cruft...
This drive is quite hot as it works at 7200 rpm and with one more 7200 disk plus
2 Ppro at 200Mhz my box was becoming real hot...
Digging around I found a small package 'scsi-idle' which added 'spin up/down'
ioctl to the kernel scsi disk subsystem and a tiny daemon to spin down scsi
disks after a predefined amount of time...which seems to work with my scsi
host adapters (2 x bt-958 + 1 x bt-946C) and disks (quantum xp32150w +
quantum xp34301) kernel 2.1.44-pre2
This is very similar to the adaptec ez-scsi facility to spin down idle hard
disks..( which, BTW, I use in another box running NT4...)
I attach the original version plus a (minimally) modified version for linux-2.1.43
with the hope that this useful ioctl will be included into mainstream kernel...
-- 
Manuel J. Galan

--------------51B6553CC013901C7AE07EAE
Content-Type: application/x-gzip; name="scsi-idle-2.1.43.tar.gz"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="scsi-idle-2.1.43.tar.gz"

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
/weDF5dRAKAAAA==
--------------51B6553CC013901C7AE07EAE--