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. ;-)