ICH6M SATA and poor optical drive performance

Christopher J. Bottaro cjbottaro at alumni.cs.utexas.edu
Sat Dec 10 00:48:58 UTC 2005

Øyvind Stegard wrote:

> On Friday 09 December 2005 23:41, Christopher J. Bottaro wrote:
>> I have a Dell Inspiron 6000d which has a SATA hard disk and PATA optical
>> drive.  The performance for the hard disk is good, but the optical
>> drive's performance is very poor, I can't turn on DMA.
>> I used a kernel patch that got both drives working well, but it caused my
>> kernel to be unstable (random lock ups).  Here is a discussion of the
>> patch:
>> http://www.math.ucla.edu/~jimc/insp6000/p-disc.html#cd
>> I searched the web more and found a discussion on the kernel parameter
>> atapi_enabled=1, but that didn't work for me either.
>> http://comments.gmane.org/gmane.linux.kernel/351063
>> This is the kernel I'm using:
>> kernel-2.6.12-1.1381_FC3
>> Any advice, tips or hints?  Thank you.
> Yeah, use a newer kernel. I've got the same setup in my laptop (ICH6M SATA
> controller) and I've got my optical drive recognized as a SCSI device,
> with full performance. I use w/a couple of patches
> applied. Here's the patch I use to enable ATAPI in the libata-driver:
> diff -uNr linux-2.6.14-rc5/drivers/scsi/libata-core.c
> linux-2.6.14-rc5.libata_pata/drivers/scsi/libata-core.c
> --- linux-2.6.14-rc5/drivers/scsi/libata-core.c       2005-10-20
> 14:39:45.000000000 +0200
> +++ linux-2.6.14-rc5.libata_pata/drivers/scsi/libata-core.c   2005-10-20
> 14:41:52.000000000 +0200 @@ -75,7 +75,7 @@
>  static unsigned int ata_unique_id = 1;
>  static struct workqueue_struct *ata_wq;
> -int atapi_enabled = 0;
> +int atapi_enabled = 1;
>  module_param(atapi_enabled, int, 0444);
>  MODULE_PARM_DESC(atapi_enabled, "Enable discovery of ATAPI devices
>  (0=off, 1=on)");
> diff -uNr linux-2.6.14-rc5/include/linux/libata.h
> linux-2.6.14-rc5.libata_pata/include/linux/libata.h
> --- linux-2.6.14-rc5/include/linux/libata.h   2005-10-20 14:39:49.000000000
> +0200
> +++ linux-2.6.14-rc5.libata_pata/include/linux/libata.h       2005-10-20
> 14:41:38.000000000 +0200 @@ -40,7 +40,7 @@
>  #undef ATA_VERBOSE_DEBUG     /* yet more debugging output */
>  #undef ATA_IRQ_TRAP          /* define to ack screaming irqs */
>  #undef ATA_NDEBUG            /* define to disable quick runtime checks */
> -#undef ATA_ENABLE_PATA               /* define to enable PATA support in some
> +#define ATA_ENABLE_PATA              /* define to enable PATA support in some
>  * low-level drivers */
>  #undef ATAPI_ENABLE_DMADIR   /* enables ATAPI DMADIR bridge support */
> It applies nicely to I've _never_ had any lock ups with this,
> but, of course, I cannot guarantee any thing. I'd backup my data before
> playing with these things.

I've read on the web that you can enable atapi (for 2.6.14) without patching
the source by using the kernel param atapi_enabled=1 or
libata.atapi_enabled=1.  The former works for some people and the latter
works for others...still neither work for some people:

Those people in that thread are simply using the kernel param without having
to recompile the kernel with this part of your patch:

Maybe that's why it doesn't work for some people...?

One last thing, I've had bad luck compiling vanilla kernels from kernel.org
in the past.  They compiled and booted fine, but my system was extremely
sluggish while running them.  Since then, I've only been compiling what
Redhat makes available to in via the kernel-{version}.src.rpm
packages...and a 2.6.14 kernel src rpm package isn't available for FC3 yet. 
Any tips on getting a vanilla kernel running up to speed?

> Øyvind

Thanks for the reply and help,
-- Christopher

P.S.  My machine is a Dell Inspiron 6000d laptop if it matters.

More information about the fedora-list mailing list