Désactiver test RAM lors du Boot

r e m y

Membre vénérable
Club iGen
4 Novembre 2000
41 540
4 334
63
St Germain en Laye - FRANCE
Cherchant à réduire le temps de démarrage de mon MacBookPro, je cherche comment désactiver le test de la Ram à l'allumage (depuis que je suis passé à 8 Go, le temps avant apparition de la Pomme sur fond gris a sensiblement augmenté)

Je sais que ce test n'est pas sans importance, mais mes barrettes de RAM étant en place depuis plus de 6 mois sans problème, je me passerais bien de ce temps d'attente à chaque allumage.

Je n'ai pas retrouvé comment faire (seulement de très vieux messages applicables sur MacOS 9...)

Si quelqu'un retrouve l'info, je suis preneur.
Un grand merci d'avance!

:up:

(Nota pour les modérateurs: j'ai placé ce sujet dans MacOS X plutôt que Mac portables car ça concerne tout type de Mac tournant sur MacOS X même si dans mon cas c'est sur un MacBookPro que je veux appliquer la solution)
 
Es-tu bien sûr que c'est la taille de la RAM qui allonge le délai de boot en raison de sa vérification ?

En cas de sortie d'hibernation, oui. Selon la marque des barrettes, peut-être. Mais la taille ?



Un démarrage en mode sans échec (pour nettoyer les caches de démarrage) ou un reset PRAM ne changent rien ?
 
Le temps d'attente avant l'affichage de la POmme sur fond gris, est bien proportionnel à la taille de la RAM installée (j'ai vérifié en enlevant une des 2 barrettes pour repasser à 4 Go)

Je pense qu'il y a un test sur l'ensemble des bancs mémoire et donc plus il y en a plus c'est long (un peu à l'image de l'Apple Hardware Test qui est d'autant plus long qu'il ya de RAM installée)

(et j'ai bien sûr purgé les caches, resetté la PRam...)
 
Mon iMac je ne l'éteins presque jamais (je le laisse en veille). Par contre le MacBook Pro je l'éteins toujours complètement (il est trop gourmand en énergie quand il est en veille. Il bouffe environ 1% de batterie par heure de veille!!!)

Donc quand je le rallume, c'est bien à chaque fois un démarage à froid.

Depuis que j'ai mis un SSD il ne met plus que 9 ou 10 secondes entre l'apparition de la Pomme et la saisie du mot de passe d'ouverture de session (contre plus de 40secondes avec le disque dur).
J'ai retrouvé la vitesse de démarrage qu'il avait du temps de SnowLeopard (il tourne maintenant avec Lion)

Du coup, les 8 secondes entre l'appui sur le bouton d'allumage et l'apparition de la POmme me semblent une éternité! (4 secondes seulement quand je ne laisse qu'une barrette de 4 Go)

Si je pouvais supprimer ce temps ce serait génial.

Par contre, si c'est en ROM, ça risque d'être impossible de le modifier
(sous MacOS 9 c'était une option directement accessible via le tableau de bord Mémoire)
 
Et la pomme met aussi 8 secondes à apparaître au redémarrage à chaud de ton MBP ?

non, en cas de redémarrage à chaud (que je fais rarement sauf suite à certaines installations ou mises à jour), c'est instantané
 
Oui j'en ai bien l'impression.... tant pis et merci de ton aide :up:
 
:coucou: remy!

[M'enfin! Tu te sens tellement pressé de re-démarrer la vie virtuelle? :D - Inversement, je trouve qu'avoir un Mac qui prend tout son temps au démarrage me ménage une espèce de 'pause préliminaire', comme lors de ces faux-départs des courses de sprint, si bien qu'une fois en prise avec l'espace informatique, je vais garder la rémanence de ce délai en une sorte d'imperceptible distance_aux_processus. Un 'n'y_pas_être' où je respire en liberté. <Te connaissant plein d'humour, je sais que tu prendras cette 'profession-de-foi' cum grano salis :)>]

&#9099;

Indépendamment des questions de préférences personnelles que je viens de mettre entre parenthèses au démarrage :D, le problème que tu soulèves est intéressant in se & per se.

Je pense que le réglage que tu souhaitais, possible sur les ordinateurs faisant tourner Mac OS 9, est indisponible avec les Macs Intel supportant OS X. Car la vérification_mémoire fait partie du POST (Power-On-Self-Test) qui est inscrit dans la Boot_ROM stockée sur la Carte-Mère. Je ne vois pas comment on pourrait interférer dans cet automatisme.

Maintenant, ta conjecture que l'augmentation du nombre de barrettes RAM rallonge sensiblement le temps du POST me surprend. Car l'exécution du POST est tout ce qu'il y a de plus rapide sur un Mac. Mais peut-être y a-t-il divergence d'interprétation du processus de boot - par quoi j'entends la façon de mettre en corrélation la succession des «phénomènes sensibles» (sons de démarrage et affichages à l'écran) avec l'«enchaînement réel» (ce qui se passe effectivement derrière ces signaux)? [C'est d'autant plus possible, que la «chose en soi» échappe à l'«expérience» et n'est l'objet que de conjectures, comme le martèle le vieux Kant qui à n'en pas douter aurait été ravi par la contemplation d'un Mac en lequel il aurait vu une preuve du bien-fondé de sa théorie critique :D]

&#9099;

Je me jette alors à l'eau à mes risques et périls, en délivrant ma vision schématique du déroulement. Ayant un MacBook Pro_Early 2011, 8 Go de RAM d'usine, avec un DDI (pas de SSD), donc un engin qui me permet de respirer tranquillement tout le temps du démarrage :D, j'ai noté au chronomètre les temps correspondants aux signaux sensibles lors du démarrage [Comme je fais partie de ceux que le 'Chime' (carrillon de démarrage) horripile, normalement il est neutralisé puis le son restauré à l'ouverture de session grâce à un jeu de LogoutHook et de LonginHook. Afin de pouvoir noter le temps d'intervention du 'Chime', j'ai donc détruit provisoirement mes 'hameçons' - que je ne manquerai pas de reconstituer ultérieurement, je te rassure :D.]

-a) Appui du bouton 'Power' &#8594; signal sonore du test du Super-Drive = 0"
-b) Chime &#8594; écran clair = 2,5"
-c) Écran gris + Pomme seule = 6,5"
-d) Écran gris + Pomme + roue crantée giratoire = 12"
-e) Écran gris + Pomme seule da cappo = 26"
-f) Fenêtre de Login = 38"​

[Je te fais grâce du lent processus de chargement de ma session d'utilisateur, grevé par une foultitude d'applications activées au démarrage. En moyenne, donc, à partir de l'instant 0 où j'appuie sur le bouton 'Power', il faut 38" pour que la fenêtre de Login s'affiche, et 2' 30" en tout pour que ma session d'utilisateur soit exhaustivement chargée, soit 1' 52" de chargement de mon espace d'utilisateur (:D)]

&#9099;

Maintenant, voici mon interprétation :

- de a) à b) : exécution du POST dont le signal de démarrage = celui du test du Super-drive, et le signal de complétion est le Chime. Temps : 2,5". Je ne vois pas que mes 8Go de RAM fasse traîner quoi que ce soit. L'affichage de l'écran clair sans logo, juste après le Chime : l'EFI_Boot, après exécution du POST, vient de trouver le 'Booter_File' dont le chemin est stocké en NVRAM : il s'agit du fichier boot.efi (System/Library/CoreServices) de l'OS installé sur le disque interne (en cas de boot régulier).

- de b) à c) (pomme seule) : exécution du booter (comme tu peux voir, ça prend étrangement du temps sur mon Mac non customisé = 4"!).

- de c) à d) (pomme roue crantée) : chargement du kernel et des KEXTs à l'initiative du booter = 5,5"

- de d) à e) (pomme seule da cappo) : exécution du processus launchd (principalement) = 14"

- de e) à f) (LoginWindow) : exécution du processus WindowServer = 12"

- f) (fenêtre de Login) : espace d'utilisateur prêt à être chargé (38" au total à partir du démarrage).​

&#9099;

Il y a donc une étrangeté dans l'ensemble de ce déroulement, c'est le temps réclamé par le booter : boot.efi pour exécuter son programme (les limites signalées de son processus sont : en amont = Écran clair juste après Chime ; en aval = Écran gris + Pomme seule).

C'est ici que je placerais une conjecture (dont je suis fertile :D) : le booter ne va pas directement au chargement du kernel et des kexts, mais il prend le temps d'un détour par private/var/vm (notamment) histoire de vérifier le statut de la sleepimage. Ce qui me le fait dire, c'est que quand je fais le test de démarrer à partir d'un état d'hibernation stricte (hibernatemode 1) commandé dans le «Terminal» - hibernation qui est une véritable extinction du Mac, avec re-démarrage obligé sur EFI_ROM_Boot et donc exécution du POST et lancement du Booter - l'instruction stockée d'activation logicielle est celle de relancer les processus à partir de la lecture de la sleepimage strictement et rigoureusement. Dans ce cas de figure, après l'exécution du POST (= 2,5"), il ne faut que 2" au Booter pour activer la relance des processus à partir de la sleepimage - ce qui se signale par l'affichage à l'écran d'un filigrane laiteux du Bureau de la session active. À partir de quoi, il faut 9" à mon Mac non customisé pour avoir complété l'exécution des processus à partir de la sleepimage . Je re-démarre donc, en sortie d'hibernation qui est donc une extinction du Mac (et aucunement un 'sommeil') en exactement 14'.

Je conjecturerais donc, sur ton Mac, que la différence de la RAM ne conduit pas notablement à une augmentation du délai du POST, mais à une augmentation du délai d'exécution du Booter (boot.efi) par l'augmentation du volume des données stockées dans la sleepimage dont le Booter assurerait la vérification avant déclenchement du chargement du kernel et des kexts, même si tu n'es pas en option hibernatemode 1, mais je le présume en option par défaut hibernatemode 3 = 'SAFE_SLEEP'.

[La possibilité tout à fait étrange d'un re-démarrage complet sur un Mac non customisé en exactement 14" à partir de l'état d'hibernation (qui est une véritable extinction et pas un 'sommeil'), càd. par instruction au Booter de booter logiciellement à partir de la sleepimage, par contournement donc de la tâche de chargement préalable du kernel et des kexts, ne paraît envisageable qu'avec une architecture_noyau non strictement monolithique.]

&#9099;
 
Je ne vois pas ce qu'il y a de surprenant à ce que le démarrage soit plus long avec plus de RAM.

Il y a balayage (rapide certes) de chaque octet de la RAM au démarrage, plus il y en a plus ce balayage est "long".

De la même manière sur un PC, c'est observable facilement puisqu'on voit le défilement de ces octets.

Maintenant, ça doit couter 2 secondes grand max.
 
C'est bien de b) à c) que j'ai 8 secondes avec 8 Go installés et 4 secondes avec 4 Go installés (et 0seconde lorsque je fais un simple redémarrage et pas un démarrage à froid après une extinction totale)

Je pensais que c'étais durant ce temps que le test POST était effectué mais effectivement il semble que le test POST se fasse avant de chime d'allumage...

Cette phase d'execution du booter est donc allongée lorsqu'il y a plus de RAM.

Ton hypothèse liée à une action quelconque sur le fichier de sleepimage est intéressante et je vais creuser. Car effectivement étant en hibernate_mode 3, ce fichier existe bien et est bien 2 fois plus volumineux si la RAM est doublée.

Je vasi changer de mode d'hibernation, vérifier la suppression du sleepimage et mesure l'impact sur le temps d'allumage.

Je reviens dès les tests effectués (si vous ne me voyez pas revenir appelez les Genius du Bar MacG svp!)
 
Bon ben après avoir fait quelques tests (passage en hibernatemode 0, suppression du fichier sleepimage et vidage de corbeille avant d'éteindre puis refaire un démarrage), ce n'est pas probant.

Dommage...

Bon ben je vais arrêter là les recherches.

Merci à tous!

(bon je ne vais pas mettre Résolu sur cette discussion.... faudrait pouvoir mettre "Abandon", ou encore "Question conne")
 
Ce qui serait intéressant, dans le cadre de l'hibernatemode 3 (= 'SAFE SLEEP' par défaut, où il y a écriture des contenus de la RAM dans la sleepimage du Disque Interne avant toute mise en sommeil - ce, à côté de la préservation de la RAM 'On_Power' pendant le sommeil), c'est que tu fasses 2 tests de démarrage, l'un avec 4 Go de RAM (en étant bien sûr que ta sleepimage corresponde - genre démarrage en 4 Go, bennage de l'ancienne sleepimage, mise en sommeil par rabat du couvercle du Mac le temps que l'écriture au Disque soit exécutée, réveil, extinction, re-démarrage afin d'être bien sûr) ; et l'autre avec 8 Go de RAM (et sleepimage correspondante) [ai-je parlé d'ascèse estivale? :D]

Ce, pour voir s'il y a des différences de durée de la phase propre au 'Booter' (entre le signal 'écran clair' juste après le 'Chime' et l'apparition du premier écran gris avec 'Pomme' seule (le problème étant qu'il y a des foules d'actions qui s'exécutent à chaque phase du démarrage).


Sinon, si tu cherches à gagner du temps, pourquoi ne pas utiliser l'hibernatemode 1 = hibernation stricte? Pour cela, après

Bloc de code:
sudo pmset -a hibernatemode 1

au lieu d'éteindre ton Mac avec le bouton 'Power', tu rabats le couvercle tout simplement. Après le temps d'écriture des contenus de la RAM à la sleepimage du DI (signalé tout du long par le voyant lumineux fixe à la tranche avant du Mac), ton Mac est 'OFF_POWERED'. Donc ton réquisit de non-consommation de la batterie est satisfait. À partir de là, quand tu re-démarres (tu relèves le capot du Mac et tu presses le bouton 'Power'), est-ce que ça va plus vite dans l'absolu (du 'Power_on' à la session active)?

[Un fanatique de la protection des données protesterait, car il n'y a pas de LoginWindow : ça passe directement de l'EFI à la session ouverte via Booter &#8594; lecture sleepimage. Un fanatique de la sûreté de démarrage - peut-être le même? - piaulerait, car à supposer une corruption de la sleepimage, comment le Mac va-t-il bien pouvoir démarrer en sortie d'hibernatemode 1? Eh bien! il va carrément planter (ce n'est pas pour rien que l'hibernatemode 1 n'est pas accessible ne mode graphique sur les Macs). Il faudrait alors démarrer en Single User et passer les commandes au prompt qui permettent de sortir de l'impasse, genre sudo mount -u -w /, puis sudo rm /var/vm/sleepimage, et sans doute aussi vidage des caches de démarrage. Procédé exécutable en mode Target aussi. Enfin, bref - question 'sécurité' au sens large - assez problématique.]
 
Alors le DeepSleep pour éviter d'éteindre le MacBookPro, j'ai testé mais la phase de réveil (restauration de la Ram à partir du fichier SleepImage) est plus long qu'un démarrage complet ordinateur éteint...

Pour ce qui est des tests proposés, je les referai (de façon aussi approfondie que proposé), mais je peux te confirmer que de l'écran gris uniforme (après le chime) jusqu'à l'apparition de la pomme sur ce fond gris, il se passe 8 secondes avec 8 Go de RAM installée (les 2 barrettes) et seulement 4 secondes quand j'enlève une barrette (et qu'il ne reste donc que 4 Go)
Mais en y reflechissant, je pense que la taille du fichier sleepimage n'entre pas en ligne de compte car quand j'enlève une barrette, je gagne instantanément 4 secondes au démarrage suivant alors que le fichier sleepimage n'a pas (encore) été modifié (à l'extinction précédente il faisait 8 Go...)
 
Je me permet de faire un petit commentaire, et si la RAM que tu as mis ne serait pas plus lente que la RAM de base.
C'est possible de faire des test de RAM pour vérifier?
 
Je me permet de faire un petit commentaire, et si la RAM que tu as mis ne serait pas plus lente que la RAM de base.
C'est possible de faire des test de RAM pour vérifier?

J'ai fait un test en remettant les 2 barrettes de 2 Go d'origine.

Je retrouve les 4 secondes entre ecran gris et ecran gris avec pomme (comme avec une seule des nouvelles barrettes de 4 Go)

Bref, y a un truc sui se passe à ce niveau lié à la quantité de RAM installée, mais je ne sais pas encore quoi

Tant pis. Je laisse tomber
 
Je parle d'un test pour connaitre la vitesse de la RAM.
Peut être que la RAM que tu as ajouter n'est pas de bonne qualité et donc lente.
 
non pas de problème avec la RAM ajoutée
 
y a un truc qui se passe à ce niveau lié à la quantité de RAM installée, mais je ne sais pas encore quoi

Bizarre! - Vous avez dit bizarre? - Comme c'est bizarre! :D

Le bizarre, c'est que le test-RAM s'opère lors du POST par l'EFI-Firmware dans l'intervalle signalé en entrée par le test à vide du Super-Drive, et en sortie par le 'Chime'. C'est un procès tellement foudroyant que je ne crois pas que le nombre de barrettes introduise une variation temporelle. Chez moi, c'est 2,5". Tu dois pouvoir aisément vérifier si cette phase a des durées variables avec 4 Go vs 8 Go de RAM installée. Je ne crois pas une 'seconde' que tu constates une différence ici.

Le bizarre, toujours, c'est que la phase de démarrage qui succède - càd. de l'immédiat 'après-Chime' marqué par l'écran clair vide, jusqu'à l'apparition du l'écran gris avec Pomme seule - est celle du 'Booter' : l'EFI, qui a expédié la vérification du matériel (POST), trouve le chemin du fichier d'initialisation de l'OS stocké en NVRAM (succès marqué par l'affichage de l'écran clair vide) et lance son exécution. Il s'agit du fichier verrouillé par défaut boot.efi (/System/Library/CoreServices) qui a en charge le lancement (d'où son sobriquet de : 'Booter') des ressources logicielles préalable au chargement du kernel et des KEXTs.

----------​

C'est apparemment pendant cette phase que tu constates sur ton Mac une variation de durée du simple au double (4" vs 8") en fonction de la quantité de RAM installée (4 Go vs 8 Go). D'autant plus curieux que sur mon MacBook Pro qui a 8 Go de RAM installée, la phase du 'Booter' ne prend que 4". Elle devrait prendre 8" comme chez toi, si c'était fonction directe d'une RAM = 8 Go.

Et le problème, c'est bien qu'avec la phase du 'Booter' on a quitté la dimension 'Hardware' du démarrage, pour passer à la dimension 'Software'. C'est pour cette raison que j'avais émis la conjecture d'une vérification de la sleepimage, qui est comme une contrepartie 'fichier' de la RAM (des contenus de la RAM active lors de la session précéédente), et dont la taille varie comme celle de la RAM (8 Go de sleepimage pour 8 Go de RAM installée). Mais apparemment tes tests ne semblent pas avoir validé cette conjecture.

Déjà que je me demande, sur mon Mac, ce que ce damné 'Booter' peut bien 'ficher' pendant 4" au lieu d'enclencher illico le chargement du Kernel ; alors là, sur le tien, 8" - je trouve ça énorme (pas 'en soi' bien sûr, car 8" c'est rien ; ni même 'pour toi' non plus, car je mets ça sur le compte de ta 'hâte_à_démarrer' :D ; mais 'pour la tâche impartie').

----------​

Bien sûr, je ne suis jamais à cours de conjectures - le problème étant de ne retenir que les falsifiables expérimentalement parlant, sinon on n'est que dans le domaine d'hypothèses spéculatives. Donc c'est entendu - je pourrais toujours 'fictionner' que le noyau de nos Macs n'étant pas monolithique, le Kernel même qu'il s'agit de charger en fin de phase du 'Booter' pourrait bien être flanqué d'une constellation de 'micro-noyaux' dont certains seraient peut-être bien chargés en préalable pendant la phase du 'Booter' (avant le 'BLOC_CORE', donc). Lequels pourraient fort bien lancer des processus éclair côté 'hardware', ce qui permettrait de récupérer la variable_RAM. Je dois dire que la remarque de edd (:coucou:) à propos d'un scan des composants a fait son chemin souterrain dans mon imagination :D. Mais je ne vois certainement pas l'EFI en train de traîner là-dessus, plutôt donc un processus dans la phase du 'Booter'.

Le problème, là, c'est que c'est une idée purement spéculative, car je ne vois pas comment elle serait expérimentable [c'est le type de défaut que l'épistémologue Karl Popper trouvait pour sa part aux concepts de la Psychanalyse de Freud : à savoir, qu'il s'agissait d'idées non-falsifiables par des tests de l'expérience.].

Si 'abandon' il doit y avoir, concernant un solution du problème que tu as soulevé, ce serait faute de pouvoir vérifier donc les conjectures 'explicatives'. Reste, énigmatique, la bizarrerie de la corrélation : 'temps de Booter' / 'quantité de RAM' que tu as relevée.
 
Dernière édition par un modérateur: