diary/Kojima/2007-05-14
の編集
http://plamo.linet.jp/?diary/Kojima/2007-05-14
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
[[diary/Kojima]] ・libata 最近のLinuxでは従来のIDEドライバからlibataというSATA/PATAを統合したドラ イバへ移行しつつあるので,手元のマシンでlibataベースにしたらどうなるかを 試してみた. LinuxのIDEドライバは,Linuxの最初期のころからさまざまなハードウェアに 個別に対応するようなコードを追加しながらインプリメントされてきて, Linuxが他のPC-Unixよりも多くのハードウェアに対応していて初期のユーザ の獲得に貢献した,という伝統的なコードだけど,その分複雑でメンテナンス が困難になってきたため,新しくlibataという実装が作成されたらしい. 確かにLinuxのIDEドライバは,IDE経由でCDを使うためのATAPIが普及する前 の,メーカ独自仕様の機能とかにも積極的に対応していたのだけど,その結果として コードは複雑になって,収拾が付かなくなってきていたらしい. cdrecordの作者あたりは,LinuxのIDEドライバは機能が中途半端(ATAPIコマ ンドがきちんと通らない)なのに開発者はそれを直す気がないらしい,と文句 付けていたけど,そのあたりもこの新しいドライバで解決するのかな? 手元のIDE接続のみのマシンの起動時のログの該当部分 PCI: Setting latency timer of device 0000:00:1f.1 to 64 ata1: PATA max UDMA/100 cmd 0x1F0 ctl 0x3F6 bmdma 0x24A0 irq 14 ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x24A8 irq 15 scsi0 : ata_piix ata1.00: ATA-6, max UDMA/100, 361882080 sectors: LBA48 ata1.00: ata1: dev 0 multi count 16 ata1.01: ATA-7, max UDMA/100, 312581808 sectors: LBA48 ata1.01: ata1: dev 1 multi count 16 ata1.00: configured for UDMA/100 ata1.01: configured for UDMA/100 scsi1 : ata_piix ata2.00: ATAPI, max UDMA/33 ata2.00: configured for UDMA/33 scsi 0:0:0:0: Direct-Access ATA IC35L180AVV207-1 V26O PQ: 0 ANSI: 5 SCSI device sda: 361882080 512-byte hdwr sectors (185284 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sda: 361882080 512-byte hdwr sectors (185284 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sda3 sd 0:0:0:0: Attached scsi disk sda scsi 0:0:1:0: Direct-Access ATA SAMSUNG SP1604N TM10 PQ: 0 ANSI: 5 SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB) sdb: Write Protect is off ... これを見ると,従来は/dev/hdaとかで見えていたATA接続のHDDが ata_piix 経由でSCSIデバイスとして /dev/sda とかに見えるようになったことが分かりますね.ATAはprimaryがata1になって、ata1.00が従来の/dev/hda,ata1.01が/dev/hdb に、secondaryがata2になって、CDドライブと認識されている模様.ここには出てきてないけど,CDドライブは/dev/sr0に見えるみたい. これくらいだと/dev/hd[abcde]が/dev/sd[abcde]に変るだけなのでそう悩むこ とはなさげだけど,ATAとSATAが混在する環境だと結構メンドくさい感じ.on boardでSATA接続ができる ASUS 8V(VIA VT8237)だと,こんな感じのログが出力されていた. megaraid: 2.20.4.9 (Release Date: Sun Jul 16 12:27:22 EST 2006) sata_via 0000:00:0f.0: version 2.0 ACPI: PCI Interrupt 0000:00:0f.0[B] -> GSI 20 (level, low) -> IRQ 16 sata_via 0000:00:0f.0: routed to hard irq line 10 ata1: SATA max UDMA/133 cmd 0xD000 ctl 0xC802 bmdma 0xB800 irq 16 ata2: SATA max UDMA/133 cmd 0xC400 ctl 0xC002 bmdma 0xB808 irq 16 scsi0 : sata_via ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ATA: abnormal status 0x7F on port 0xD007 ATA: abnormal status 0x7F on port 0xD007 ata1.00: ATA-7, max UDMA/133, 625142448 sectors: LBA48 NCQ (depth 0/32) ata1.00: ata1: dev 0 multi count 16 ata1.00: configured for UDMA/133 scsi1 : sata_via ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ATA: abnormal status 0x7F on port 0xC407 ATA: abnormal status 0x7F on port 0xC407 ata2.00: ATA-7, max UDMA/133, 625142448 sectors: LBA48 NCQ (depth 0/32) ata2.00: ata2: dev 0 multi count 16 ata2.00: configured for UDMA/133 scsi 0:0:0:0: Direct-Access ATA ST3320620AS 3.AA PQ: 0 ANSI: 5 SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sd 0:0:0:0: Attached scsi disk sda scsi 1:0:0:0: Direct-Access ATA Hitachi HDT72503 V54O PQ: 0 ANSI: 5 SCSI device sdb: 625142448 512-byte hdwr sectors (320073 MB) sdb: Write Protect is off sdb: Mode Sense: 00 3a 00 00 SCSI device sdb: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sdb: 625142448 512-byte hdwr sectors (320073 MB) sdb: Write Protect is off sdb: Mode Sense: 00 3a 00 00 SCSI device sdb: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdb: sdb1 sd 1:0:0:0: Attached scsi disk sdb pata_via 0000:00:0f.1: version 0.2.1 ACPI: PCI Interrupt 0000:00:0f.1[A] -> GSI 20 (level, low) -> IRQ 16 ata3: PATA max UDMA/133 cmd 0x1F0 ctl 0x3F6 bmdma 0xFC00 irq 14 ata4: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xFC08 irq 15 scsi2 : pata_via ata3.00: ATA-5, max UDMA/100, 156301488 sectors: LBA ata3.00: ata3: dev 0 multi count 16 ata3.00: configured for UDMA/100 scsi3 : pata_via ata4.00: ATAPI, max UDMA/33 ata4.00: configured for UDMA/33 scsi 2:0:0:0: Direct-Access ATA ST380021A 3.75 PQ: 0 ANSI: 5 SCSI device sdc: 156301488 512-byte hdwr sectors (80026 MB) sdc: Write Protect is off sdc: Mode Sense: 00 3a 00 00 SCSI device sdc: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sdc: 156301488 512-byte hdwr sectors (80026 MB) sdc: Write Protect is off sdc: Mode Sense: 00 3a 00 00 SCSI device sdc: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdc: sdc1 sdc2 sdc3 sdc4 sd 2:0:0:0: Attached scsi disk sdc scsi 3:0:0:0: CD-ROM PIONEER DVD/CDRW DCR-111 1.26 PQ: 0 ANSI: 5 sr0: scsi3-mmc drive: 40x/94x writer cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 これだとSATA接続のデバイスが先に認識されてata1,ata2になって、/dev/sda,/dev/sdbが割りあてられ、 PATA接続はata3以降で/dev/sdcに,/dev/hdcのCDドライブが/dev/sr0になっている感じ. ちなみに既存の環境への上書きインストールとかもやってみたけど,grubが認識するHDDの順番は 従来通りATAPI->SATAなので,/dev/hda1は/boot/grub.confのドライブ指定だと(hd0,0)になるけど, カーネルパラメータとしてroot partitionを渡す際は/dev/sdc1とかにしないといけないので, かなり紛らわしい気がする. イジった感じ,libataは最近のサウスブリッジチップには対応できてそうなので,後は古めのマザーボードとか 拡張IDEカードの類いの対応状況次第だろうなぁ.. #comment
タイムスタンプを変更しない
[[diary/Kojima]] ・libata 最近のLinuxでは従来のIDEドライバからlibataというSATA/PATAを統合したドラ イバへ移行しつつあるので,手元のマシンでlibataベースにしたらどうなるかを 試してみた. LinuxのIDEドライバは,Linuxの最初期のころからさまざまなハードウェアに 個別に対応するようなコードを追加しながらインプリメントされてきて, Linuxが他のPC-Unixよりも多くのハードウェアに対応していて初期のユーザ の獲得に貢献した,という伝統的なコードだけど,その分複雑でメンテナンス が困難になってきたため,新しくlibataという実装が作成されたらしい. 確かにLinuxのIDEドライバは,IDE経由でCDを使うためのATAPIが普及する前 の,メーカ独自仕様の機能とかにも積極的に対応していたのだけど,その結果として コードは複雑になって,収拾が付かなくなってきていたらしい. cdrecordの作者あたりは,LinuxのIDEドライバは機能が中途半端(ATAPIコマ ンドがきちんと通らない)なのに開発者はそれを直す気がないらしい,と文句 付けていたけど,そのあたりもこの新しいドライバで解決するのかな? 手元のIDE接続のみのマシンの起動時のログの該当部分 PCI: Setting latency timer of device 0000:00:1f.1 to 64 ata1: PATA max UDMA/100 cmd 0x1F0 ctl 0x3F6 bmdma 0x24A0 irq 14 ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x24A8 irq 15 scsi0 : ata_piix ata1.00: ATA-6, max UDMA/100, 361882080 sectors: LBA48 ata1.00: ata1: dev 0 multi count 16 ata1.01: ATA-7, max UDMA/100, 312581808 sectors: LBA48 ata1.01: ata1: dev 1 multi count 16 ata1.00: configured for UDMA/100 ata1.01: configured for UDMA/100 scsi1 : ata_piix ata2.00: ATAPI, max UDMA/33 ata2.00: configured for UDMA/33 scsi 0:0:0:0: Direct-Access ATA IC35L180AVV207-1 V26O PQ: 0 ANSI: 5 SCSI device sda: 361882080 512-byte hdwr sectors (185284 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sda: 361882080 512-byte hdwr sectors (185284 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sda3 sd 0:0:0:0: Attached scsi disk sda scsi 0:0:1:0: Direct-Access ATA SAMSUNG SP1604N TM10 PQ: 0 ANSI: 5 SCSI device sdb: 312581808 512-byte hdwr sectors (160042 MB) sdb: Write Protect is off ... これを見ると,従来は/dev/hdaとかで見えていたATA接続のHDDが ata_piix 経由でSCSIデバイスとして /dev/sda とかに見えるようになったことが分かりますね.ATAはprimaryがata1になって、ata1.00が従来の/dev/hda,ata1.01が/dev/hdb に、secondaryがata2になって、CDドライブと認識されている模様.ここには出てきてないけど,CDドライブは/dev/sr0に見えるみたい. これくらいだと/dev/hd[abcde]が/dev/sd[abcde]に変るだけなのでそう悩むこ とはなさげだけど,ATAとSATAが混在する環境だと結構メンドくさい感じ.on boardでSATA接続ができる ASUS 8V(VIA VT8237)だと,こんな感じのログが出力されていた. megaraid: 2.20.4.9 (Release Date: Sun Jul 16 12:27:22 EST 2006) sata_via 0000:00:0f.0: version 2.0 ACPI: PCI Interrupt 0000:00:0f.0[B] -> GSI 20 (level, low) -> IRQ 16 sata_via 0000:00:0f.0: routed to hard irq line 10 ata1: SATA max UDMA/133 cmd 0xD000 ctl 0xC802 bmdma 0xB800 irq 16 ata2: SATA max UDMA/133 cmd 0xC400 ctl 0xC002 bmdma 0xB808 irq 16 scsi0 : sata_via ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ATA: abnormal status 0x7F on port 0xD007 ATA: abnormal status 0x7F on port 0xD007 ata1.00: ATA-7, max UDMA/133, 625142448 sectors: LBA48 NCQ (depth 0/32) ata1.00: ata1: dev 0 multi count 16 ata1.00: configured for UDMA/133 scsi1 : sata_via ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ATA: abnormal status 0x7F on port 0xC407 ATA: abnormal status 0x7F on port 0xC407 ata2.00: ATA-7, max UDMA/133, 625142448 sectors: LBA48 NCQ (depth 0/32) ata2.00: ata2: dev 0 multi count 16 ata2.00: configured for UDMA/133 scsi 0:0:0:0: Direct-Access ATA ST3320620AS 3.AA PQ: 0 ANSI: 5 SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sda: 625142448 512-byte hdwr sectors (320073 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sd 0:0:0:0: Attached scsi disk sda scsi 1:0:0:0: Direct-Access ATA Hitachi HDT72503 V54O PQ: 0 ANSI: 5 SCSI device sdb: 625142448 512-byte hdwr sectors (320073 MB) sdb: Write Protect is off sdb: Mode Sense: 00 3a 00 00 SCSI device sdb: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sdb: 625142448 512-byte hdwr sectors (320073 MB) sdb: Write Protect is off sdb: Mode Sense: 00 3a 00 00 SCSI device sdb: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdb: sdb1 sd 1:0:0:0: Attached scsi disk sdb pata_via 0000:00:0f.1: version 0.2.1 ACPI: PCI Interrupt 0000:00:0f.1[A] -> GSI 20 (level, low) -> IRQ 16 ata3: PATA max UDMA/133 cmd 0x1F0 ctl 0x3F6 bmdma 0xFC00 irq 14 ata4: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0xFC08 irq 15 scsi2 : pata_via ata3.00: ATA-5, max UDMA/100, 156301488 sectors: LBA ata3.00: ata3: dev 0 multi count 16 ata3.00: configured for UDMA/100 scsi3 : pata_via ata4.00: ATAPI, max UDMA/33 ata4.00: configured for UDMA/33 scsi 2:0:0:0: Direct-Access ATA ST380021A 3.75 PQ: 0 ANSI: 5 SCSI device sdc: 156301488 512-byte hdwr sectors (80026 MB) sdc: Write Protect is off sdc: Mode Sense: 00 3a 00 00 SCSI device sdc: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sdc: 156301488 512-byte hdwr sectors (80026 MB) sdc: Write Protect is off sdc: Mode Sense: 00 3a 00 00 SCSI device sdc: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdc: sdc1 sdc2 sdc3 sdc4 sd 2:0:0:0: Attached scsi disk sdc scsi 3:0:0:0: CD-ROM PIONEER DVD/CDRW DCR-111 1.26 PQ: 0 ANSI: 5 sr0: scsi3-mmc drive: 40x/94x writer cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 これだとSATA接続のデバイスが先に認識されてata1,ata2になって、/dev/sda,/dev/sdbが割りあてられ、 PATA接続はata3以降で/dev/sdcに,/dev/hdcのCDドライブが/dev/sr0になっている感じ. ちなみに既存の環境への上書きインストールとかもやってみたけど,grubが認識するHDDの順番は 従来通りATAPI->SATAなので,/dev/hda1は/boot/grub.confのドライブ指定だと(hd0,0)になるけど, カーネルパラメータとしてroot partitionを渡す際は/dev/sdc1とかにしないといけないので, かなり紛らわしい気がする. イジった感じ,libataは最近のサウスブリッジチップには対応できてそうなので,後は古めのマザーボードとか 拡張IDEカードの類いの対応状況次第だろうなぁ.. #comment
テキスト整形のルールを表示する