[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

solved?: grub ide=nodma not working with CF card - boot delay




I think I solved the ide=nodma not being recognized problem  by compiling and installing  a custom kernel.  I turned [b]off[/b] the option [b]CONFIG_IDEDMA_PCI_AUTO[/b] in the .config file.  This option is set to "Y" in the standard Debian 4.0 kernel.  From 'menuconfig' help for this option:


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



Reply to: