ImageDisk project is canceled
ard at p850ug1.demon.co.uk
Thu Dec 22 18:11:54 CST 2005
> > You are, IMHO, missing the point. Under linux, you have an ioctl()
> > call that lets you send any ocmmand bytes you like to the FDC. You can
> > therefore get that chip to do anything that it's capable of. And that
> > call takes care of setting up the DMA controller if you need it,
> > making sure the DMA buffer doesn't cross a page boundary, and all the
> > other nasty little details.
FWIW, I've tried out Eric's dumpids program, and it behaves as I
suspected. Using a disk I know the format of (OK, a plain MS-DOS 1.44M
disk), it does, indeed, miss some sectors on my machine. It is
particularly noticeable that a given sector number is not always followed
by the same sector number.
> Why can't you just write a kernel module that does its ReadID with
Becuase 'just writing a kernel module' is not something I do for fun :-).
Tracking down a fautly component in some bit of hardware, now that is fun....
[In other words, we can't all be good at everything, OK]
> interrupts turned off... there's ways to keep the OS from task
> switching during the critical section of your code that does the sector
> layout determination - writing a kernel module or using realtime
> priority (nice -20 might work on Linux) of the OS if it's got it.
> Assuming you're using a machine with a real PIC interrupt controller, not
Which of course I am. In fact it is a real 8259, it's not even hidden
inside some part of a chipset.
> new enough to have an APIC of some sort, under Linux/x86 you can always
> do an iopl(3), and turn off the interrupt controller by hand, from
> userland, if you're running as root. Just Be Careful when you try that.
> and don't leave it off for too long... :)
That sounds like a very good way to stop all sorts of things from
working. In fact I susepct the floppy driver depends on interrupts to
work (even for the FDRAWCMD ioctl()). Yes, I could disable all others, I
guess and hope...
More information about the cctalk