Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A (Безобразно работет в линуксе. В оффтопике - нет проблем.)

IDE, SATA, SCSI, внешние USB-HDD, SSD, USB-Flash накопители

Модератор: Модераторы разделов

Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник

Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение sirocco »

Вкратце, ситуация такая - в винде привод читает диски, в линуксе не читает. Винда ставит mwdma2, линукс сначала udma66, потом иногда снижает до 44, большинство файлов с тех же самых болванок не читаются. Через hdparm отключить udma не удаётся. Что пробовалось: UDMA enabled/disabled in BIOS, firmware 1.01 -> 1.05.
И в винде, и в линуксе всё остаётся по-прежнему.
Что пока не пробовалось (последняя надежда) - заменить шлейф udma33 на udma66. Но винда ведь и так работает...

Похожие темы:
SLED10: не удается включить DMA для DVDRW
Решено: CD/DVD и FC6

Далее куски логов.

Код: Выделить всё

$ uname -a
Linux cehost 2.6.24-ARCH #1 SMP PREEMPT Sun Mar 30 11:40:06 CEST 2008 i686 Celeron (Coppermine) GenuineIntel GNU/Linux


Кусок dmesg

Код: Выделить всё

ata2: PATA max UDMA/66 cmd 0x170 ctl 0x376 bmdma 0xd008 irq 15
ata1.00: ATA-7: ST3160812A, 3.AAJ, max UDMA/100
ata1.00: 312581808 sectors, multi 16: LBA48
ata1.00: configured for UDMA/66
ata2.00: ATAPI: Optiarc DVD RW AD-5200A, 1.01, max UDMA/66
ata2.00: configured for UDMA/66
scsi 0:0:0:0: Direct-Access     ATA      ST3160812A       3.AA PQ: 0 ANSI: 5
scsi 1:0:0:0: CD-ROM            Optiarc  DVD RW AD-5200A  1.01 PQ: 0 ANSI: 5
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
sd 0:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB)
sd 0:0:0:0: [sda] Write Protect is off


Код: Выделить всё

 dmesg | grep -i via
ACPI: RSDP 000F6760, 0014 (r0 VIA692)
ACPI: RSDT 0FFF3000, 0028 (r1 VIA692 AWRDACPI 42302E31 AWRD        0)
ACPI: FACP 0FFF3040, 0074 (r1 VIA692 AWRDACPI 42302E31 AWRD        0)
ACPI: DSDT 0FFF30C0, 2082 (r1 VIA692 AWRDACPI     1000 MSFT  100000C)
PCI: VIA PCI bridge detected. Disabling DAC.
PCI: Disabling Via external APIC routing
pata_via 0000:00:07.1: version 0.3.3
scsi0 : pata_via
scsi1 : pata_via
parport_pc: VIA 686A/8231 detected
parport_pc: VIA parallel port: io=0x378, irq=7
agpgart: Detected VIA Apollo Pro 133 chipset
PCI: VIA VLink IRQ fixup for 0000:00:07.2, from 9 to 11
PCI: VIA VLink IRQ fixup for 0000:00:07.3, from 9 to 11



Код: Выделить всё

$ dmesg | grep -i dma
  DMA             0 ->     4096
  DMA zone: 32 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 4064 pages, LIFO batch:0
ata1: PATA max UDMA/66 cmd 0x1f0 ctl 0x3f6 bmdma 0xd000 irq 14
ata2: PATA max UDMA/66 cmd 0x170 ctl 0x376 bmdma 0xd008 irq 15
ata1.00: ATA-7: ST3160812A, 3.AAJ, max UDMA/100
ata1.00: configured for UDMA/66
ata2.00: ATAPI: Optiarc DVD RW AD-5200A, 1.01, max UDMA/66
ata2.00: configured for UDMA/66
[ab_arch@cehost ~]$ hdparm -i /dev/sr0

/dev/sr0:

 Model=Optiarc DVD RW AD-5200A                 , FwRev=1.01    , SerialNo=
 Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=0kB, MaxMultSect=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 IORDY=yes, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 *udma4
 AdvancedPM=no

 * signifies the current active mode


Код: Выделить всё

# hdparm -I /dev/sr0

/dev/sr0:

ATAPI CD-ROM, with removable media
    Model Number:       Optiarc DVD RW AD-5200A
    Firmware Revision:  1.01
Standards:
    Likely used CD-ROM ATAPI-1
Configuration:
    DRQ response: 50us.
    Packet size: 12 bytes
Capabilities:
    LBA, IORDY(cannot be disabled)
    DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 *udma3 udma4
         Cycle time: min=120ns recommended=120ns
    PIO: pio0 pio1 pio2 pio3 pio4
         Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
    Enabled    Supported:
            Power Management feature set
            PACKET command feature set
            DEVICE_RESET command
            NOP cmd
HW reset results:
    CBLID- above Vih
    Device num = 0
[root@cehost ~]# hdparm -X mdma2 /dev/sr0

/dev/sr0:
 setting xfermode to 34 (multiword DMA mode2)
SG_IO: bad/missing ATA_16 sense data::  70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 HDIO_DRIVE_CMD(setxfermode) failed: Input/output error


Код: Выделить всё

ata2: port is slow to respond, please be patient (Status 0xd1)
ata2: device not ready (errno=-16), forcing hardreset
ata2: soft resetting link
ata2.00: configured for UDMA/66
ata2: EH complete
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
ata2.00: cmd a0/01:00:00:00:fc/00:00:00:00:00/a0 tag 0 dma 129024 in
         cdb 28 00 00 10 0e 61 00 00  3f 00 00 00 00 00 00 00
         res 40/00:03:00:00:08/00:00:00:00:00/a0 Emask 0x4 (timeout)
ata2.00: status: { DRDY }
ata2: port is slow to respond, please be patient (Status 0xd1)
ata2: device not ready (errno=-16), forcing hardreset
ata2: soft resetting link
ata2.00: configured for UDMA/66
ata2: EH complete
ata2.00: limiting speed to UDMA/44:PIO4
ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
ata2.00: cmd a0/01:00:00:00:fc/00:00:00:00:00/a0 tag 0 dma 129024 in
         cdb 28 00 00 10 0e 61 00 00  3f 00 00 00 00 00 00 00
         res 40/00:03:00:00:08/00:00:00:00:00/a0 Emask 0x4 (timeout)
ata2.00: status: { DRDY }
ata2: port is slow to respond, please be patient (Status 0xd1)
ata2: device not ready (errno=-16), forcing hardreset
ata2: soft resetting link
ata2.00: configured for UDMA/44
sr 1:0:0:0: [sr0] Result: hostbyte=0x00 driverbyte=0x08
sr 1:0:0:0: [sr0] Sense Key : 0xb [current] [descriptor]
Descriptor sense data with sense descriptors (in hex):
        72 0b 00 00 00 00 00 0e 09 0c 00 00 00 03 00 00
        00 00 00 08 a0 40
sr 1:0:0:0: [sr0] ASC=0x0 ASCQ=0x0
end_request: I/O error, dev sr0, sector 4209028
printk: 56 messages suppressed.
Buffer I/O error on device sr0, logical block 1052257
Buffer I/O error on device sr0, logical block 1052258
Buffer I/O error on device sr0, logical block 1052259
Buffer I/O error on device sr0, logical block 1052260
Buffer I/O error on device sr0, logical block 1052261
Buffer I/O error on device sr0, logical block 1052262
Buffer I/O error on device sr0, logical block 1052263
Buffer I/O error on device sr0, logical block 1052264
Buffer I/O error on device sr0, logical block 1052265
Buffer I/O error on device sr0, logical block 1052266
ata2: EH complete
Спасибо сказали:
german
Сообщения: 79
ОС: Linux

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение german »

