Apple

[GUIDE] DSDT annule la correction de l'erreur 12 eGPU – Installation de Thunderbolt Windows – Communauté de carte graphique externe

Par Maximus , le 9 juin 2019 - 17 minutes de lecture

Raccourci de page: https://egpu.io/DSDT | dsdt



Guider: DSDT redéfinition Correction de l'erreur 12 eGPU (Windows uniquement)
[commencé[commencé[started[started[email protected] ]

ici Mac propriétaires S'il vous plaît travailler à travers ce fil pour résoudre l'erreur 12 avant de faire une substitution DSDT
ici remplacements DSDT pré-compilés – charger ou utiliser comme référence pour créer le vôtre

La définition d'un pont racine de table DSDT d'un système Windows (ACPI PNP0A08 ou PNP0A03) est généralement limitée à un espace réservé de 32 bits (inférieur à 4 Go), prévu pour être suffisamment grand pour héberger les périphériques PCIe de l'ordinateur. Une valeur TOLUD en filigrane est ensuite définie et verrouillée dans le microprogramme du système. Le système d'exploitation Windows respecte la définition du pont racine et y alloue les périphériques PCIe. macOS ignore les contraintes du pont racine, tout comme Linux lors de son démarrage avec le paramètre 'pci = noCRS'. Aucun de ces systèmes d'exploitation ne nécessite un remplacement par DSDT et peut allouer librement dans le vaste espace d'adressage PCIe 64 bits.

Lors de la mise à niveau d'une eGPU, un erreur 12 (ce périphérique ne peut pas trouver assez de ressources libres qu'il peut utiliser) peut arriver contre un eGPU dans le gestionnaire de périphériques de Windows, le rendant inutilisable. Cela peut indiquer que l'espace d'adressage 32 bits disponible est insuffisant pour héberger l'eGPU. Un eGPU nécessite un espace de configuration PCIe relativement important. Réduire TOLUD en réduisant la RAM à 2 Go offre une solution de contournement peu pratique. Plutôt, la solution définitive est ci-dessous.


Cette solution en trois étapes supprime la contrainte d’allocation PCIe 32 bits de Windows afin de résoudre l’erreur 12 de l’eGPU:

Étape 1. Créez un fichier DSDT dsdt-modified.aml avec un pont racine 36 bits

Étape 2. Chargez votre fichier dsdt-modified.aml en tant que substitution de registre ou substitution en mémoire.

Étape 3. Confirmez le succès avec une zone "Grande mémoire" dans le Gestionnaire de périphériques.

utilisateurs macOS: reportez-vous plutôt au message de Mikeal qui couvre ces étapes intitulé Windows 10 – Mémoire Clover DSDT prioritaire [UEFI Windows on Macbooks only].


Étape 1. Créez un fichier DSDT dsdt-modified.aml avec un pont racine 36 bits

je. Téléchargez et installez les outils requis:

ii. Copiez le compilateur ASL de WDK dans le répertoire c: dsdt. Faites cela en ouvrant Invite de commande (exécuter en tant qu'administrateur) puis copier et coller les commandes ci-dessous.

mkdir c:  dsdt
c: & cd  dsdt
set 64bit_OS_asl = "C:  Fichiers de programme (x86)  Kits Windows  10  Tools  x64  ACPIVerify  asl.exe"
set 32bit_OS_asl = "C:  Fichiers de programme (x86)  Kits Windows  10  Outils  x86  ACPIVerify  asl.exe"
copier / y% 32bit_OS_asl% c:  dsdt> nul & copier / y% 64bit_OS_asl% c:  dsdt> nul
sinon, c:  dsdt  asl.exe echo ERROR: échec de la copie de asl.exe dans c:  dsdt

iii. Videz vos tables ACPI dans des fichiers sur disque (dsdt.asl et dsdt.dat) avec ces commandes à Invite de commande (Exécuter en tant qu'administrateur). Le créé dsdt.asl est copié ici comme dsdt-modified.asl qui est utilisé plus tard pour faire les modifications requises.

c: & cd  dsdt
Acpidump -b -z
asl / u dsdt.dat
copier dsdt.asl dsdt-modified.asl

iv. Vous pouvez maintenant choisissez soit la méthode Intel ou Méthode Microsoft (avec bleu dsdt-modified.dsl ou magenta dsdt-modified.asl respectivement fichier de travail) pour générer un fichier dsdt-modified.aml, en essayant même les deux d’en maximiser le succès. Considérer:

– Pour les systèmes autres que Lenovo, utilisez la méthode Intel car leur DSDT porte généralement une signature de création Intel.

– Les Lenovo Thinkpad X220, T420, W530, T540P et probablement d’autres systèmes Lenovo Thinkpad de 2e et 4e générations nécessitent la méthode Microsoft. La méthode Intel provoque une "ACPI BIOS ERROR" au démarrage de Windows.

OPTION 1: Utilisez le Méthode Intel

je. Enregistrez ce fichier >> refs.txt << dans votre dossier c: dsdt. A quoi cela sert? De tonymacx86: Le désassembleur iasl tentera de deviner le nombre d'arguments [for unresolved symbols not defined in any file] mais souvent devine mal. Vous pouvez le corriger en fournissant les déclarations externes dans un fichier texte refs.txt.. Il contient des symboles manquants courants (et moins courants). . .

ii. À partir de l'invite de commande (admin), décompiler dsdt.dat comme dsdt.dsl . Le fichier refs.txt est utilisé ici. dsdt.dsl est ensuite copié comme dsdt-modified.dsl sur lequel nous allons faire les changements nécessaires.

c: & cd  dsdt
iasl -da -dl -fe refs.txt dsdt.dat
copier dsdt.dsl dsdt-modified.dsl

iii. Avec Notepad ++, ouvrez le résultat c: dsdt dsdt-modified.dsl classer et rechercher ResourceProducer. En dessous, il y aura une série d'entrées de ressources "DWordMemory". Sous le dernière entrée DWordMemory dans ce domaine, généralement au-dessus de la méthode _CRS, ajoutez un 'QWordMemory' (64 bits) entrée comme montré en rouge au dessous de. La plage choisie se situe dans la plage 36 bits (<64 Go) afin de maintenir la compatibilité avec Windows 32 bits compatible PAE. Un emplacement supérieur à 48 Go a été choisi pour résoudre les problèmes liés aux systèmes équipés de 32 Go. Nous utilisons ici entre 48,5 Go et 56,25 Go. Une fois que les systèmes commenceront à livrer avec 64 Go de RAM, il faudra réviser cette adresse pour utiliser une adresse 64 bits.

DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, Lire écrire,
   0x00000000,         // granularité
   0x000A0000,         // Plage minimum
   0x000BFFFF,         // Plage maximum
   0x00000000,         // décalage de traduction
   0x00020000,         // longueur
   ,, , AddressRangeMemory, TypeStatic)
QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, Lire écrire,
   0x0000000000000000, // granularité
   0x0000000C20000000, // Range Minimum, réglez-le sur 48,5 Go
   0x0000000E0FFFFFFF, // Range Maximum, réglez-le sur 56,25 Go
   0x0000000000000000, // décalage de traduction
   0x00000001F0000000, // Longueur calculée par Range Max - Range Min.
   ,, , AddressRangeMemory, TypeStatic)
})
   
   
   
   Méthode (_CRS, 0, sérialisée) // _CRS: paramètres de ressources actuels

iv. Créer un dsdt-modified.aml fichier . Le '-ve' désactive les messages d'avertissement.

c: & cd  dsdt
iasl -ve modifié par dsdt.dsl

Il est peu probable que cela réussisse du premier coup car le compilateur est très strict. Les erreurs signalées devront être examinées avec Notepad ++ sur la ligne sur laquelle elles se produisent. Recherchez un mot clé d'erreur unique dans votre dsdt-modified.dsl ligne d'erreur dans dsdt-modified.asl (cela peut paraître un peu différent) et il suffit d’échanger les lignes dessus / dessous dans votre dsdt-modified.dsl déposer et compiler. Cela suffisait pour obtenir une substitution de Macbook Pro DSDT 15 "Dell XPS 9350, Dell E6540, 2016 parfaitement exécutée.

Si vous êtes bloqué, consultez le référentiel DSDT public précompilé de eGPU.io pour divers systèmes. S'il en existe un pour votre système, vous pouvez le télécharger avec Winmerge pour fusionner les modifications de fichier dans votre répertoire. dsdt-modified.dsl fichier de travail. Il y a aussi d'autres correctifs comme décrit à [Guide] Mise à jour des DSLT / SSDT LAPTOP (tonymacx86). Envisagez également de demander conseil à la DSDT-centric tonymacx86.com forums DSDT. Ensuite, essayez à nouveau de compiler votre DSDT.

