[Comm] Режим винчестера UDMA2. Непонятно почему.
Sergey Vlasov
vsu на altlinux.ru
Ср Авг 19 22:26:27 MSD 2009
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 флешки снова начали монтироваться. Чудеса да
> и только!
Действительно странное явление...
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 197 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/community/attachments/20090819/746d2377/attachment-0001.bin>
Подробная информация о списке рассылки community