sirocco писал(а):
25.05.2008 18:28
Вкратце, ситуация такая - в винде привод читает диски, в линуксе не читает. Винда ставит mwdma2, линукс сначала udma66, потом иногда снижает до 44, большинство файлов с тех же самых болванок не читаются. Через hdparm отключить udma не удаётся. Что пробовалось: UDMA enabled/disabled in BIOS, firmware 1.01 -> 1.05.
И в винде, и в линуксе всё остаётся по-прежнему.
Что пока не пробовалось (последняя надежда) - заменить шлейф udma33 на udma66. Но винда ведь и так работает...


Еще можно поробовать обновление BIOS материнской платы до последней версии.

То что в мастдае работает, а в Linux - нет, только подтверждает тот факт, что некоторые производители оборудования проверяют корректность работы железа не по спецификациям тех или иных стандартов, а по тому - работает ли оно в мастдае.
Если работает, то они считают, что все ОК. Однако, при этом, если оно работает скажем в XP, то это совсем не означает, что так же будет и в Vista и т. д. Мне, например, встречались матплаты производства MSI, на которых нормально работала только Millenium, а W2k уже нет.
Спасибо сказали:
Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение sirocco »

german писал(а):
25.05.2008 22:20
Еще можно поробовать обновление BIOS материнской платы до последней версии.


Плата LS 6V693, биос F3 -- как я понимаю, обновлений можно не ждать.
А по поводу всяких спецификаций -- так внесли изменения в код eject (hdparm) из speedcontrol?
как снизить скорость оборотов DVD?
А конкретней о "быстром и грязном решении".
Спасибо сказали:
german
Сообщения: 79
ОС: Linux

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение german »

sirocco писал(а):
26.05.2008 07:16
Плата LS 6V693, биос F3 -- как я понимаю, обновлений можно не ждать.


LS - это часом не "Lucky Star" ?
Если так, то это из того же скорбного списка, что и MSI. От этих ребят добра не жди.
Спасибо сказали:
Аватара пользователя
Олег777
Сообщения: 238
Статус: зануда
ОС: Чё?

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение Олег777 »

Господа, извините нуба, что вмешиваюсь в вашу ученую беседу. Но мне кажется что мои проблемы имеют теже корни.
cdrom: This disc doesn't have any tracks I recognize!

это мне Сдюшник пишет, в dmesg когда пытаюсь работать с болванкой двд. а так читает, стирает, писать отказывается. В маздае все ок
root[saturn]# hdparm -I /dev/sr0
/dev/sr0:
ATAPI CD-ROM, with removable media
Model Number: _NEC DVD_RW ND-4571A
Serial Number:
Firmware Revision: 1-01
Standards:
Likely used CD-ROM ATAPI-1
Configuration:
DRQ response: 3ms.
Packet size: 12 bytes
Capabilities:
LBA, IORDY(cannot be disabled)
DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns

root[saturn]# uname -a
Linux zenwalk 2.6.24.2 #1 SMP PREEMPT Mon Feb 18 21:24:35 CET 2008 i686 Intel® Pentium® 4 CPU 2.60GHz GenuineIntel GNU/Linux

Я прав, или что неправильно делаю?
Спички - детям!
Спасибо сказали:
Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение sirocco »

german писал(а):
26.05.2008 21:44
LS - это часом не "Lucky Star" ?

Конечно. Думается, что MSI немного лучше. Ведь до сих пор живёт (сама фирма).

Олег777 писал(а):
27.05.2008 10:09
cdrom: This disc doesn't have any tracks I recognize!

это мне Сдюшник пишет, в dmesg когда пытаюсь работать с болванкой двд. а так читает, стирает, писать отказывается. В маздае все ок

Не понял, что читает и стирает - DVD (и CD) или только CD?
Чем пытаетесь писать?
Некоторые http://imgburn.com/ в WINE используют.
Спасибо сказали:
Аватара пользователя
Олег777
Сообщения: 238
Статус: зануда
ОС: Чё?

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение Олег777 »

