Exo-brain

Parce que j'ai un cerveau, mais pas trop.

Outils pour utilisateurs

Outils du site


it:hardware:mac

Apple : Mac

Faire redémarrer un Mac après une coupure de courant

1) Inspiré et traduit de l'anglais

J'ai pas trouvé cela très documenté, donc je rassemble les différents indices que j'ai trouvé concernant le fait de faire redémarrer votre Mac lorsque le courant est rétabli dans le système. Parfois appelé “mode serveur”.

Vous devez d'abord identifier sur quel chipset votre Mac fonctionne :

# lspci
 
00:00.0 Host bridge: NVIDIA Corporation MCP79 Host Bridge (rev b1)  
00:00.1 RAM memory: NVIDIA Corporation MCP79 Memory Controller (rev b1)  
00:03.0 ISA bridge: NVIDIA Corporation MCP79 LPC Bridge (rev b2)  
00:03.1 RAM memory: NVIDIA Corporation MCP79 Memory Controller (rev b1)  
00:03.2 SMBus: NVIDIA Corporation MCP79 SMBus (rev b1)  
00:03.3 RAM memory: NVIDIA Corporation MCP79 Memory Controller (rev b1)  
00:03.4 RAM memory: NVIDIA Corporation MCP79 Memory Controller (rev b1)  
00:03.5 Co-processor: NVIDIA Corporation MCP79 Co-processor (rev b1)  
00:04.0 USB controller: NVIDIA Corporation MCP79 OHCI USB 1.1 Controller (rev b1)  
00:04.1 USB controller: NVIDIA Corporation MCP79 EHCI USB 2.0 Controller (rev b1)  
00:06.0 USB controller: NVIDIA Corporation MCP79 OHCI USB 1.1 Controller (rev b1)  
00:06.1 USB controller: NVIDIA Corporation MCP79 EHCI USB 2.0 Controller (rev b1)  
00:08.0 Audio device: NVIDIA Corporation MCP79 High Definition Audio (rev b1)  
00:09.0 PCI bridge: NVIDIA Corporation MCP79 PCI Bridge (rev b1)  
00:0a.0 Ethernet controller: NVIDIA Corporation MCP79 Ethernet (rev b1)  
00:0b.0 IDE interface: NVIDIA Corporation MCP79 SATA Controller (rev b1)  
00:10.0 PCI bridge: NVIDIA Corporation MCP79 PCI Express Bridge (rev b1)  
00:15.0 PCI bridge: NVIDIA Corporation MCP79 PCI Express Bridge (rev b1)  
00:16.0 PCI bridge: NVIDIA Corporation MCP79 PCI Express Bridge (rev b1)  
02:00.0 VGA compatible controller: NVIDIA Corporation C79 [GeForce 9400] (rev b1)  
04:00.0 FireWire (IEEE 1394): LSI Corporation FW643 [TrueFire] PCIe 1394b Controller (rev 07)  

On cherche l'adresse PCI du bridge ISA. dans ce cas le mien est à 00:03.0 ISA bridge: NVIDIA Corporation MCP79 LPC Bridge (rev b2) . Malheureusement, le chipset MCP79 ne semble pas avoir beaucoup de documentation disponible au public. Faire un hexdump des registres renvoie quand même des trucs :

# lspci -s 00:03.0 -vvvxxxx
 
00:03.0 ISA bridge: NVIDIA Corporation MCP79 LPC Bridge (rev b2)  
    Subsystem: NVIDIA Corporation Apple iMac 9,1
    Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap- 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Region 0: I/O ports at 2000 [size=256]
00: de 10 ae 0a 0f 00 a0 00 b2 00 01 06 00 00 80 00  
10: 01 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
20: 00 00 00 00 00 00 00 00 00 00 00 00 de 10 79 cb  
30: 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00  
40: de 10 79 cb 00 00 d0 fe 00 00 00 00 00 00 00 00  
50: 00 00 00 00 00 5a 62 02 00 00 00 05 2f 00 3c 02  
60: 00 00 00 00 00 00 00 00 00 00 00 00 08 01 01 00  
70: 10 00 ff ff cd 00 17 00 00 00 44 59 00 00 00 00  
80: 00 00 00 00 00 00 00 00 00 00 40 03 ff 00 00 00  
90: 00 7c 00 00 ff ff 0f 00 00 00 00 00 00 00 00 00  
a0: 03 00 00 31 00 00 01 00 00 03 1f 03 00 07 ff 07  
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
d0: fd 00 00 00 00 00 00 00 f8 0c 00 fc 00 73 00 30  
e0: 83 24 00 2d ac 39 d5 5e 0a 60 da 40 00 00 00 00  
f0: 80 00 00 fc fd 00 00 00 10 00 80 80 00 00 00 00  

Si on a la chance d'avoir trouvé un datasheet, on peut déduire que le registre qu'on veut modifier est à 0x7b et est réglé par défaut sur 0x59. Ca veut dire que le mac ne s'allumera pas tout seul après une brusque mise hors-tension. En changeant cette valeur à 0x19, le Mac s'allumera tout seul à la mise sous tension !

setpci -s 00:03.0 0x7b.b=19

Malheureusement, la valeur n'est pas persistante, la prochaine fois que votre Mac redémarrera, il reviendra à l'ancien comportement. Il faudrait rajouter la commande setpci dans rc.local par exemple, afin qu'elle s'exécute à chaque démarrage.

Si vous n'avez pas un Mac Mini basé sur NVIDIA, voici les commandes équivalentes que j'ai trouvées pour accomplir la même chose. Je ne les ai pas testées, donc à vos de voir si ça convient à votre cas !

## MacMini PowerPC
echo server_mode=1 > /proc/pmu/options
 
## MacMini Intel
setpci -s 0:1f.0 0xa4.b=0
 
## MacMini nVidia
setpci -s 00:03.0 0x7b.b=0x19
 
## MacMini Unibody
setpci -s 0:3.0 -0x7b=20  

Evidemment, cette pratique ne s'applique pas qu'aux Macs, il suffit de fouiller un peu dans les datasheets des bridges si vous les trouvez

it/hardware/mac.txt · Dernière modification: 14 May 2021 :: 16:10 de CgX