Date: Fri, 3 Apr 1998 08:58:38 -0500 (EST) From: Peter Dufault <dufault@hda.com> To: larry@marso.com (Larry S. Marso) Cc: scsi@FreeBSD.ORG Subject: Re: scanner--*anyone* successful with FreeBSD? Message-ID: <199804031358.IAA16102@hda.hda.com> In-Reply-To: <19980403081559.64189@marso.com> from "Larry S. Marso" at "Apr 3, 98 08:15:59 am"
next in thread | previous in thread | raw e-mail | index | archive | help
> I am wondering whether *anyone* has a scanner working in the FreeBSD > environment, or if it's only a fool's (or a superlative hacker's) quest > at the moment. I'm struggling with a brand-spanking new HP6100cse. > > My system utterly locks up whenever I access the scanner. Anytime I > access /dev/pt0, using any of the software that supposedly supports hp > scanners (commercial xvscan -- FreeBSD binaries or freshly compiled -- > hpscan or sane 0.71), the *entire* system locks up. Boot into single user mode. Enable debugging on /dev/pt0. Try to do a "dd" from it. See what happens. Or use a serial console with debugging enabled and your X based app. No one has gotten back to me on the patch I suggested earlier to make anything using the generic ioctls work. I'm enclosing it at the end. The patch doesn't hurt my system, but I'm not going to commit it without feedback from someone. My crash box doesn't even have SCSI on it. The patch to scsi_ioctl is for general goodness and isn't needed. Peter -- Peter Dufault (dufault@hda.com) Realtime development, Machine control, HD Associates, Inc. Safety critical systems, Agency approval diff -c -N -r /hosts/rt/sd1/A/dufault/posix4/current/usr/src/sys/kern/kern_physio.c /hosts/rt/sd1/A/dufault/posix4/new/usr/src/sys/kern/kern_physio.c *** /hosts/rt/sd1/A/dufault/posix4/current/usr/src/sys/kern/kern_physio.c Fri Jan 23 21:01:18 1998 --- /hosts/rt/sd1/A/dufault/posix4/new/usr/src/sys/kern/kern_physio.c Tue Mar 17 06:52:50 1998 *************** *** 178,184 **** if (bdsw && bdsw->d_maxio) { maxphys = bdsw->d_maxio; } ! if (bp->b_kvasize < maxphys) maxphys = bp->b_kvasize; if(((vm_offset_t) bp->b_data) & PAGE_MASK) { --- 178,184 ---- if (bdsw && bdsw->d_maxio) { maxphys = bdsw->d_maxio; } ! if (bp->b_kvasize && bp->b_kvasize < maxphys) maxphys = bp->b_kvasize; if(((vm_offset_t) bp->b_data) & PAGE_MASK) { diff -c -N -r /hosts/rt/sd1/A/dufault/posix4/current/usr/src/sys/scsi/scsi_ioctl.c /hosts/rt/sd1/A/dufault/posix4/new/usr/src/sys/scsi/scsi_ioctl.c *** /hosts/rt/sd1/A/dufault/posix4/current/usr/src/sys/scsi/scsi_ioctl.c Sun Feb 1 13:09:46 1998 --- /hosts/rt/sd1/A/dufault/posix4/new/usr/src/sys/scsi/scsi_ioctl.c Tue Mar 17 06:52:52 1998 *************** *** 286,293 **** screq = malloc(sizeof(scsireq_t),M_TEMP,M_WAITOK); bcopy(screq2,screq,sizeof(scsireq_t)); } ! bp = malloc(sizeof (struct buf),M_TEMP,M_WAITOK); ! bzero(bp,sizeof(struct buf)); d_addr = screq->databuf; bp->b_bcount = len = screq->datalen; bp->b_screq = screq; --- 286,292 ---- screq = malloc(sizeof(scsireq_t),M_TEMP,M_WAITOK); bcopy(screq2,screq,sizeof(scsireq_t)); } ! bp = getpbuf(); d_addr = screq->databuf; bp->b_bcount = len = screq->datalen; bp->b_screq = screq; *************** *** 321,327 **** scsistrategy(bp); ret = bp->b_error; } ! free(bp,M_TEMP); #if 0 /* XXX dufault@hda.com: This looks too rev dependent. Do it always? */ if((unsigned int)screq2 < (unsigned int)KERNBASE) #endif --- 320,326 ---- scsistrategy(bp); ret = bp->b_error; } ! relpbuf(bp); #if 0 /* XXX dufault@hda.com: This looks too rev dependent. Do it always? */ if((unsigned int)screq2 < (unsigned int)KERNBASE) #endif To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199804031358.IAA16102>