On Wed, Aug 19, 2009 at 05:33:22PM +0300, Olexander Chernetskyy wrote: > > On Sun, Aug 16, 2009 at 05:47:23PM +0300, Olexander Chernetskyy wrote: [...] > >> # grep -i cable /var/log/dmesg > >> [ 2.487614] ata2.01: limited to UDMA/33 due to 40-wire cable [...] > Мать = EliteGroup PF4 Extrime Edition, чипсет i915. > К этому кабелю не подключено больше ничего. > Из дисковых устройств еще имеются SATA HDD Seagate Baracuda 250GB > (/dev/sda) и SATA DVD-RW Sony-NEC-Optiarc. (/dev/sr0 кажись) > > >Если там один этот диск как slave, это неправильно. > Да, так и есть (т.е. было)- устройство одно на шлейфе и slave. Раньше там > был мастер, который я отключил за ненедобностью. > Поставил джампер в положение "Master or single drive" - ничего не > изменилось. Ну кроме того, что имя стало /dev/hda. Значит, поменялось что-то ещё - первое сообщение было явно от libata (драйвер ata_piix), а теперь стал использоваться драйвер IDE. Либо пересобирался initrd, либо не все опции BIOS были возвращены в первоначальное значение. С другой стороны, одинаковое поведение разных драйверов (а также существенно более свежего ядра из openSUSE 11.2 M5) даёт ещё больше оснований считать, что проблема связана именно с этим железом, а не с ошибками в драйверах. Кроме того, при использовании драйверов IDE (если проблемный диск - /dev/hda), module-init-tools >= 3.4 и ядра 2.6.25 можно попробовать загрузку с добавлением параметра: ide.options=ide0=ata66 (будет ругань "OBSOLETE OPTION", но другого варианта в той версии ядра на самом деле нет). Для ядра 2.6.27 (и более свежих версий) нужен уже другой параметр: ide.ignore_cable=0 В случае использования драйверов libata параметр следующий: libata.force=2:80c ("2" соответствует номеру в сообщении вида "ata2.01: limited to UDMA/33 due to 40-wire cable"). > > Ещё покажите полностью вывод hdparm -I для этого диска. > # hdparm -I /dev/hda > /dev/hda: > ATA device, with non-removable media > Model Number: ST360021A > Serial Number: 3HR0Y8SV > Firmware Revision: 3.19 > Standards: > Supported: 5 4 3 > Likely used: 6 > Configuration: > Logical max current > cylinders 16383 16383 > heads 16 16 > sectors/track 63 63 > -- > CHS current addressable sectors: 16514064 > LBA user addressable sectors: 117231408 > device size with M = 1024*1024: 57241 MBytes > device size with M = 1000*1000: 60022 MBytes (60 GB) > Capabilities: > LBA, IORDY(can be disabled) > bytes avail on r/w long: 4 > Standby timer values: spec'd by Standard > R/W multiple sector transfer: Max = 16 Current = 16 > Recommended acoustic management value: 128, current value: 254 > DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2 udma3 udma4 udma5 > Cycle time: min=120ns recommended=120ns > PIO: pio0 pio1 pio2 pio3 pio4 > Cycle time: no flow control=240ns IORDY flow control=120ns > Commands/features: > Enabled Supported: > * SMART feature set > Security Mode feature set > * Power Management feature set > * Write cache > * Look-ahead > * Host Protected Area feature set > * WRITE_BUFFER command > * READ_BUFFER command > * DOWNLOAD_MICROCODE > SET_MAX security extension > * Automatic Acoustic Management feature set > Device Configuration Overlay feature set > Security: > Master password revision code = 65534 > supported > not enabled > not locked > not frozen > not expired: security count > not supported: enhanced erase > HW reset results: > CBLID- above Vih С точки зрения устройства тут всё правильно - распознаётся 80-жильный кабель. Тогда возможны следующие варианты: 1) Плохой кабель (сигнал CBLID- в разъёме, подключенном к материнской плате, не заземлён, как это должно быть для правильного распознавания типа кабеля). Либо перепутаны разъёмы кабеля (хотя тогда в выводе hdparm -I состояние CBLID- должно было быть другим). 2) Не работает цепь распознавания типа кабеля на материнке (а BIOS не выполняет распознавание) - либо что-то погорело, либо вообще не реализовано с целью копеечной экономии. 3) BIOS портит регистр IOCFG контроллера (например, что-то типа описанного в http://bugzilla.kernel.org/show_bug.cgi?id=11879 - хотя в проверявшемся ядре из openSUSE 11.2 M5 именно эта ошибка должна быть исправлена, возможно, что-то подобное возникает в других ситуациях) > Device num = 1 > Checksum: correct > [root@archer ~]# > ---8<--- > > Решил поиграться с параметрами БИОС. Увлекательнейшее занятие, должен я > вам сказать. А уж какие непредсказуемые результаты получаются... Ну просто > "вместо хвоста нога, а на ноге рога" :-) > > Смотрю есть параметр "On-Chip Serial ATA"=Enhanced. А ну-ка поставлю =AUTO. > На кабель не жалуется. Все диски с точки зрения системы стали /dev/hdX. > hdparm -i говорит: UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 > Вроде-бы всё нормально. НО! > # hdparm -t /dev/hdc > /dev/hdc: > Timing buffered disk reads: 8 MB in 3.45 seconds = 2.32 MB/sec > Во как! Очевидно, режим контроллера поменялся на эмуляцию IDE, а модуля piix в initrd не оказалось, в результате был загружен драйвер ide-generic без поддержки DMA. > От следующего открытия я вообще офонарел. Перестали монтироваться флешки с > файловой системой NTFS. Говорит "только рут может это сделать". Вернул > "On-Chip Serial ATA"=Enhanced флешки снова начали монтироваться. Чудеса да > и только! Действительно странное явление...