Mythbuntu. Не работает DMA на DVD

Продолжая играться с MythBuntu, решил я посмотреть честно купленые DVD на нем.

И наступил на грабли. Оказалось, что изображение  дергается как паралитик. Расследование показало, что во время обращения к сидюку иди дивиди система вообще в некотором смысле встает раком. «Ага», сказали суровые сибирские мужики и грязно выругались: режим DMA на DVD не включен! Дальше, по канонам народного творчества, в ход пошел  лом:

hdparm -d1 /dev/scd0

Японская пила hdparm в ответ обложил вообще трехэтажно.

HDIO_SET_DMA failed: Operation not permitted

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

Ядро 2.6.24 или похожей версии. Intel чипсет. Подключен SATA жесткий диск и оптический IDE привод (я не видел ни одного описания подобной проблемы с SATA приводами). Кстати, если есть второй винчестер и он тоже IDE, то с ним будет та же проблема. При этом на приводах, подключенных к порту IDE, DMA не включается. Кстати, самый простой способ проконтролировать это — вызвать dmesg

> dmesg  | grep ata
[   50.024346] libata version 3.00 loaded.
[   50.026415] ata_piix 0000:00:1f.1: version 2.12
[   50.026536] scsi0 : ata_piix
[   50.026616] scsi1 : ata_piix
[   50.026759] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x34e0 irq 14
[   50.026761] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x34e8 irq 15
[   50.344409] ata1.00: ATAPI: HL-DT-ST RW/DVD GCC-4481B, 1.19, max UDMA/44
[   50.515911] ata1.00: configured for PIO4
[   50.682036] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]

Дело в том, что в такой конфигурации IDE/SATA контроллеры может работать в комбинированном режиме, когда операционная система видит их как один контроллер. Модуль ядра libata по умолчанию не выставляет режим DMA на IDE портах, но после того, как он загрузился, никто другой уже не сможет выставить DMA, так как и SATA и IDE порты переходят под управление libata.

Решений проблем было предложено несколько. По идее, если BIOS позволяет, можно отключить комбинированный режим IDE/SATA и затем заняться шаманством с загрузкой старого модуля ide отдельно для CD/DVD. В моем случае такой опции BIOS не предоставляет. Другие решение включают в себя отключение libata, перекомпиляцию ядер и прочие негуманные методы. Совершенно случайно я набрел на FAQ, которое подсказало наименее кровавое решение проблемы. Вот оно:

> echo options libata atapi_enabled=1>/etc/modprobe.d/atapienable
> update-initramfs -u

После этого на всякий случай нужнов парамерты загрузки ядра (man grub) добавить

 combined_mode=libata

И перезагрузиться.

После перезагрузки вывод dmesg выглядел гораздо приятнее глазу

[   50.024346] libata version 3.00 loaded.
[   50.026415] ata_piix 0000:00:1f.1: version 2.12
[   50.026536] scsi0 : ata_piix
[   50.026616] scsi1 : ata_piix
[   50.026759] ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x34e0 irq 14
[   50.026761] ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x34e8 irq 15
[   50.344409] ata1.00: ATAPI: HL-DT-ST RW/DVD GCC-4481B, 1.19, max UDMA/44
[   50.515911] ata1.00: configured for UDMA/44
[   50.682036] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]

И DVD заиграл как положено.

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

0 посетителей онлайн
0 гостей, 0 bots, 0 зарегистрированных