• お問い合わせ
  • ユーザー登録
ドキュメント
サポート案内
ユーザー登録
サポートセンター
ドキュメント
ダウンロード
セキュリティ
よくある質問とその回答
製品マニュアル
カタログ
収録パッケージ一覧


ハードウェアとドライバ No. 461

DMA転送の有効/無効を切り替える


【解説】

Direct Memory Access (DMA) とは、CPUを介さずに入出力装置とメモリ間でデータを
直接やりとりする方式のことをいいます。ATAPI接続のDVDドライブを使用した動画再生
など、大量のデータ転送が要求される場合に威力を発揮します。
しかしながら、一部のデバイスにおいてDMAを有効にした場合にマウントできないなどの
問題が発生する場合があります。その場合は、DMA の設定を無効にすることにより
回避することができます。

【設定】

A.atapidmaを使用する方法

atapidmaパッケージには、CD-ROMデバイスのDMA設定を自動的に行うためのプログラムが
収録されています。atapidmaサービスを有効にした場合、起動時に接続されていたデバ
イスのDMA設定が有効になります。

- CD-ROMデバイスのDMA転送を有効にする
# service atapidma start

- CD-ROMデバイスのDMA転送を無効にする
# service atapidma stop

B. hdparmコマンドを使用する方法

rootユーザはhdparmコマンドを使用することにより設定が可能です。

# hdparm -d1 デバイスファイル名

実行例)
- /dev/hdaのDMA転送を有効にする
# hdparm -d1 /dev/hda

- /dev/hdaのDMA転送を無効にする
# hdparm -d0 /dev/hda

なお、現在の設定を確認するには、次のように実行します。

# hdparm デバイスファイル名 | grep using_dma

例)
# hdparm /dev/hda | grep using_dma
 using_dma    =  1 (on)

C. カーネルのブートパラメタで指定する方法

DMAの設定がシステムの起動に支障を来す場合は、カーネルのDMA機能を無効にします。
DMA を無効にするブートパラメータは以下の通りです。

ide=nodma

このブートパラメータを起動時に指定してください。
ブートローダにliloを使用している場合は、以下の様になります。

例:(LILOの起動名がlinuxの場合)
LILO: linux ide=nodma

起動の度に入力するのが面倒な場合には、lilo.confファイルにappend行を追加します。

例:
[/etc/lilo.conf]
-------------------------------
...
image=/boot/vmlinuz
        label=linux
        read-only
        root=/dev/hda3
        append="ide=nodma"  <- 追加
-------------------------------

lilo.conf設定後は`lilo`コマンドを実行し、設定を反映させてください。
キーワード
DMA

関連文書
(none)


Last modified : Mon Dec 27 JST 2004 # 2