libata detects cdrom but does not attach device
I have an IBM Thinkpad Z60m notebook with Slackware installed and a freshly compiled 2.6.17.4 kernel.
libata detects both my sata hard drive and the cdrom/dvd, but only attaches a device to the hard drive (ignoring the cdrom), as shown in the following excerpt from dmesg: Code:
libata version 1.20 loaded. I must use libata for both the sata hard drive and the cdrom/dvd drive because dma will not work otherwise (a necessity for playing dvds). The cdrom/dvd drive does work with the generic ide driver, but dma cannot be enabled, and thus DVDs cannot be reasonably played because of the slow transfer rates. I've run out of ideas, and I can't find any information regarding this problem in the kernel docs or through google... Thanks in advance for any suggestions. |
solved
Okay. After a bit of hacking around with the kernel settings I found an (obvious) oversight: SCSI cdrom support was set to be compiled as a module. Since this module resides on the hard disk, which obviously would not be mounted before the cdrom is detected, the module never loaded and the cdrom drive was never attached to a device.
SOLUTION: Set CONFIG_SCSI_DEV_SR to be built-in. I also #define'ed the ATA_ENABLE_PATA line in include/linux/libata.h, though I believe the main problem was simply a configuration oversight. Hopefully this will help anyone else who has a similarly absentmindedly-configured kernel. - Zhang MaiKe |
All times are GMT -5. The time now is 06:31 AM. |