I have placed the following in my /boot/grub/menu.lst:
kernel /boot/vmlinuz-2.6.18-4-686 ide=nodma root=/dev/hda1 ro
But I still get the following DMA errors during the bootup sequence:
Probing IDE interface ide0...
hda: KINGSTON, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: max request size: 128KiB
hda: 4061232 sectors (2079 MB) w/1KiB Cache, CHS=4029/16/63, DMA
hda:<4>hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hda1 hda2 <<4>hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hda5 >
hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hda: dma_timer_expiry: dma status == 0x21
hda: DMA timeout error
hda: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
Attempting manual resume
And then the bootup continues OK. Is there anyway to avoid this at bootup? Will this cause any problems?
Thanks!
I have also tried turning DMA off in GRUB, but it seems as though later on in the bootup sequence, Debian probes the drives again and tries to enable DMA on the CF drive.
I'll post something if I find an answer.
I have a SATA-CF adaptor and I think that I will be buying a CF card (Sandisk) that supports DMA...
--
To UNSUBSCRIBE, email to debian-us...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
The only thing I'm doing different with my Etch based card is that I'm using a kernel wit in initrd enabled. I'll try without to see if that helps.
CONFIG_IDEDMA_PCI_AUTO: │
│ │
│ Prior to kernel version 2.1.112, Linux used to automatically use │
│ DMA for IDE drives and chipsets which support it. Due to concerns │
│ about a couple of cases where buggy hardware may have caused damage, │
│ the default is now to NOT use DMA automatically. To revert to the │
│ previous behaviour, say Y to this question. │
│ │
│ If you suspect your hardware is at all flaky, say N here. │
│ Do NOT email the IDE kernel people regarding this issue! │
│ │
│ It is normally safe to answer Y to this question unless your │
│ motherboard uses a VIA VP2 chipset, in which case you should say N. │
│ │
│ Symbol: IDEDMA_PCI_AUTO [=n] │
│ Prompt: Use PCI DMA by default when available │
│ Defined at drivers/ide/Kconfig:426 │
│ Depends on: IDE && BLK_DEV_IDE && BLK_DEV_IDEDMA_PCI │
│ Location: │
│ -> Device Drivers │
│ -> ATA/ATAPI/MFM/RLL support │
│ -> ATA/ATAPI/MFM/RLL support (IDE [=y]) │
│ -> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (BLK_DEV_IDE [=m]) │
│ -> PCI IDE chipset support (BLK_DEV_IDEPCI [=y]) │
│ -> Generic PCI bus-master DMA support (BLK_DEV_IDEDMA_PCI [=y])
Once I installed my custom kernel, the system booted quickly without IDE DMA timeouts. I don't even think I need to pass the [i]ide=nodma[/i] option anymore.
By the way, I recommend installing 'kernel-package' which installs the make-kpg tool. It creates a proper custom .deb package file you can use to install the kernel painlessly on the target system. Roughly the steps were:
1) apt-get install kernel-package libncurses5-dev fakeroot
2) apt-get install linux-source-2.6
3) tar jtvf /usr/src/linux-source-2-6-18-4 build_dir
4) cd build_dir/linux-source-2.6.18.
5) make-kpgg --rootcmd fakeroot --config menu kernel-image
6) Browse the menuconfig interface, toggle the CONFIG_IDEDMA_PCI_AUTO setting.
7) make some tea.
Assuming the build went well, the resulting .deb file should be in the parent directory.
8) Copy the linux-image-2.6.18custom10.deb file to the target system.
9) Install on the target system dpkg -i linux-image-2.6.18custom10.deb.
10) reboot.
-Geoff
Thanks for the info. I switched to another Intel-based motherboard and another CF card reader (due to other VIA-related hard-lockup problems) and am now using an IDE CF-card reader with a Seagate Microdrive which is built-into the board. I'm running Debian Etch (4.0) on that server.
The Microdrive seems to support DMA, but after a few days of uptime, one of the DMA timers fails and the drive resets itself and resets as read-only: