今井です。 HDAMDで9.1とかいじってて思ったんですが、 どうもBIOSの設定と実際に起動しているLinuxの設定が食い違いがあるようで....。 BIOSの方でIDEのデバイスの転送モード(UDMA66とか100とかって方じゃなくて) の32bitとか16bitの方のモードで、32bitのモードを禁止してもLinux起動すると 禁止してるはずのドライブでも32bitモードになってるし....。 ATAPIデバイスの場合はBIOSの方で切替えできないのでLinuxの方で変更する 必要があるのですが、私の使ってるATAPI DVD-RAMドライブはDVD-RAM利用時 に32bitモードがオンになってるとSUSE 9.1全体が固まりやすいので16bitモードで 設定する様にしておきたいのですが 9.1とかで、hdparm直接呼び出しで16bitモード設定するロジックを独自に組み込む 以外に何か方法ありましたっけ? なければ/etc/sysconfig/ideとか/etc/init.d/idedmaとかでデバイス別に設定する 様にUDMAの強制設定ロジック流用して埋め込もうかなと思うのですが....。 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: maimai@coral.ocn.ne.jp web: http://www10.ocn.ne.jp/~masimai/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At Thu, 2 Dec 2004 02:54:33 +0900, Masaru Imai wrote:
今井です。
HDAMDで9.1とかいじってて思ったんですが、 どうもBIOSの設定と実際に起動しているLinuxの設定が食い違いがあるようで....。 BIOSの方でIDEのデバイスの転送モード(UDMA66とか100とかって方じゃなくて) の32bitとか16bitの方のモードで、32bitのモードを禁止してもLinux起動すると 禁止してるはずのドライブでも32bitモードになってるし....。 ATAPIデバイスの場合はBIOSの方で切替えできないのでLinuxの方で変更する 必要があるのですが、私の使ってるATAPI DVD-RAMドライブはDVD-RAM利用時 に32bitモードがオンになってるとSUSE 9.1全体が固まりやすいので16bitモードで 設定する様にしておきたいのですが 9.1とかで、hdparm直接呼び出しで16bitモード設定するロジックを独自に組み込む 以外に何か方法ありましたっけ? なければ/etc/sysconfig/ideとか/etc/init.d/idedmaとかでデバイス別に設定する 様にUDMAの強制設定ロジック流用して埋め込もうかなと思うのですが....。
9.1 環境でもそうなっていたか記憶が確かではないのですが、少なくとも 9.2 では /etc/sysconfig/ide で DEVICE_FORCE_IDE_DMA="/dev/hdb:off:-c0" という風に、":" で区切った第3項目 (もしくはそれ以降) に hdparm のオプ ションを書き加えることができます。 -- Takashi Iwai <tiwai@suse.de> ALSA Developer - www.alsa-project.org
今井です。 木曜日 02 12月 2004 03:19、Takashi Iwai さんは書きました:
9.1 環境でもそうなっていたか記憶が確かではないのですが、少なくとも 9.2 では /etc/sysconfig/ide で
DEVICE_FORCE_IDE_DMA="/dev/hdb:off:-c0"
という風に、":" で区切った第3項目 (もしくはそれ以降) に hdparm のオプ ションを書き加えることができます。
/etc/sysconfig/ideを読み込んでいる/etc/init.d/boot.idedmaファイルをエディタ で見てみました。 # Set DMA mode by hdparm utility if [ -z "$MODE" ] ; then echo "Missing DMA mode for device $DEVICE" rc_failed elif [ $MODE == "off" ] ; then $HDPARM -d 0 "$DEVICE" || rc_failed elif [ $MODE == "on" ] ; then $HDPARM -d 1 "$DEVICE" || rc_failed else $HDPARM -d 1 -X "$MODE" ${OPTIONS:+$OPTIONS} "$DEVICE" || rc_failed fi というロジッックになっていますので そうすると教えて頂いたのをそっくりそのまま使うとDMAモードのON、OFFの設定をやる だけでした。 3番めのフィールドを利用するのはMODEが"on”や"off"、""では無い時で hdparm -Xの後ろに記述できる格好でMODEが宣言されていなければならないので 例えばプライマリのスレーブに繋がってるHDDのDMA転送モードをATA100、16ビット で送る場合には、 DEVICE_FORCE_IDE_DMA="/dev/hdb:udma5:-c0" とかやらないとダメなのでした。 これでやっと妙なフリーズ等に悩む必要がなくなります。 ありがとうございました。 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: maimai@coral.ocn.ne.jp web: http://www10.ocn.ne.jp/~masimai/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
At Thu, 2 Dec 2004 19:59:10 +0900, Masaru Imai wrote:
今井です。
木曜日 02 12月 2004 03:19、Takashi Iwai さんは書きました:
9.1 環境でもそうなっていたか記憶が確かではないのですが、少なくとも 9.2 では /etc/sysconfig/ide で
DEVICE_FORCE_IDE_DMA="/dev/hdb:off:-c0"
という風に、":" で区切った第3項目 (もしくはそれ以降) に hdparm のオプ ションを書き加えることができます。
/etc/sysconfig/ideを読み込んでいる/etc/init.d/boot.idedmaファイルをエディタ で見てみました。 # Set DMA mode by hdparm utility if [ -z "$MODE" ] ; then echo "Missing DMA mode for device $DEVICE" rc_failed elif [ $MODE == "off" ] ; then $HDPARM -d 0 "$DEVICE" || rc_failed elif [ $MODE == "on" ] ; then $HDPARM -d 1 "$DEVICE" || rc_failed else $HDPARM -d 1 -X "$MODE" ${OPTIONS:+$OPTIONS} "$DEVICE" || rc_failed fi というロジッックになっていますので そうすると教えて頂いたのをそっくりそのまま使うとDMAモードのON、OFFの設定をやる だけでした。 3番めのフィールドを利用するのはMODEが"on”や"off"、""では無い時で hdparm -Xの後ろに記述できる格好でMODEが宣言されていなければならないので 例えばプライマリのスレーブに繋がってるHDDのDMA転送モードをATA100、16ビット で送る場合には、 DEVICE_FORCE_IDE_DMA="/dev/hdb:udma5:-c0" とかやらないとダメなのでした。
なるほど、下の方のコードを見落としてました。 ま、なにはともあれ解決されたようで何よりです :-) -- Takashi Iwai <tiwai@suse.de> ALSA Developer - www.alsa-project.org
今井です。 10.0でメインマシンのIDE回りの挙動がちょっと変なので 起動直後はいいがしばらくほっておくと hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } hda: dma_intr: error=0x84 { DriveStatusError BadCRC } linux kernel: ide: failed opcode was: unknown が時々....。 根本的な対策ではないけど以前やったこの方法を試用中....。 YaSTからでもエキスパートモードみたいなのがあってGUIで出来れば いいんだけど....。 Thursday 02 December 2004 19:59、Masaru Imai さんは書きました:
/etc/sysconfig/ideを読み込んでいる/etc/init.d/boot.idedmaファイルをエディタ で見てみました。 # Set DMA mode by hdparm utility if [ -z "$MODE" ] ; then echo "Missing DMA mode for device $DEVICE" rc_failed elif [ $MODE == "off" ] ; then $HDPARM -d 0 "$DEVICE" || rc_failed elif [ $MODE == "on" ] ; then $HDPARM -d 1 "$DEVICE" || rc_failed else $HDPARM -d 1 -X "$MODE" ${OPTIONS:+$OPTIONS} "$DEVICE" || rc_failed fi というロジッックになっていますので そうすると教えて頂いたのをそっくりそのまま使うとDMAモードのON、OFFの設定をやる だけでした。 3番めのフィールドを利用するのはMODEが"on”や"off"、""では無い時で hdparm -Xの後ろに記述できる格好でMODEが宣言されていなければならないので 例えばプライマリのスレーブに繋がってるHDDのDMA転送モードをATA100、16ビット で送る場合には、 DEVICE_FORCE_IDE_DMA="/dev/hdb:udma5:-c0" とかやらないとダメなのでした。
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: maimai@coral.ocn.ne.jp web: http://www10.ocn.ne.jp/~masimai/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
今井です。 Saturday 05 November 2005 14:21、Masaru Imai さんは書きました:
が時々....。 根本的な対策ではないけど以前やったこの方法を試用中....。
YaSTからでもエキスパートモードみたいなのがあってGUIで出来れば いいんだけど....。
気になったのでもう一度ケーブル系も見直してみた....。 うちではスマートケーブル使ってるんですが (しかも長さも色々だけどチューブ色は例外もあるが基本的に一種類) なんで規格外の長さのスマートケーブルが使ってあるんだ.....? 規格内のスマートケーブルを使ってたはずなんだけど....。 というのが真実の様で.....。 即刻スマートケーブル交換したのは言うまでもなく....。 -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 今井 優 mail: maimai@coral.ocn.ne.jp web: http://www10.ocn.ne.jp/~masimai/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
participants (2)
-
Masaru Imai
-
Takashi Iwai