
[GUIDE] DSDT annule la correction de l'erreur 12 eGPU – Installation de Thunderbolt Windows – Communauté de carte graphique externe
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:
Contenus
É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
Commentaires
Laisser un commentaire