AHCI

提供: ArchWiki
移動先: 案内検索

AHCI (advanced host controller interface の略) は SATA ドライブのネイティブな動作モードで、Linux カーネルのバージョン 2.6.19 からサポートされています。

通常 SATA ドライブはデフォルトでレガシーなパラレル ATA として設定されますが、BIOS から AHCI を有効化することで主として2つのメリットがあります: SATA ドライブのホットプラグ (USB ドライブの挙動を模倣) と NCQ (native command queuing) のサポートです。

カーネルイメージに AHCI モジュールを追加

/etc/mkinitcpio.conf を編集して MODULES 変数に ahci を追加してください:

MODULES="ahci"

カーネルイメージを再生成することで追加したモジュールがイメージに含まれるようになります:

# mkinitcpio -p linux

BIOS から設定

BIOS にアクセスする方法はマザーボードによって異なります。大抵は Del を使うことでメニューを表示できます。

BIOS のオプションが表示されたら、以下のようなパラメータを探して下さい:

Enable SATA as: IDE/AHCI

または:

SATA: PATA Emulation/Native/Enhanced

AHCINative を選択して、設定を保存して BIOS から抜けます。名前はマザーボードによって変わってくるので、どのモードが AHCI なのか分からないときはマザーボードのマニュアルを見て下さい。

BIOS の設定を変更・保存した後、Linux は次の起動時に AHCI ドライバーをロードします。dmesg の出力で確認できます:

SCSI subsystem initialized
libata version 3.00 loaded.
ahci 0000:00:1f.2: version 3.0
ahci 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19
ahci 0000:00:1f.2: irq 764 for MSI/MSI-X
ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x3f impl SATA mode
ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pmp pio slum part ems 
ahci 0000:00:1f.2: setting latency timer to 64
scsi0 : ahci
scsi1 : ahci
scsi2 : ahci
scsi3 : ahci
scsi4 : ahci
scsi5 : ahci

NCQ も以下のような文字列で確認できます:

ata2.00: 625142448 sectors, multi 16: LBA48 NCQ (depth 31/32)

資料