CD работает без проблем, а вот DVD стирает, открывает, проигрывает, но не записывает. Вернее, все же записывает, но только iso, c помощью Brasero, а вот попытка создать CD\DVD Date project заканчивается подобной ошибкой. Попытка примонтировать blank DVD та же ошибка.
Спички - детям!
Спасибо сказали:
Аватара пользователя
sirocco
Сообщения: 782
Статус: Задвинутый соучастник

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение sirocco »

Да, это у меня оказывается со всеми контроллерами. Надо разбираться с модулями, по-видимому.

Код:

[root@cehost ~]# hdparm /dev/sda /dev/sda: IO_support = 0 (default) 16-bit) HDIO_GET_UNMASKINTR failed: Inappropriate ioctl for device HDIO_GET_DMA failed: Inappropriate ioctl for device HDIO_GET_KEEPSETTINGS failed: Inappropriate ioctl for device readonly = 0 (off) readahead = 256 (on) geometry = 19457/255/63, sectors = 312581808, start = 0 [root@cehost ~]# hdparm /dev/sr0 /dev/sr0: IO_support = 0 (default) 16-bit) HDIO_GET_UNMASKINTR failed: Inappropriate ioctl for device HDIO_GET_DMA failed: Inappropriate ioctl for device HDIO_GET_KEEPSETTINGS failed: Inappropriate ioctl for device readonly = 0 (off) readahead = 256 (on) HDIO_GETGEO failed: Inappropriate ioctl for device [root@cehost ~]# hdparm -d /dev/sr0 /dev/sr0: HDIO_GET_DMA failed: Inappropriate ioctl for device [root@cehost ~]# hdparm -d /dev/sda /dev/sda: HDIO_GET_DMA failed: Inappropriate ioctl for device [root@cehost ~]# hdparm -i /dev/sda /dev/sda: Model=ST3160812A , FwRev=3.AAJ , SerialNo= 5LS59KCQ Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=?16? CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 *udma4 udma5 AdvancedPM=no WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7 * signifies the current active mode [root@cehost ~]# hdparm -I /dev/sda /dev/sda: ATA device, with non-removable media Model Number: ST3160812A Serial Number: 5LS59KCQ Firmware Revision: 3.AAJ Standards: Supported: 7 6 5 4 Likely used: 7 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 268435455 LBA48 user addressable sectors: 312581808 device size with M = 1024*1024: 152627 MBytes device size with M = 1000*1000: 160041 MBytes (160 GB) Capabilities: LBA, IORDY(can be disabled) Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Recommended acoustic management value: 208, current value: 0 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 * 48-bit Address feature set * Device Configuration Overlay feature set * Mandatory FLUSH_CACHE * FLUSH_CACHE_EXT * SMART error logging * SMART self-test * General Purpose Logging 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 Device num = 0 determined by the jumper Checksum: correct


P.S. uname -a в первом посте был с другой машины, теперь правильно.
P.P.S. HDIO_GET_DMA failed: Inappropriate ioctl for device -- так и задумано, оказывается. http://bbs.archlinux.org/viewtopic.php?id=29234
http://bbs.archlinux.org/viewtopic.php?id=47041
Но как всё же понизить режим?
These HDIO_GET errors are due to the changes made to the kernel *ATA drivers a while back. They define what DMA this SATA device (even thou it might not be a SATA device) uses.

It's nothing that acctually will affect you unless your planing on downgrading your UDMA speeds.


P.P.P.S. Что-то нарыл. http://www.kernel.org/doc/Documentation/ke...-parameters.txt

Код:

