Date: Thu, 18 Sep 2008 20:32:50 +0200 From: Michel Talon <talon@lpthe.jussieu.fr> To: freebsd-stable@FreeBSD.ORG, jhb@FreeBSD.ORG Subject: Re: floppy disk controller broken Message-ID: <20080918183250.GA48347@lpthe.jussieu.fr> In-Reply-To: <200809181618.m8IGIj2P050390@lurza.secnetix.de> References: <20080918075306.GA30709@lpthe.jussieu.fr> <200809181618.m8IGIj2P050390@lurza.secnetix.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Sep 18, 2008 at 06:18:45PM +0200, Oliver Fromme wrote: > Michel Talon wrote: > > John Baldwin wrote: > > > It looks like the ioctl to format a track used to never report failures from > > > the controller. The newer driver does. What I've done with fdformat is to > > > make it just ignore the errors in userland instead. Try this: > > > > > > Index: fdformat.c > > > =================================================================== > > > --- fdformat.c (revision 183112) > > > +++ fdformat.c (working copy) > > > @@ -75,8 +75,7 @@ > > > f.fd_formb_secno(i) = il[i+1]; > > > f.fd_formb_secsize(i) = secsize; > > > } > > > - if(ioctl(fd, FD_FORM, (caddr_t)&f) < 0) > > > - err(EX_OSERR, "ioctl(FD_FORM)"); > > > + (void)ioctl(fd, FD_FORM, (caddr_t)&f); > > > } > > > > > > static int > > > > This doesn't work any more. This time i get > > niobe# fdformat fd0 > > Format 1440K floppy `/dev/fd0'? (y/n): y > > Processing EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE done. > > > > where only the first E takes some time to be printed, and all subsequent > > ones are printed instantaneously, that is all other formatting is not > > tried. In principle the formatting process must try each of the > > "sectors" in turn, and can come up with a series of V and F. > > > > Moreover, trying to write to the floppy: > > niobe# dd if=/dev/zero of=/dev/fd0 conv=noerror > > dd: /dev/fd0: Input/output error > > 5+0 records in > > 4+0 records out > > 2048 bytes transferred in 4.054404 secs (505 bytes/sec) > > > > I don't expect such result. Traditionnally writing works, while reading > > may fail. > > Maybe I misunderstand what you're saying, but ... > When I try to write to a floppy that has *not* been > successfully formatted, I very much expect to get > Input/output error. Anything else would be a bug. > > Best regards > Oliver The floppy has certainly be formatted, in the past. Perhaps i remember badly, i have not used floppies since years, but in this case the behavior with Windows, Linux and ancient FreeBSD was that you could write to the floppy, but could encounter errors while reading. Using dd conv=noerror allowed to recover the valid part. Under Windows you could very well use floppies partly damaged with bad blocks or tracks. Here the driver seems to bail out at the first error, so that the above commands run much faster than they should, a few seconds, while something of the order of a minute should be more realistic. -- Michel TALON
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080918183250.GA48347>