From owner-freebsd-hackers Wed Nov 25 21:15:28 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id VAA25935 for freebsd-hackers-outgoing; Wed, 25 Nov 1998 21:15:28 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from dingo.cdrom.com (castles143.castles.com [208.214.165.143]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id VAA25929 for ; Wed, 25 Nov 1998 21:15:22 -0800 (PST) (envelope-from mike@dingo.cdrom.com) Received: from dingo.cdrom.com (localhost [127.0.0.1]) by dingo.cdrom.com (8.9.1/8.8.8) with ESMTP id VAA00609; Wed, 25 Nov 1998 21:13:50 -0800 (PST) (envelope-from mike@dingo.cdrom.com) Message-Id: <199811260513.VAA00609@dingo.cdrom.com> X-Mailer: exmh version 2.0.2 2/24/98 To: myers@iname.com cc: freebsd-hackers@FreeBSD.ORG Subject: Re: Non-kernel hacker needs serial help! In-reply-to: Your message of "Wed, 25 Nov 1998 12:00:02 PST." <199811252000.MAA01573@sol.> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 25 Nov 1998 21:13:50 -0800 From: Mike Smith Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > > > Folks: > > Help a non-kernel hacker out here. I've got an ancient HP DeskWriter > printer with a serial interface. It came off a Macintosh. Specs are > 57.6K, 8N1. Under Win98, I can make it print, but only after > manually specifying a slowed transfer rate from the UART (under > "Advanced Port Settings", or something like that). However, I can't > make it print at all from my FreeBSD box. > > Or rather, it will print, but only the first two inches or so of the > first page. After that, it just hangs. > > So, I speculate: Macs must have a non-standard H/W handshaking > protocol. The FreeBSD box never sees a "buffer full" message from the > printer, so it blindly blasts out the bits, but the printer barfs on > them, and ends up flushing its buffer and giving up. It only makes it > through two inches of output before dying. > > My solution: introduce a delay into the serial port output stream, just > like Win98 lets me do. I go kernel hacking. I locate > /usr/src/sys/i386/isa/sio.c, find the function siointr1, and throw in > two DELAY(1000) statements, like this: Bad. Fix your cable and the port settings to handshake properly. There's probably a Linux FAQ about this somewhere; most of it should be applicable. -- \\ Sometimes you're ahead, \\ Mike Smith \\ sometimes you're behind. \\ mike@smith.net.au \\ The race is long, and in the \\ msmith@freebsd.org \\ end it's only with yourself. \\ msmith@cdrom.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message