libata.dma= [LIBATA] DMA control libata.dma=0 Disable all PATA and SATA DMA libata.dma=1 PATA and SATA Disk DMA only libata.dma=2 ATAPI (CDROM) DMA only libata.dma=4 Compact Flash DMA only Combinations also work, so libata.dma=3 enables DMA for disks and CDROMs, but not CFs. libata.noacpi [LIBATA] Disables use of ACPI in libata suspend/resume when set. Format: <int> libata.force= [LIBATA] Force configurations. The format is comma separated list of "[ID:]VAL" where ID is PORT[:DEVICE]. PORT and DEVICE are decimal numbers matching port, link or device. Basically, it matches the ATA ID string printed on console by libata. If the whole ID part is omitted, the last PORT and DEVICE values are used. If ID hasn't been specified yet, the configuration applies to all ports, links and devices. If only DEVICE is omitted, the parameter applies to the port and all links and devices behind it. DEVICE number of 0 either selects the first device or the first fan-out link behind PMP device. It does not select the host link. DEVICE number of 15 selects the host link and device attached to it. The VAL specifies the configuration to force. As long as there's no ambiguity shortcut notation is allowed. For example, both 1.5 and 1.5G would work for 1.5Gbps. The following configurations can be forced. * Cable type: 40c, 80c, short40c, unk, ign or sata. Any ID with matching PORT is used. * SATA link speed limit: 1.5Gbps or 3.0Gbps. * Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7]. udma[/][16,25,33,44,66,100,133] notation is also allowed. * [no]ncq: Turn on or off NCQ. If there are multiple matching configurations changing the same attribute, the last one is used.

Надеюсь на днях попробовать (комп не совсем под рукой).

Олег777 писал(а):
27.05.2008 15:46
а вот попытка создать CD\DVD Date project заканчивается подобной ошибкой.

Может не хватает места? Странно...
Спасибо сказали:
german
Сообщения: 79
ОС: Linux

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение german »

sirocco писал(а):
27.05.2008 18:26
Да, это у меня оказывается со всеми контроллерами. Надо разбираться с модулями, по-видимому.

P.P.S. HDIO_GET_DMA failed: Inappropriate ioctl for device -- так и задумано, оказывается.


Последнее означает, что запрос по поводу DMA драйвер считает неуместным для данного устройства, как будто у него вообще не может быть такого понятия как DMA. В то же время мы знаем, что это не так.

Отсюда вывод: ядро не хочет нормально работать с контроллерами. Последние же "сидят" в чипсете. Не знаю будет ли так на всех матерях с таким чипсетом или только на этой, но практически решить эту проблему, по-моему, можно только тремя способами:

1. Посмотреть какие опции есть у модуля ядра и поэскпериментировать с ними. (шансов немного)
2. Поискать может патчи ядра есть на эту тему (тоже мизер)
3. Поменять-таки матплату на более приличную (решит вопрос однозначно за невеликие деньги).
Спасибо сказали:
german
Сообщения: 79
ОС: Linux

Re: Как отключить UDMA для DVD-RW (PATA) Optiarc AD-5200A

Сообщение german »

Олег777 писал(а):
27.05.2008 15:46
CD работает без проблем, а вот DVD стирает, открывает, проигрывает, но не записывает. Вернее, все же записывает, но только iso, c помощью Brasero, а вот попытка создать CD\DVD Date project заканчивается подобной ошибкой. Попытка примонтировать blank DVD та же ошибка.


Дык раз привод пишет ISO - значит ОН ПИШЕТ. Больше от него ничего не требуется.

Что касается создания образов, то привод здесь вообще не при чем. Создание образов и запись образов - это две различные задачи, не имеющие друг к другу прямого отношения. Образы можно создавать "на ходу" передавая их на ввод команды записи, а можно записывать в файлы. В последнем случае можно не иметь никакого привода вообще, а запись вести на другой машине и в другое время.

На это есть команда mkisofs из пакета cdrtools. В отличие от cdrecord из того же пакета, который собственно и должен писать и который весьма капризен, на mkisofs никаких нареканий нет.

Похоже Вы пользуетесь какой-то GUI-шной оболочкой - так это ее глюки. А привод Ваш в порядке.
Спасибо сказали: