Re: floppy disk controller broken
- From: Michel Talon <talon@xxxxxxxxxxxxxxxx>
- Date: Thu, 18 Sep 2008 09:53:06 +0200
On Wed, Sep 17, 2008 at 05:13:39PM -0400, John Baldwin wrote:
On Wednesday 17 September 2008 11:04:33 am Michel Talon wrote:
Hello,
when testing FreeBSD-7.1-BETA i discovered that the floppy disk
controller doesn't work correctly. Trying to format a floppy (perhaps
with bad blocks) i get:
Processing fdformat: ioctl(FD_FORM): Device not configured
instead of the normal E letter. I then checked the same problem is
present on FreeBSD-6.3 and it has been reported by Beech Rintoul (*) in
2006! Of course the floppy disk driver is particularly messy, but
this is not pretty.
(*) i386/103862: Error with fdformat
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
--
John Baldwin
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. Here reading fails with incoherent messages:
dd: /dev/fd0: Device not configured
3+0 records in
3+0 records out
1536 bytes transferred in 2.595216 secs (592 bytes/sec)
repeated a large number of times. But nothing in dmesg, contrary to the
tradition which showed the defective sectors.
In conclusion i am under the impression that the in kernel driver is
severely botched. Of course nobody uses floppies any more, but this is
quite ugly.
--
Michel TALON
_______________________________________________
freebsd-stable@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: floppy disk controller broken
- From: Oliver Fromme
- Re: floppy disk controller broken
- References:
- floppy disk controller broken
- From: Michel Talon
- Re: floppy disk controller broken
- From: John Baldwin
- floppy disk controller broken
- Prev by Date: Re: Upcoming Releases Schedule...
- Next by Date: Re: 6.3 reboot -d doesn't work
- Previous by thread: Re: floppy disk controller broken
- Next by thread: Re: floppy disk controller broken
- Index(es):
Relevant Pages
|