1 votes

Comment puis-je déterminer si mon contrôleur est en mode IDE ou AHCI sous Linux ?

J'ai un vieux MacBook Pro 4,1 (début 2008) - mais je soupçonne qu'une réponse s'appliquerait à de nombreux MacBook Pros.

Il possède un contrôleur Intel IDE/SATA (ICH8M/ICH8M-E).

J'ai installé un MBR patché qui est censé mettre mon contrôleur en mode AHCI. Il le fait en définissant une valeur de port de contrôleur que je ne comprends pas.

Cela semble fonctionner car j'obtiens ceci de lspci :

00:1f.1 IDE interface: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode] (rev 03)

Maintenant, la plupart des sites, peut-être tous, qui proposent une solution (activer AHCI) suggèrent qu'après un cycle de veille/réveil, un contrôleur reviendra en mode IDE en raison de la façon dont Apple prend en charge Windows.

Ils recommandent de désactiver le sommeil.

De l'auteur du patchedcode.bin je pense

Activer AHCI pour Windows sur les MacBooks

NB : Je n'ai pas installé Boot Camp et je n'ai pas installé Windows.

Existe-t-il un moyen de prouver que mon contrôleur est en mode IDE ou AHCI ?

Données de base

En utilisant le MBR patchedcode.bin, j'obtiens ceci dans le syslog :

Jun 12 22:33:22 max kernel: [    1.860955] ahci 0000:00:1f.2: version 3.0
Jun 12 22:33:22 max kernel: [    1.861052] ahci 0000:00:1f.2: irq 45 for MSI/MSI-X
Jun 12 22:33:22 max kernel: [    1.861117] ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 3 ports 1.5 Gbps 0x1 impl SATA mode
Jun 12 22:33:22 max kernel: [    1.861120] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ccc ems 
Jun 12 22:33:22 max kernel: [    1.861130] ahci 0000:00:1f.2: setting latency timer to 64
Jun 12 22:33:22 max kernel: [    1.880880] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
Jun 12 22:33:22 max kernel: [    1.880983] scsi2 : ahci
Jun 12 22:33:22 max kernel: [    1.884552] scsi3 : ahci
Jun 12 22:33:22 max kernel: [    1.886932] scsi4 : ahci
Jun 12 22:33:22 max kernel: [    1.886998] ata3: SATA max UDMA/133 abar m2048@0xdb504000 port 0xdb504100 irq 45
Jun 12 22:33:22 max kernel: [    1.887000] ata4: DUMMY
Jun 12 22:33:22 max kernel: [    1.887002] ata5: DUMMY
Jun 12 22:33:22 max kernel: [    2.204103] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
Jun 12 22:33:22 max kernel: [    2.204656] ata3.00: ATA-8: FUJITSU MHY2200BH, 0081000D, max UDMA/100
Jun 12 22:33:22 max kernel: [    2.204662] ata3.00: 390721968 sectors, multi 16: LBA48 NCQ (depth 31/32), AA
Jun 12 22:33:22 max kernel: [    2.205324] ata3.00: configured for UDMA/100
Jun 12 22:33:22 max kernel: [    2.205554] scsi 2:0:0:0: Direct-Access     ATA      FUJITSU MHY2200B 0081 PQ: 0 ANSI: 5

En utilisant mon MBR original, j'obtiens ceci de syslog :

Jun 13 18:07:13 max kernel: [    0.622861] ata_piix 0000:00:1f.1: version 2.13
Jun 13 18:07:13 max kernel: [    0.622869] ata_piix 0000:00:1f.1: power state changed by ACPI to D0
Jun 13 18:07:13 max kernel: [    0.622924] ata_piix 0000:00:1f.1: setting latency timer to 64
Jun 13 18:07:13 max kernel: [    0.623339] scsi0 : ata_piix
Jun 13 18:07:13 max kernel: [    0.623730] scsi1 : ata_piix
Jun 13 18:07:13 max kernel: [    0.623765] ata1: PATA max UDMA/100 cmd 0x8108 ctl 0x811c bmdma 0x80e0 irq 21
Jun 13 18:07:13 max kernel: [    0.623767] ata2: PATA max UDMA/100 cmd 0x8100 ctl 0x8118 bmdma 0x80e8 irq 21
Jun 13 18:07:13 max kernel: [    0.623810] ata_piix 0000:00:1f.2: MAP [
Jun 13 18:07:13 max kernel: [    0.623811]  P0 -- -- -- ]
Jun 13 18:07:13 max kernel: [    0.623866] ata_piix 0000:00:1f.2: setting latency timer to 64
Jun 13 18:07:13 max kernel: [    0.624241] scsi2 : ata_piix
Jun 13 18:07:13 max kernel: [    0.624558] scsi3 : ata_piix
Jun 13 18:07:13 max kernel: [    0.624862] ata3: SATA max UDMA/133 cmd 0x80f8 ctl 0x8114 bmdma 0x8020 irq 18
Jun 13 18:07:13 max kernel: [    0.624865] ata4: SATA max UDMA/133 cmd 0x80f0 ctl 0x8110 bmdma 0x8028 irq 18
Jun 13 18:07:13 max kernel: [    1.208879] ata3.00: ATA-8: FUJITSU MHY2200BH, 0081000D, max UDMA/100
Jun 13 18:07:13 max kernel: [    1.208882] ata3.00: 390721968 sectors, multi 16: LBA48 NCQ (depth 0/32)
Jun 13 18:07:13 max kernel: [    1.208961] ata1.01: ATAPI: MATSHITA DVD+/-RW UJ-867S, 1.00, max UDMA/33
Jun 13 18:07:13 max kernel: [    1.216186] ata3.00: configured for UDMA/100
Jun 13 18:07:13 max kernel: [    1.224396] ata1.01: configured for UDMA/33

1voto

philcolbourn Points 173

Lspci est tout ce dont j'ai besoin, il semble. Le mode IDE signifie qu'il est en mode IDE et le mode AHCI signifie qu'il est en mode AHCI/SATA.

Je l'ai documenté ici

Le MBR modifié auquel j'ai fait référence semble juste ressembler à quelque chose comme ça :

setpci -s 0:1f.2 90.b=40

qui fonctionnera pour un certain nombre d'Apple MacBooks qui utilisent des contrôleurs ICH7 et ICH8, mais il est important d'utiliser une valeur correcte de 'slot' PCI qui est facilement obtenue à partir de lspci.

Par exemple, en mode IDE, notez le slot qui est 0:1f.2 dans mon cas. En mode AHCI, cet emplacement semble changer.

lspci
...
00:1f.2 IDE interface: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [IDE mode] (rev 03)
...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X