WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: [SOLVED] hde: timeout waiting for DMA  (Read 28109 times)

Offline tinypoodle

  • Hero Member
  • *****
  • Posts: 3857
Re: hde: timeout waiting for DMA
« Reply #15 on: January 23, 2011, 10:53:00 PM »
Tinypoodle, I might consider that. I guess I'd like to check all other options first, because that means I'd have to use up another box (or at least start a VM) unless you have a better idea up your sleeve that you just aren't sharin.

Booting over ethernet would indeed require another box as "mothership", but only until your client box has booted, then the connection can be terminated and you are free to do with the other box as you like, incl. shutdown.

For a better idea up my sleeve... hmm...

You mention
Quote
bios not liking my boot loader
but without being more specific...

In case you could successfully boot to a (even very minimal) DOS system, then it might be relatively easy to use a DOS based Linux bootloader, in which case it could be avoided to have the BIOS handing control over directly to your desired bootloader.
"Software gets slower faster than hardware gets faster." Niklaus Wirth - A Plea for Lean Software (1995)

Offline jason.ritzke

  • Newbie
  • *
  • Posts: 20
Re: hde: timeout waiting for DMA
« Reply #16 on: January 24, 2011, 12:10:11 PM »
Rich: Sorry, no joy with that bootcode either.

Maro: Part of the problem is that I don't even get booted. In fact, I get no part of the boot process. The system fails to begin reading from the drive properly because it times out waiting for dma. Therefore it doesn't boot at all.

Tinypoodle:
The netboot idea is kind of interesting, although I hope you can see how it would be a MAJOR hassle in many situations.

As for the bootloader issue, sorry I wasn't more specific, but I like to keep threads on track. No HDD based bootloader I've tried has worked. Even with the boot partition in fat 32 and under 256mb. The bios doesn't even appear to see them. It just hangs with a flashing cursor followed by an "invalid system disk". Is that specific enough?

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11702
Re: hde: timeout waiting for DMA
« Reply #17 on: January 25, 2011, 12:20:05 AM »
Hi jason
I'm so sorry, I mistyped the cheatcode. With your CD drive still trying to boot as hda
try "tinycore ide-core.nodma=0.0".

Offline maro

  • Hero Member
  • *****
  • Posts: 1228
Re: hde: timeout waiting for DMA
« Reply #18 on: January 25, 2011, 01:52:34 AM »
(1) I was initially mildly confused when I read for the first time:
Quote
Part of the problem is that I don't even get booted. In fact, I get no part of the boot process. The system fails to begin reading from the drive properly because it times out waiting for dma. Therefore it doesn't boot at all.
I thought that the kernel does not even get to run (i.e. the boot loader already fails to read from the CD-ROM). But that is obviously contradicted by the reported "timeout waiting for DMA" message which most likely is generated by the 'drivers/ide/ide-dma.c' file of the kernel.

(2) As a side note I've now managed to boot from CD-ROM on my old Dell notebook after adjusting the suggestion of reply #17 to my case: using 'ide-core.nodma=1.0' as boot code to disallow DMA on '/dev/hdc'.

I was wondering how using this boot code compared to my earlier suggestion to eject the CD-ROM after the boot loader (i.e. ISOLINUX) has done it's job. In my view the right time would be when the screen performs a refresh and the cursor jumps to the top right corner (and preferably before TC goes through it's startup process as noticable by the "Booting tinycore_3.4.1" message). But the disadvantage of this "ejection method" is that the CD-ROM would still not be usable after TC is running. As I discovered the DMA issues would just "resurface" when a CD-ROM has been put back in the drive and a mount /mnt/hdc was done.

The 'ide-core.nodma=1.0' boot code eliminated for me all those problems, so it might be the way to go for other systems of a certain age.


Offline jason.ritzke

  • Newbie
  • *
  • Posts: 20
Re: hde: timeout waiting for DMA
« Reply #19 on: January 25, 2011, 09:38:20 AM »
Maro, since you seem confused and to be coming to wrong conclusions about what is happening on my system, I shall give you a step by step account of what I see.
Post completes.
Tinycore boot prompt comes up.
I enter "tinycore [add switches of your choice here]" and press enter.
Screen flashes once. The tinycore boot prompt reappears, with the words that I entered.
After about 10 seconds "hd_: Timeout waiting for DMA" appears in the upper left hand corner. NOTHING ELSE. Just that.

That is what occurs. Does that help you to understand better?

Offline jason.ritzke

  • Newbie
  • *
  • Posts: 20
Re: hde: timeout waiting for DMA
« Reply #20 on: January 25, 2011, 09:48:50 AM »
Rich, I tried both ways :-). I figured it might be a typo, so I tried:
ide-core.nodma=0.0
ide_core.nodma=0.0
ide-core.nodma=0
ide_core.nodma=0

No joy. I'll keep pluggin.

Offline tinypoodle

  • Hero Member
  • *****
  • Posts: 3857
Re: hde: timeout waiting for DMA
« Reply #21 on: January 25, 2011, 11:10:06 AM »
Tinypoodle:
The netboot idea is kind of interesting, although I hope you can see how it would be a MAJOR hassle in many situations.

As for the bootloader issue, sorry I wasn't more specific, but I like to keep threads on track. No HDD based bootloader I've tried has worked. Even with the boot partition in fat 32 and under 256mb. The bios doesn't even appear to see them. It just hangs with a flashing cursor followed by an "invalid system disk". Is that specific enough?
Sorry, no, I can't see how a netboot could be a major hassle in many situations for you; for me it has often proven to be a major convenience, while I would have had even more choices than you appear to have with given hardware.

Yes, the issue about not being able to boot with a hdd based bootloader appears more clear now (besides from also having had a chance to look up your hardware)  :)

As you said you like to keep threads on track, feel free to open another thread about possible approaches of booting   ;)
"Software gets slower faster than hardware gets faster." Niklaus Wirth - A Plea for Lean Software (1995)

Offline jason.ritzke

  • Newbie
  • *
  • Posts: 20
Re: hde: timeout waiting for DMA
« Reply #22 on: January 25, 2011, 11:49:49 AM »
I'd have to shut down a system in order to serve netboot TC every time I wanted to reboot the server I wanted to run TC in the first place. That is the hassle.

Is there really no way to shut off DMA in this situation?

Offline danielibarnes

  • Hero Member
  • *****
  • Posts: 548
Re: hde: timeout waiting for DMA
« Reply #23 on: January 25, 2011, 02:09:33 PM »
From kernel-parameters.txt:

ide-core.nodma=   [HW] (E)IDE subsystem
         Format: =0.0 to prevent dma on hda, =0.1 hdb =1.0 hdc
         .vlb_clock .pci_clock .noflush .nohpa .noprobe .nowerr
         .cdrom .chs .ignore_cable are additional options
         See Documentation/ide/ide.txt.

Try this: "ide-core.nodma=2.0"

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11702
Re: hde: timeout waiting for DMA
« Reply #24 on: January 25, 2011, 05:31:32 PM »
Hi jason
If your CD is still trying to boot as drive A then that should have worked, however, if you
re-enabled your other drives and pushed the CD back to drive E then you will have to
use the code from danielibarnes since the code targets a specific drive. When you pass
a boot code to the kernel it makes no distinction between _ and -, either one will have
the same effect.


     [EDIT]: Struck out the last sentence, it was just plain wrong.
« Last Edit: September 12, 2011, 11:22:40 AM by Rich »

Offline maro

  • Hero Member
  • *****
  • Posts: 1228
Re: hde: timeout waiting for DMA
« Reply #25 on: January 25, 2011, 06:59:25 PM »
@jason.ritzke: Thanks for your more detailed description (in reply #19).

As it quite evident from your description that the kernel is booting up I wonder whether you have already tried to use the 'debug' boot code. This boot code overwrites the 'quiet' boot code contained in the ISOLINUX configuration on the TC CD-ROM, and would allow you to see all the kernel boot messages (and not just the "fatal" ones).

A problem might then appear in the fact that you initally dont't seem to be able to pause the screen content scrolling out of sight. In my experience one can hit 'Ctrl-s' when the kernel messages start appearing and the scrolling will stop at some stage. One could then use 'Shift-PgUp' and 'Shift-PgDn' to browse (most of) the output and continue the processing with 'Ctrl-q'.

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11702
Re: hde: timeout waiting for DMA
« Reply #26 on: January 25, 2011, 07:26:27 PM »
If you use the 'debug' boot code you can slow down the scrolling with boot-delay=n
where n is the number of milliseconds between printed lines.

Offline jason.ritzke

  • Newbie
  • *
  • Posts: 20
Re: hde: timeout waiting for DMA
« Reply #27 on: January 25, 2011, 08:08:59 PM »
++--++SOLVED++--++
Okay, the debug idea got me pointed in the right direction. Here is what I do and the responses I get.
"tinycore [any parameter other than ide-core.nodma=whateverisappropriate]" yields a timeout (of course!)
"tinycore ide-core.nodma=[whateverisappropriate]" yields a timeout
"tinycore ide-core.nodma=[whateverisappropriate] [any other parameter]" yields a proper boot for every parameter I've tested.
"tinycore [any parameter] ide-core.nodma=[whateverisappropriate]" yields a proper boot with some parameters. It fails with "xsetup" at least.

That's what I've got as of now. Now for the second part. Why? If anybody is interested, that is.

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11702
Re: hde: timeout waiting for DMA
« Reply #28 on: January 25, 2011, 08:26:47 PM »
Glad we finally made some progress. Sounds like it might be a timing problem, Xsetup
probably gets processed after the kernel finishes probing the hardware.

Offline jason.ritzke

  • Newbie
  • *
  • Posts: 20
Re: [SOLVED] hde: timeout waiting for DMA
« Reply #29 on: January 26, 2011, 01:44:36 AM »
Right but why does it need a second parameter for ide-core.nodma=0.0 to work at all?