*BSD News Article 62606


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.OZ.AU!news.hawaii.edu!ames!usenet.kornet.nm.kr!usenet.hana.nm.kr!jagalchi.cc.pusan.ac.kr!news.kreonet.re.kr!usenet.seri.re.kr!news.cais.net!news.jsums.edu!gatech!news.mathworks.com!fu-berlin.de!news.belwue.de!news.dfn.de!news.uni-jena.de!news.HRZ.HAB-Weimar.DE!News.HTWM.De!news.tu-chemnitz.de!irz401!uriah.heep!news
From: j@uriah.heep.sax.de (J Wunsch)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: CDROM changers, etc
Date: 19 Feb 1996 23:31:14 GMT
Organization: Private BSD site, Dresden
Lines: 48
Message-ID: <4gb182$d34@uriah.heep.sax.de>
References: <DMHsAG.IyE@sysadm.physics.uiowa.edu>
Reply-To: joerg_wunsch@uriah.heep.sax.de (Joerg Wunsch)
NNTP-Posting-Host: localhost.heep.sax.de
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Newsreader: knews 0.9.3

ljg@space.physics.uiowa.edu (Larry Granroth) writes:

> First off, I'm looking for information on using the /dev/ch0 device
> for controlling a Pioneer DRM-1804X CDROM changer.  I've found ioctl
> structures in <sys/chio.h>, but was hoping that someone had already
> put together some convenient utilities.

The `ch' driver is for tape changer devices.  CDROM changers should be
handled by the regular `cd' driver.

You should get it going well, except that systems up to 2.1R had a
minor bug causing a panic when accessing > 6 drives.  Here's the fix
from -current:

Index: /sys/scsi/cd.c
===================================================================
RCS file: /home/cvs/src/sys/scsi/cd.c,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -u -r1.53 -r1.54
--- cd.c	1995/12/14 09:54:18	1.53
+++ cd.c	1995/12/20 12:02:43	1.54
@@ -14,7 +14,7 @@
  *
  * Ported to run under 386BSD by Julian Elischer (julian@tfs.com) Sept 1992
  *
- *      $Id: cd.c,v 1.53 1995/12/14 09:54:18 phk Exp $
+ *      $Id: cd.c,v 1.54 1995/12/20 12:02:43 dufault Exp $
  */
 
 #define SPLCD splbio
@@ -588,7 +588,7 @@
 		return;
 	}
 	cdqueues++;
-	if(cd->dkunit) {
+	if(cd->dkunit >= 0) {
 		dk_xfer[cd->dkunit]++;
 		dk_seek[cd->dkunit]++; /* don't know */
 		dk_wds[cd->dkunit] += bp->b_bcount >> 6;


-- 
cheers, J"org

joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)