
Ubuntu日本語フォーラム

ログインしていません。
私のメインマシンには、増設のIDEドライブ用としてpromise Ultra133 Tx2(pdc20269)
http://www.promise.com/marketing/datash … 2DS_v3.pdf
をセットしています。
今回、Linuxマシンをもう一台と考え、HDD別のデュアルブートとして、Ubuntuをインストールしました。
どうもBus Master転送が動作していないようで、超鈍足のIDEドライブにUbuntuを構築したことになります。
Googleで検索しても、対処法がヒットしないのです。
どなたかカーネルのモジュール等を改善する手段があれば、ご教授願えませんでしょうか。。。。
環境
http://www.digit-life.com/articles/msi6 … index.html
MSI 694D(370 mother_board), PIII*2 930MHz, 1280M, ASUSTek GForce6200,
Creative Labs: SB X-Fi Platinum,
(この音源ボードもLinuxでは対応していなく、音がでません)
ON board IDE1_Master: IDE 60G, IDE2_Master: DVD R/W, IDE2_slave: DVD,
c: d: (Windows XP Pro) e: f:
Promise Ultra133 Tx2(PCI) IDE1_Master: IDE 160G, IDE2_Master: IDE 60G
g: (Windows_work) h:
FDDによるデュアルブートで、h:ドライブにUbuntu7.10日本語ローカライズ版をインストールしました。
カーネルは、linux 2.6.22-14-generic のようです。
稼働は問題なくしているのですが、あまりにも遅いのです。
ON boardのIDE1_slaveとして接続すれば一応解決しますが、正攻法で実施したいのです。
最後の編集者: koisan1949 (2008-01-10 18:14:55)
オフライン
自己レスです。
”SATAの速度について” #2 siさんのコメントを参考にGoogleで検索しました。
hdparm コマンドで対処できるとのこと。
このLinuxコマンドで、DMA転送を設定できることがわかりました。
挑戦することにします。
オフライン
結果報告
このhdparmコマンドについて、Promise Ultra133 Tx2に関しては動作しません。
ソフト的に対応できてないと考えられます。やはりPromise Ultra133 Tx2用にカーネルのモジュールを
改造しないといけないようです。 どうすればよいのか、私の力量では不可能です。
別のSOTECのマシンでは、DMAが有効になり、5.01MB/sec ==> 50.42MB/secになりました。
(VIA_IDE: VT82C586A) ~$ sudo hdparm -X69 -d1 /dev/hda
増設IDE(Promise Ultra133 Tx2)
~$ sudo hdparm -I /dev/sdb デバイス情報
/dev/sdb:
ATA device, with non-removable media
Model Number: Maxtor 96147H6
Serial Number: V605ASVC
Firmware Revision: ZAH814Y0
Standards:
Used: ATA/ATAPI-6 T13 1410D revision 0
Supported: 6 5 4
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 120064896
device size with M = 1024*1024: 58625 MBytes
device size with M = 1000*1000: 61473 MBytes (61 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
Advanced power management level: unknown setting (0x0000)
Recommended acoustic management value: 192, current value: 254
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=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
* Power Management feature set
Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_VERIFY command
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* DOWNLOAD_MICROCODE
Advanced Power Management feature set
SET_MAX security extension
* Automatic Acoustic Management feature set
HW reset results:
CBLID- above Vih
Device num = 0 determined by the jumper
Checksum: correct
セッティングしない状態では、
~$ sudo hdparm -t /dev/sdb ハードディスクのテスト
/dev/sdb:
Timing buffered disk reads: 28 MB in 3.08 seconds = 9.10 MB/sec
ためしにDMA転送モードにセッティグ
~$ sudo hdparm -d1 /dev/sdb
/dev/sdb:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
エラーがでて、対応していないのが確認できました.
オフライン
問題の根本はDMA以外のところにありそうです。
hdparamの結果を見ると、
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
とあるので、UDMA5(=UltraATA100)で動作しています。
装着しているPCIスロットを変更してみたりすると改善したりしませんか?
オフライン
hito さん コメントありがとうございます。
たしかに、sda1 160GBHDD UDMA6, sdb1 60GB UDMA5 です。
このハード的にセットされた情報は、Promise Ultra133 のbiosからの起動メッセージがでて
ハード的には問題ないことが確認できています。
その後、ブートローダーが動作し始め、Ubuntuが稼働します。
Ubuntuでの、~$ sudo hdparm -I /dev/sdb による情報と確かに一致します。
DMAmodeのセッティング全て及びPIOmodeについても、hdparm コマンドからエラーがでます。
当然、Windows XPにおいては、DMA_modeで何ら問題なく機能しています。
ご指摘のPCI_busへの装着位置についても、I/Oコントローラから最短位置にセットしています。
5スロットすべて利用していますし、さらに電源も強力にしてあります。
マザーボードのVT82C693に接続されたhda は、UDMA5にセットでき、50MB/secとなります。
やっぱり、IDE1のslaveに移すしかないかな・・・・・・
蛇足です。
ハードについては、1ボードマイコンからの歴史があり、そこそこのノウハウも理解しています。
最近のマシンは、プラモデル化して面白くも何もないですが。
OSも、。。。。OS-9, PCDOS, OS/2 で止まり、言語もBorland C++までです。
私の頭脳時計は、20年前から止まったままです。
MACおよびWindows以降は、便利な道具となってしまい、プログラムは書いてません。
これから勉強しようとして、Ubuntuを入れました。Linuxは10年前にさわった程度です。
このOS環境は、奥が深く、私を満足させてくれそうです。英語も勉強しなおさないと。
オフライン
DMAmodeのセッティング全て及びPIOmodeについても、hdparm コマンドからエラーがでます。
hdparamによる変更はドライバが外部からのモード変更に対応しているか否かが問題であり、
DMAに対応しているかどうかとは本質的には関係ありません。DMAに対応していなければ
ioctlで変更できませんが(必要条件)、DMAに対応しているからといって変更できるとは限りません。
ご指摘のPCI_busへの装着位置についても、I/Oコントローラから最短位置にセットしています。
ええと、これは物理的距離の話でしょうか、それともAppolo Pro 133Aの内部仕様的に
最優先になる場所に刺さっているという意味でしょうか。前者だとすると、INT#の配置によっては
無意味です。
Windowsで性能が出ていることは、バス配置の問題による割り込み周りの問題がないことを
保証するものではありません。割り込みタイミングはドライバの実装によって異なりますし、
「そもそも動作しない」パターンではない場合、つまり「性能が出ない」などの問題に対しては
スロット変更が有効なことがあります。
オフライン
hito さん
ありがとうございました。 ご指摘の内容理解できました。
<挑戦1>
暇なとき、がんぱってPromise Ultra133のスロット差し込み位置変更を
試してみます。
<挑戦2>
挑戦1で挫折した場合、安易な方法ですが、IDE1のslaveに接続して、
Promise Ultra133の不具合を無視します。
ところで、昨日見つけました。
"pdc20269 for Linux" として、Googleで検索したときヒットしました。
http://osdir.com/ml/ide/2003-10/msg00042.html
このメーリングリストによると、何か問題点がありそうです。
内容は、英語が苦手なもので9割ぐらいしか把握できません。
(仕事は英語を必要としないので忘却の彼方です。)
オフライン
koisan1949 による投稿:
稼働は問題なくしているのですが、あまりにも遅いのです。
ON boardのIDE1_slaveとして接続すれば一応解決しますが、正攻法で実施したいのです。
横からアレだけど, このとき dmesg実行すると何か現れてないでしょーか ?
オフライン
dmesgコマンドの結果です。
相当長いです。ドライブ関係のみ抜粋しました。
[ 51.664951] hdc: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache, UDMA(33)
[ 51.664983] Uniform CD-ROM driver Revision: 3.20
[ 51.671416] hda: max request size: 128KiB
[ 51.674964] hdd: ATAPI 48X DVD-ROM drive, 128kB Cache, UDMA(33)
[ 51.688545] hda: 120103200 sectors (61492 MB) w/7936KiB Cache, CHS=65535/16/63, UDMA(100)
[ 51.688727] hda: cache flushes supported
[ 51.688840] hda: hda1 hda2 < hda5 >
[ 51.736459] ACPI: PCI Interrupt 0000:00:0f.1[b] -> GSI 18 (level, low) -> IRQ 17
[ 51.736505] uhci_hcd 0000:00:0f.1: UHCI Host Controller
[ 51.736588] uhci_hcd 0000:00:0f.1: new USB bus registered, assigned bus number 2
[ 51.736649] uhci_hcd 0000:00:0f.1: irq 17, io base 0x0000e400
[ 51.736958] usb usb2: configuration #1 chosen from 1 choice
[ 51.737045] hub 2-0:1.0: USB hub found
[ 51.737070] hub 2-0:1.0: 2 ports detected
[ 51.840284] ACPI: PCI Interrupt 0000:00:0f.2[C] -> GSI 19 (level, low) -> IRQ 18
[ 51.840342] ehci_hcd 0000:00:0f.2: EHCI Host Controller
[ 51.840460] ehci_hcd 0000:00:0f.2: new USB bus registered, assigned bus number 3
[ 51.840599] ehci_hcd 0000:00:0f.2: irq 18, io mem 0xec305000
[ 51.840613] ehci_hcd 0000:00:0f.2: USB 2.0 started, EHCI 0.95, driver 10 Dec 2004
[ 51.840920] usb usb3: configuration #1 chosen from 1 choice
[ 51.841006] hub 3-0:1.0: USB hub found
[ 51.841038] hub 3-0:1.0: 4 ports detected
[ 51.944204] pata_pdc2027x 0000:00:0e.0: version 0.9
[ 51.944394] ACPI: PCI Interrupt 0000:00:0e.0[A] -> GSI 16 (level, low) -> IRQ 19
[ 52.043637] pata_pdc2027x 0000:00:0e.0: PLL input clock 17882 kHz
[ 52.073852] scsi0 : pata_pdc2027x
[ 52.073983] scsi1 : pata_pdc2027x
[ 52.074053] ata1: PATA max UDMA/133 cmd 0xf89097c0 ctl 0xf8909fda bmdma 0xf8909000 irq 19
[ 52.074062] ata2: PATA max UDMA/133 cmd 0xf89095c0 ctl 0xf8909dda bmdma 0xf8909008 irq 19
[ 52.237520] ata1.00: ATA-7: Maxtor 6L160P0, BAJ41G20, max UDMA/133
[ 52.237532] ata1.00: 320173056 sectors, multi 16: LBA48
[ 52.253527] ata1.00: configured for UDMA/133
[ 52.416152] ata2.00: ATA-6: Maxtor 96147H6, ZAH814Y0, max UDMA/100
[ 52.416165] ata2.00: 120064896 sectors, multi 16: LBA
[ 52.432163] ata2.00: configured for UDMA/100
[ 52.432462] scsi 0:0:0:0: Direct-Access ATA Maxtor 6L160P0 BAJ4 PQ: 0 ANSI: 5
[ 52.433525] scsi 1:0:0:0: Direct-Access ATA Maxtor 96147H6 ZAH8 PQ: 0 ANSI: 5
[ 52.434050] ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 17 (level, low) -> IRQ 16
[ 52.515645] e100: eth0: e100_probe: addr 0xec304000, irq 16, MAC addr 00:D0:B7:16:C4:07
[ 52.526085] sd 0:0:0:0: [sda] 320173056 512-byte hardware sectors (163929 MB)
[ 52.526158] sd 0:0:0:0: [sda] Write Protect is off
[ 52.526165] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 52.526207] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 52.526360] sd 0:0:0:0: [sda] 320173056 512-byte hardware sectors (163929 MB)
[ 52.526384] sd 0:0:0:0: [sda] Write Protect is off
[ 52.526391] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 52.526428] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 52.526443] sda: sda1
[ 52.549377] sd 0:0:0:0: [sda] Attached SCSI disk
[ 52.549824] sd 1:0:0:0: [sdb] 120064896 512-byte hardware sectors (61473 MB)
[ 52.549856] sd 1:0:0:0: [sdb] Write Protect is off
[ 52.549863] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 52.549903] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 52.550020] sd 1:0:0:0: [sdb] 120064896 512-byte hardware sectors (61473 MB)
[ 52.550044] sd 1:0:0:0: [sdb] Write Protect is off
[ 52.550050] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[ 52.550088] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 52.550097] sdb: sdb1 sdb2 < sdb5 >
[ 52.580845] sd 1:0:0:0: [sdb] Attached SCSI disk
[ 52.596151] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 52.596561] sd 1:0:0:0: Attached scsi generic sg1 type 0
[ 53.036226] Attempting manual resume
[ 53.036237] swsusp: Resume From Partition 8:21
[ 53.036241] PM: Checking swsusp image.
[ 53.036597] PM: Resume from disk failed.
[ 53.084078] EXT3-fs: INFO: recovery required on readonly filesystem.
[ 53.084091] EXT3-fs: write access will be enabled during recovery.
[ 56.619462] kjournald starting. Commit interval 5 seconds
[ 56.619501] EXT3-fs: recovery complete.
[ 56.685115] EXT3-fs: mounted filesystem with ordered data mode.
オフライン
途中でエラーでも起こって動作が変わったりしてるのかと思ったけど違うっぽいですね。
んで, pata_pdc2027x てゆーモジュールが動いてるよーに見えるです。
(たぶん Promise Ultra133 Tx2なブツ)
ところで コレって UDMA/133と UDMA/100を混在させても大丈夫なんでしょーか? (そこら辺知らないので)
オフライン
RxOrca さん
dmesgで、表示はしてくれるのですが、HDはUDMA5 or UDMA6への対応が可能と明示
されてはいます。Promise Ultra133 TX2は、ほぼそれらのモードをサポートはしています。
しかしながら、セカンダリー・IDEコントローラとすると、普通のOSはPromiseのbiosを読みに
行きません。現実に、私のマシンでは、dmesgの表示からもUDMAモードで動作していません。
PIOモードの動作と思われます。
pata_pdc2027x 0000:00:0e.0: PLL input clock 17882 kHz
(コントローラへのタイミング・パルスがPCI_bus_clock/2となっています。このことから、PIO)
Ubuntuも起動のとき、biosコールしてデバイスの接続情報を読み取っているようです。
その情報を利用して、最適のデバイス・ドライバーのモジュールを選択していると考えられます。
その結果を表示させるコマンドが、dmesgです。
接続しているのはpdc20269なのに、稼働しているのはRAID仕様のpdc2027Xなっている
のも誤作動の要因と思います。
モジュールに不具合があれば、対処する方法はそのモジュール部分を入れ替えればよいのです。
ただ、ハードウェアの詳細とドライバーを書く力量が必要です。わたしには皆無です。
本体のIDEコントローラを殺して、Promise Ultra133 TX2 で起動IDEに設定にすれば、
このモジュールが正しく動作しているかを確かめられます。
テストするには、私のメインマシンをバラバラにしないとできないので、それはしたくない。
ベアーボーンのマシンでも組み立てた際に、試行したいと思います。現在3台稼働中です。
とりあえず、別のSotecのマシンはUbuntu+Kubuntu+ATOKが正常に稼働しているので、
必要に迫られていません。
さて、IDEコントローラの一般的な動作ですが、IDE1とIDE2は別々のモードで稼働可能です。
マスターとスレーブにドライブを接続した場合、コントローラが上位対応していても、動作モードは
低速側に合わせてしまいます。
即ち、混在可能だが、高速のHDDを他の低速モードの機器を同じIDEコネクターに接続することは
避けたほうがよいと言うことです。
例として、IDE1にHD1 UDMA6 master + HD2 UDMA5 slave とした場合、両方とも
UDMA5で動作します。よって、IDE1にHDDとDVDドライブを接続するのは、不適切です。
排他的に占有するバスケーブルで、機器に合わせてモードが切り替わるとは思いません。
(このことは、遙か昔の情報なので、定かではありません。)
最後の編集者: koisan1949 (2008-01-16 23:19:32)
オフライン
koisan1949 による投稿:
しかしながら、セカンダリー・IDEコントローラとすると、普通のOSはPromiseのbiosを読みに
行きません。現実に、私のマシンでは、hdmesgの表示からもUDMAモードで動作していません。
PIOモードの動作と思われます。
BIOSを使うのは DOSくらいですね。そもそも CPUのモードとか違うので。
koisan1949 による投稿:
さて、IDEコントローラの一般的な動作ですが、IDE1とIDE2は別々のモードで稼働可能です。
マスターとスレーブにドライブを接続した場合、コントローラが対応していても動作モードは低速の
機器に合わせてしまいます。
即ち、混在可能だが、高速のHDを他の低速モードの機器を同じバスに接続することは避けた
ほうがよいと言うことです。
そのときに pata_pdc2027x モジュールがどのよーな動作をするのか知らないけど …
試しに使わない方を抜いてみて速度を計測してもよいカモです。
オフライン
情報の引用元の "OSdir"メールアーカイブの 該当スレッドを辿って,
"Promise PDC20269 - PIO Only?: msg#00025"
"Subject: Promise PDC20269 - PIO Only?"
(http://osdir.com/ml/ide/2003-10/msg00025.html)
から, スレッドを順に読んでいくと,
カーネル側のuDMAオプションを設定したか?とか聞かれてるので,
カーネルソースを手に入れて,カーネルコンフィグのuDMAが設定
されているか確認してみてはどうでしょう?
もっとも,上記の情報は,2.4カーネルについて話されているので,
今のカーネルコンフィグが変わっている可能性もあります.
オフライン