v. Passez à l'étape 2 pour charger votre fichier dsdt-modified.aml.

OPTION 2: Utilisez le Méthode Microsoft

je. Avec Notepad ++, trouvez la zone de travail dans votre c: dsdt dsdt-modified.asl fichier comme indiqué dans les captures d'écran ci-dessous. Dans ce domaine, faire les deux modifications suivantes. Ceux-ci sont annoncés dans ces captures d'écran.

EDIT 1: utiliser le calcul de Windows en mode programmeur pour ajouter hexidécimal 2E (46 décimales) à votre "Tampon (valeur) "ligne. Exemples:

  • "Tampon(0x1C0) "devient" Buffer (0x1EE) "
  • "Tampon(0x1D4) "devient" Buffer (0x202) "


EDIT 2
: remplacez "0x79, 0x00" dans la table hexagonale par les 46 valeurs hexagonales suivantes, se terminant également par "0x79, 0x00". Cela ajoute le même 36 bits QWordMemory entrée de ressource affichée dans la méthode Intel mais sous forme de table hexadécimale.

[ copy-and-paste this table ]

0x8a, 0x2b, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0c, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0x0f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x79, 0x00   

Pour les systèmes Lenovo [ CLICK on images to zoom ]

Pour d'autres systèmes [ CLICK on images to zoom ]

ii. A l'invite de commande (admin), compiler votre dsdt-modified.asl fichier pour générer un fichier dsdt-modified.aml:

c: & cd  dsdt
asl /Fo=dsdt-modified.aml dsdt-modified.asl

Cela ne permettra presque certainement pas de générer un fichier dsdt-modified.aml lors de votre première tentative de compilation en raison de lignes d’erreur nécessitant une modification ultérieure de votre fichier. dsdt-modified.asl fichier, comme ceux ci-dessous (autre exemple ici), suivi d’une autre tentative de compilation. Une compilation réussie avec de nombreux avertissements est OK.

– ATMC() – error: ATMC n'est pas une méthode -> permutez ATMC avec _SB_.PCI0.LPC_.EC __. ATMC ()
Zéro – erreur: type de terme ASL inattendu -> ajouter 'zéro' comme argument entre parenthèses à la ligne au-dessus, par exemple: GLIS (zéro)
Arg0 – erreur: type de terme ASL inattendu -> ajouter 'Argo0' comme argument entre parenthèses à la ligne au-dessus, par exemple: GDCK (Arg0)

iii. Ouvrez c: dsdt avec l’explorateur Windows. Comparez la taille de votre fichier dsdt-modified.aml créé avec la mémoire vidée en mémoire dsdt.dat. Leur taille devrait être comprise entre +/- 10%. Sinon, répétez le processus ci-dessus pour vous assurer qu'aucune erreur n'a été commise.

Un HP Elitebook 8440P a vu le fichier dsdt-modified.aml généré ne représentant que 15% de la taille de la mémoire générée par dsdt.dat. Là, ce processus n'a tout simplement pas fonctionné. Dans de tels cas, utilisez plutôt la méthode Intel.

iv. Passez à l'étape 2 pour charger votre fichier dsdt-modified.aml.

Étape 2. Chargez votre fichier dsdt-modified.aml en tant que substitution de registre ou substitution en mémoire.

OPTION 1: Chargez votre fichier dsdt-modified.aml en tant que remplacement du registre avec le mode de signature de test Windows activé

Ici, nous chargeons votre fichier dsdt-modified.aml en tant que substitution de registre DSDT dans le registre Windows. Notez qu'un fichier dsdt-modified.aml non valide chargé de cette manière peut provoquer un BSOD au démarrage. De plus, Windows mode de signature de test peut être problématique pour la compatibilité des applications. Vous pouvez éviter ces deux problèmes en utilisant l'OPTION 2: Évitez le mode de signature de test. Chargez votre fichier dsdt-modified.aml en tant que substitution DSDT en mémoire.

je. À l'invite de commande (admin) tapez ce qui suit. WDK contenant asl.exe doit être installé à l’étape 1 (i) et (ii) pour que cela fonctionne.

c: & cd  dsdt
asl /loadtable dsdt-modified.aml  

ii. Activez le mode TESTSIGNING pour que le remplacement de registre s'applique. Au Invite de commande (admin) type:

bcdedit -ensemble    TESTSIGNING ON

Si vous obtenez une erreur comme ci-dessous, désactivez SECURE BOOT dans votre BIOS.

Une erreur s'est produite lors de la définition des données d'élément
La valeur est protégée par la stratégie de démarrage sécurisé et ne peut être ni modifiée ni supprimée.

iii. Redémarrez votre système et vérifiez la "grande mémoire" à l'étape 3.

OPTION 2: Amode de signature de test vide – load votre dsdt-modified.aml en tant que substitution DSDT en mémoire

Nous évitons ici le mode problématique de remplacement du registre et de signature de test en chargeant le DSDT en tant que substitution en mémoire avant le chargement de Windows avec ces étapes:

je. Désactivez le mode de substitution DSDT du registre précédent et testez le mode de signature.

bcdedit -ensemble    TESTSIGNING OFF

ii. vérifiez si vous utilisez un Installation de MBR ou UEFI Windows en consultant Gestionnaire de périphériques-> Lecteurs de disque->[double-click boot drive]-> Volumes-> Populate-> Style de partition. Si le message "MBR" est indiqué, il s’agit d’une installation de MBR. S'il indique "GPT", il s'agit d'une installation UEFI. Cela déterminera la prochaine étape à appliquer.

iii.[[[[Mode MBR ]Chargez le fichier dsdt-modified.aml en tant que substitution en mémoire via la configuration 1.35 de DIY eGPU de nando dans le prochain article.

iv.[[[[Mode UEFI]Chargez le fichier dsdt-modified.aml en tant que substitution en mémoire via le chargeur de démarrage Clover comme suit:


Mise à jour février 2019 >> Il est conseillé aux utilisateurs Mac d’utiliser l’automatisation eGPU EFI de @ goalque au lieu de Clover pour charger la substitution DSDT résultante afin d’éviter tout problème signalé ci-dessous. GRAND AVERTISSEMENT.

GRAND AVERTISSEMENT par nando4 >> @Goalque a correctement identifié que Clover charge une table DSDT dans le volume du micrologiciel et peut ainsi brider un Macbook comme cet utilisateur l'a trouvé. Si vous continuez à utiliser Clover pour faire un DSDT, vous le ferez à votre place. posséder risque!! Pour les utilisateurs à faible risque, il est suggéré de simplement remplacer le registre DSDT par le mode de signature test de Windows et de le persévérer jusqu'à ce que d'autres solutions soient trouvées et présentées.


– Montez votre volume EFI en tant que lecteur et sauvegardez votre fichier EFI BOOT BOOTX64.efi existant. A l'invite de commande (admin), tapez:

mountvol s: / s
copier s:  EFI  BOOT  BOOTX64.efi s:  EFI  BOOT  BOOTX64.win

– Téléchargez le fichier ISO Clover et installez-le en extrayant avec le fichier 7-zip (64 bits uniquement) le dossier clover.tar.lzma-> clover.tar-> clover.pkg -> EFI dans le dossier s: EFI. Veillez à utiliser l'interface 7-zip pour extraire le lecteur s: car l'explorateur Windows refuse d'autoriser l'affichage du volume s: EFI.

– Copiez votre fichier dsdt-modified.aml en tant que dsdt.aml dans s: EFI CLOVER ACPI Windows, le répertoire que Clover utilise pour le précharger. Si votre fichier source dsdt-modified.aml ne se trouve pas dans c: dsdt, utilisez cette solution de contournement pour le copier-coller. Localisez votre fichier dsdt-modified.aml avec l'explorateur, cliquez dessus avec le bouton droit de la souris, renommez-le en dsdt.aml, cliquez avec le bouton droit de la souris, copiez. Appuyez ensuite sur CTRL + ALT + SUPPR, gestionnaire de tâches, Fichier-> Nouvelle tâche. Explorez le répertoire s: EFI CLOVER ACPI WINDOWS et collez-le à cet emplacement.

Sinon, à l'invite de commande, tapez:

copier c:  dsdt  dsdt-modified.aml s:  EFI  CLOVER  ACPI  WINDOWS‌  dsdt.aml

– Redémarrez via Clover -> Menu Windows EFI et passez à l’étape 3 pour confirmer son bon fonctionnement.

Étape 3. Confirmez le succès avec une zone de «grande mémoire» dans le Gestionnaire de périphériques.

Vérifiez que vous avez maintenant un nouveau Grande mémoire comme indiqué ci-dessous pour confirmer que votre fichier dsdt-modified.aml a été un succès:

nando4 – HP ZBook 17 G2 + AKiTiO Thunder2 + GTX970. SUCCÈS! Alloué le eGPU dans un espace de 36 bits.
Mikeal – 2016 15 "Macbook Pro + Razer Core + GTX1070. RÉUSSITE! L'affectation de l'eGPU dans un espace 36 bits.
theitsage – 2016 13 "Macbook Pro + AKiTiO Thunder3 + GTX980Ti. RÉUSSITE! L'eGPU a été alloué dans un espace de 36 bits.
batist – 2013 15 "Lenovo T540 + EXP GDC + GTX680. SUCCÈS! Allouez l'eGPU dans un espace 36 bits.

1. J'ai toujours une erreur 12 avec la zone 'grande mémoire' présente. Comment puis-je le réparer?

Si Win10 n'alloue pas automatiquement votre eGPU dans l'espace 36 bits et continue à observer l'erreur 12, vous disposez de plusieurs options:

je. [MBR/Legacy boot – not UEFI] Forcer l'allocation de l'eGPU dans un espace PCI 36 bits Avant de démarrer Windows avec le logiciel DIY eGPU Setup 1.35 de nando:

  • Dans le menu de démarrage de Windows, sélectionnez Setup 1.35
  • Configuration de démarrage 1.35 -> basée sur les menus
  • Sélectionnez le compactage PCI-> Endpoint = 56,25 Go (36 bits)
  • Sélectionnez Compaction PCI-> Exécuter compact. Lorsque vous êtes invité à définir l'étendue, sélectionnez eGPU.
  • Sélectionnez Chainloader-> Test Run
  • Dans le menu de démarrage de Windows, sélectionnez Windows.

Votre résultat sera alors identique à celui présenté à l’étape 3 ci-dessus, mais vous aurez l’eGPU plutôt que le (exemple) dGPU HD8790M alloué dans un espace PCI 36 bits.

ii. Utilisez le bcdedit forcé possibilité de remplacer les fonctionnalités PCI Express avancées et d’utiliser le comportement PCI Express hérité, comme expliqué par Microsoft. madjester a confirmé cette erreur corrigée 12 sur 2015 13 "MBP après avoir effectué une substitution DSDT ici (merci!)

bcdedit.exe -set PCIEXPRESS FORCEDISABLE

iii. Re plug'n'play les appareils. Allez dans le Gestionnaire de périphériques -> Cartes vidéo, supprimez l'eGPU. Allez également dans Gestionnaire de périphériques -> Périphériques système et supprimez les entrées du port racine du PCI Express x.

Window devrait maintenant être assez intelligent pour ré-allouer l'eGPU dans un espace 36 bits après avoir réalisé que l'espace 32 bits était insuffisant pour l'héberger.

Vous pouvez aller plus loin et supprimer votre pilote eGPU NVidia / ATiAMD, redémarrer le système et le recharger. Cela peut aider aussi.

iv. D'ici:

  • Supprimez tous les périphériques dans le Gestionnaire de périphériques – Ressources en utilisant un espace mémoire important (Tous ceux avec une icône bleue – pas l'icône USB!)
  • Branchez à chaud l'eGPU (dans quelques minutes, l'eGPU sera utilisable sans erreur 12 et les autres appareils reviendront et recommenceront à fonctionner)
  • Tout devrait fonctionner

2. Comment puis-je désactiver le remplacement DSDT du registre?

La méthode la plus simple consiste à désactiver TESTSIGNING. Si votre système ne parvient pas à démarrer avec le remplacement DSDT en place, démarrez en mode sans échec et désactivez TEST SIGNING.

bcdedit -ensemble    TESTSIGNING OFF 

Supprimez le remplacement DSDT du registre:

c: & cd  dsdt
asl / loadtable -d dsdt-modified.aml

.. ou supprimer ce Clé DSDT dans le registre. Windows en créera une nouvelle dérivée de la table ACPI DSDT de démarrage du système lors du redémarrage:

HKEY_LOCAL_MACHINE  SYSTEM  ControlSetXXX  services  ACPI  Parameters  DSDT

* où XXX sont 001, 002, 003, etc.

et

HKEY_LOCAL_MACHINE  SYSTEM  CurrentControlSet  services  ACPI  Parameters  DSDT

Maximus

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.