IPB

Bienvenue invité ( Connexion | Inscription )

> Firmware Thunderbolt sur MBP 13" début 2011 [Résolu], Comment forcer la mise à jour du Firmware Thunderbolt
Options
jeanjd63
posté 1 Jan 2021, 23:31
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 11 698
Inscrit : 15 Nov 2007
Lieu : Auvergne-Rhône-Alpe.
Membre no 99 922



Bonjour à toutes et tous.
Et meilleurs vœux. smile.gif

J'ai récupéré cet été un MacbookPro 13" début 2011 HS et l'ai fait réparé.
Doté de 16 Go de Ram et d'un SSD, c'est (presque) un petit bolide.

Bref, ayant un DDE Lacie Thunderbolt dans lequel j'ai installé un SSD, j'ai tout de suite vu l'intérêt de son utilisation sur le MBP qui n'a que des connecteurs USB2. Malheureusement lorsque je l'ai connecté sur le MBP ..... rien.
Petite recherche sur le net et je suis rapidement tombé là-dessus : https://fr.ifixit.com/Réponses/Afficher/48...rking+correctly!

Super me dis-je et je télécharge le firmware "MÀJ du programme interne Thunderbolt v1.0" qui se cache ici : https://support.apple.com/kb/DL1407?locale=...iewlocale=fr_FR

Mais, lorsque je l'exécute la réponse est : “Cette mise à jour n'est pas nécessaire pour le port Thunderbolt de votre ordinateur.”

Alors que les infos Thunderbolt dans le rapport système montrent bien que j'ai l'ancienne version qui pose problème d'utilisation d'un disque Thunderbolt :

Citation
Bus Thunderbolt :

Nom du fournisseur : Apple Inc.
Nom du périphérique : MacBook Pro
UID : 0x0001000A156383E0
Chaîne de routage : 0
Version du programme interne : d.0
UUID du domaine : B6969003-5485-245E-8FED-2538703498FC
Port :
État : Aucun périphérique connecté
État du lien : 0x101
Vitesse : Jusqu’à 10 Gbit/s x2
Réceptacle : 1
Version du programme interne de Port Micro : 1.2.1


À l'époque mon MBP était sous High Sierra (depuis je l'ai passé sous Catalina "Patch Dosdude1"). En suivant les différents conseil du lien "iFixit" ci-dessus, j'ai installé sur ce Mac tous les systèmes depuis Snow Leopard jusqu'à High Sierra et à chaque fois les tentatives de mise à jour du Firmware se sont soldées par la même réponse :
“Cette mise à jour n'est pas nécessaire pour le port Thunderbolt de votre ordinateur.”

J'en ai conclu que ce Firmware avait été "loupé" par le précédent propriétaire et que la version actuelle du Firmware n'acceptait plus cette maj particulière qui était considérée comme obsolète.

Dommage.

Il faut dire que j'avais "tripoté" le pkg d'installation sans trouver grand chose et je m'étais fait une raison.

Dernièrement j'ai potassé un peu le cas des utilisateurs qui n'ont qu'un Mac, et ont effacé leur disque sans avoir au préalable créé une clé d'installation, et ils sont nombreux smile.gif

Cela pose un problème, car parfois, même en démarrant en mode Recovery Internet il est impossible de récupérer Mac Os X (Pas D'apple ID ou autre).
Par contre il est simple depuis une machine Windows ou Linux de récupérer un installateur El Capitan ou Yosemite qui se présentent sous la forme d'un dmg contenant un pkg.
Apple les fournit ici : https://support.apple.com/fr-fr/HT211683

J'ai gratté un peu et trouvé comment depuis le mode Recovery, avec ce dmg on peut créer un média d'installation sans trop d'efforts biggrin.gif
Si certains sont intéressés par la méthode de création d'un support d'installation Mac Os X depuis le mode Recovery, je ferai un petit tuto là dessus.

Et c'est là qu'une loupiote s'est éclairé dans mon cerveau (ça faisait longtemps laugh.gif ) : cette méthode pour un pkg d'installation m'a permit d'explorer le pkg du firmware et de trouver comment éviter les contrôles du système qui empêchaient à tort cette mise à jour.

Voici comment j'ai pu, avec succès forcer l'installation du Firmware Thunderbolt.

excl.gif Attention tout de même : j'étais sûr que ce Firmware était adapté à mon MBP et qu'il n'allait pas tout casser du moins pour cause de matériel incompatible, car il y a un gros risque si on ne sait pas trop ce que l'on fait de transformer le Mac en brique.

Bref voici le déroulé des opérations :

J'ai ouvert l'image ThunderboltFirmwareUpdate.dmg et collé sur le Bureau le paquet ThunderboltFirmwareUpdate.pkg

Ensuite, depuis le terminal, j'ai extrait le contenu du pkg dans un répertoire toujours sur le Bureau

Code
pkgutil --expand ~/Desktop/ThunderboltFirmwareUpdate.pkg ~/Desktop/Firm_Thunderbolt


Ce qui produit la structure suivante dans le répertoire Firm_Thunderbolt sur le Bureau :

Citation
drwxr-xr-x@ 7 jean staff 224 1 jan 09:28 21.5-inchiMacThunderboltFirmwareUpdate.pkg
drwxr-xr-x@ 7 jean staff 224 1 jan 09:27 27-inchiMacThunderboltFirmwareUpdate.pkg
-rwxr-xr-x@ 1 jean staff 28896 4 avr 2012 Distribution
drwxr-xr-x 24 jean staff 768 31 déc 07:38 Resources
drwxr-xr-x@ 7 jean staff 224 31 déc 07:39 ThunderboltFirmwareUpdate.pkg

Le paquet/répertoire qui m'intéresse ici est ThunderboltFirmwareUpdate.pkg
Les autres sont soit pour l'iMac, soit ne servent pas dans mon cas.

Donc je me positionne dans le répertoire ThunderboltFirmwareUpdate.pkg

Code
cd ~/Desktop/Firm_Thunderbolt/ThunderboltFirmwareUpdate.pkg


Et là voici la structure :

Citation
-rw-r--r--@ 1 jean staff 87688 4 avr 2012 Bom
-rw-r--r--@ 1 jean staff 500 4 avr 2012 PackageInfo
-rw-r--r-- 1 jean staff 84153 4 avr 2012 Payload
drwxr-xr-x 6 jean staff 192 31 déc 07:38 Scripts


Et la commande qui change tout :

Code
tar -xvf Payload

Qui décompacte l'archive Payload et renvoie

Citation
x .
x ./System
x ./System/Library
x ./System/Library/CoreServices
x ./System/Library/CoreServices/Firmware Updates
x ./System/Library/CoreServices/Firmware Updates/MacBookProTBUpdate10
x ./System/Library/CoreServices/Firmware Updates/MacBookProTBUpdate10/HPM-em-00020007.bin
x ./System/Library/CoreServices/Firmware Updates/MacBookProTBUpdate10/MBP-22-01.bin
x ./System/Library/CoreServices/Firmware Updates/MacBookProTBUpdate10/ThorUtil.efi


Et maintenant voici la nouvelle structure du répertoire :

Citation
-rw-r--r--@ 1 jean staff 87688 4 avr 2012 Bom
-rw-r--r--@ 1 jean staff 500 4 avr 2012 PackageInfo
-rw-r--r-- 1 jean staff 84153 4 avr 2012 Payload
drwxr-xr-x 6 jean staff 192 31 déc 07:38 Scripts
drwxr-xr-x 3 jean staff 96 4 avr 2012 System


Un répertoire System avec l'arborescence qui va bien a été créé par la commande tar et contient les bons firmwares.

Il ne reste plus qu'à coller le répertoire MacBookProTBUpdate10 dans la structure existante du Mac : /System/Library/CoreServices/Firmware Updates

Petit problème sur Catalina le système est monté en lecture seule..

Qu'à cela ne tienne :

Il faut déjà désactiver le SIP depuis le terminal du mode Recovery :
Code
csrutil disable


Petit aparté ne pas oublier après l'opération de "flashage", quand tout sera ok, de réactiver le SIP toujours depuis le mode Recovery avec la commande
Code
csrutil enable


Ensuite redémarrer normalement et passer la commande :
Code
sudo mount -rw /


Si on a redémarré le Mac, il convient de se repositionner dans la structure "Firmware" (Merci à ProfesseurBernie pour sa remarque jap.gif) :

Code
cd ~/Desktop/Firm_Thunderbolt/ThunderboltFirmwareUpdate.pkg


puis on colle le répertoire MacBookProTBUpdate10 qui contient le nécessaire pour l'installation du Firmware sur le Système.

Code
sudo cp -a  System/Library/CoreServices/"Firmware Updates"/MacBookProTBUpdate10 /System/Library/CoreServices/"Firmware Updates"


Ensuite il faut aller pécher la commande qui va permettre la mise à jour du Firmware.

Le script flashTBFirmware qui se trouve dans le répertoire Scripts/postinstall_actions/ va nous donner tout cela.
Il faut l'ouvrir avec un éditeur quelconque (textedit par exemple) et voici son contenu :

Code
#!/usr/bin/perl

####################################
my $targetVolume        = $ARGV[2];
my $FirmwareDirectory    = "/System/Library/CoreServices/Firmware Updates/MacBookProTBUpdate10/";
my $firmwareTool        = "ThorUtil.efi";
# yes this is secure
my $debug                = (-e "/tmp/com.apple.pkg.testing");

#####################################################################

#set NVRAM for tbft (<rdar://problem/9282793> Use Safe Mode for T29 updates (EPROM, Micros) to prevent PCIe unplug during update)
system("/usr/sbin/nvram tbt-options=%04");

# bless the firmware
my $retVal = system("/usr/sbin/bless",    "-mount", "/",
                            "-firmware", $FirmwareDirectory . "ThorUtil.efi",
                            "-payload", $FirmwareDirectory ."MBP-22-01.bin",
                            "-payload", $FirmwareDirectory ."HPM-em-00020007.bin",
                            "-options", "-o -ee -f efi-apple-payload0-data -em efi-apple-payload1-data");

debuglog("blessFirmware the result of the bless command is: $retVal");


########################################################
# always exit 0
exit 0;

########################################################
sub debuglog
{
    # $_[0] is the argument to debuglog
    system("logger -p install.info '$_[0]'") if ( $debug );
}


La partie qui nous intéresse est ici :


Code
# bless the firmware
my $retVal = system("/usr/sbin/bless",    "-mount", "/",
                            "-firmware", $FirmwareDirectory . "ThorUtil.efi",
                            "-payload", $FirmwareDirectory ."MBP-22-01.bin",
                            "-payload", $FirmwareDirectory ."HPM-em-00020007.bin",
                            "-options", "-o -ee -f efi-apple-payload0-data -em efi-apple-payload1-data");


Il s'agit de la commande bless qui va lors du prochain boot démarrer l'installateur du Firmware.

Il suffit de l'adapter pour créer la commande terminal qui va bien et qui se trouve ci-dessous :


Code
sudo bless -mount / -firmware /System/Library/CoreServices/Firmware\ Updates/MacBookProTBUpdate10/ThorUtil.efi -payload /System/Library/CoreServices/Firmware\ Updates/MacBookProTBUpdate10/MBP-22-01.bin -payload /System/Library/CoreServices/Firmware\ Updates/MacBookProTBUpdate10/HPM-em-00020007.bin -options "-o -ee -f efi-apple-payload0-data -em efi-apple-payload1-data"



J'avoue que je n'étais pas trop fier lorsque j'ai redémarré le Mac, mais j'ai rapidement vu la barre particulière de la mise à jour Firmware avancer et ensuite le Mac redémarrer et là j'ai branché le DDE Thunderbolt qui a été reconnu sans soucis.

Et voici maintenant les infos Thunderbolt :

Citation
Bus Thunderbolt :

Nom du fournisseur : Apple Inc.
Nom du périphérique : MacBook Pro
UID : 0x0001000A156383E0
Chaîne de routage : 0
Version du programme interne : 22,1
UUID du domaine : B6969003-5485-245E-8FED-2538703498FC
Port :
État : Aucun périphérique connecté
État du lien : 0x101
Vitesse : Jusqu’à 10 Gbit/s x2
Réceptacle : 1
Version du programme interne de Port Micro : 2.0.7


à comparer avec les anciennes.

Citation
Bus Thunderbolt :

Nom du fournisseur : Apple Inc.
Nom du périphérique : MacBook Pro
UID : 0x0001000A156383E0
Chaîne de routage : 0
Version du programme interne : d.0
UUID du domaine : B6969003-5485-245E-8FED-2538703498FC
Port :
État : Aucun périphérique connecté
État du lien : 0x101
Vitesse : Jusqu’à 10 Gbit/s x2
Réceptacle : 1
Version du programme interne de Port Micro : 1.2.1


Fin de l'aventure, merci d'être resté jusqu'à l'éclairage de la salle. biggrin.gif

Ce message a été modifié par jeanjd63 - 3 Jan 2021, 18:03.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
Guest_anonym_d019ede3_*
posté 2 Jan 2021, 00:47
Message #2





Guests






Bravo,

Lorsque tu parles d'un éditeur de texte comme Textedit t'es en mode Dev ou autre ? Car il me semblait qu'on nécessitait un éditeur plutôt du genre Textwrangler pour une réécriture du genre ?

Pour fouiller dans le package, Pacifist aurait-il pu faire aussi l'affaire (juste je me demande si pas plus simple ?) ?

J'ai pas trop compris le passage par Windows pour chopper des versions depuis Apple alors que tu agis depuis mac.

C'est pour pouvoir ensuite te faire un create install media ? Versions non dispo pour, sinon ?
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
2 utilisateur(s) sur ce sujet (2 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 25th June 2025 - 08:35