LINUX.ORG.RU

Как отключить DMA при загрузки


0

0

Мать на nForce4 Ultra конфликтует с CDROM-ом Sony-Q30a. Проблема заключаеться в следующем: если включен DMA то CDROM не работает ни в Linux ни Windows. Windows проблема решается просто, отключаем DMA из диспечера устройст, в Linux приходиться каждый раз выполнять команду hdparm -d 0 /dev/hdc,после загрузки, но если во время загрузки в CDROM есть диск то все зависает. Как отключить DMA для CDROM на начально этапе загрузки. Копался в документации GRUB ничего особо не понял. Объясните на пальцах пожалуйста.

P.S Можно в BIOS отключить DMA, но для Linux это проблемы не решает видать потому, что он работает напрямую с устройствами. Не хотелось бы пересобирать ядро чтобы отключить эту функцию.


ну так запихни /sbin/hdparm -d 0 /dev/hdc в rc.local или rc.sysinit. А вообще попробуй сидиром подключить на другой канал, вообще пошамань немного =) А ядро с "enable DMA only for disks" - почему не пересобрать?

WerNA ★★★★★
()
Ответ на: комментарий от WerNA

А куда именно надо вписать в rc.local rc.sysinit. Прошлый раз я так сделал вписал в начало файла rc.sysinit система перестла грузится, что-то там про XDM паник и ВСЕ. Не хотелось бы опять такого. Пересобрать ядро с enable DMA only for disks тоже вариант но хотелось бы как-то через GRUB сделать или ещё какой-нибудь вариант без пересборки ядра.

ss777
() автор топика
Ответ на: комментарий от ss777

Из-за ошибок в rc.local система не может упаст при загрузке --- вот например мой:

#!/bin/sh
#
# /etc/rc.d/rc.local:  Local system initialization script.
#
# Put any local setup commands in here:
alsactl restore
modprobe apm

Просто дописываешь в последнюю строчку и все.

Unforgiven
()
Ответ на: комментарий от WerNA

Сейчас во многих дистрибутивах для конфигурирования hdparm уже в /etc есть свои *.conf файлы. В rc.sysinit лучше не править.

А вообще-то отключить при загрузке DMA можно через параметры ядра: ideN=nodma, где N=0, 1,.. . Это дело можно прописать в lilo.conf.

Zubok ★★★★★
()

Да, лучше уточню. Значение nodma можно указывать непосредственно per drive. То есть, например, hdc=nodma. Если использовать ideN, то отрубится DMA и для master, и для slave, насколько я понимаю.

Zubok ★★★★★
()
Ответ на: комментарий от ss777

У меня LILO стоял всегда, поэтому не знаю. Но незатейливый гугл выдал мне такое (я точно не знаю, как у тебя там написано, но для примера возьмем закгрузку мифического ядра 2.4.25 и диск hdc):

Правишь /etc/grub.conf:

kernel /boot/vmlinuz-2.4.25 hdc=nodma 
                            ^^^^^^^^^

Если тут есть специалисты по GRUB, поправьте.

Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.