Jump to content
EwinRacing Flash Series Gaming Chairs
Tech Inferno Fan

[GUIDE] DSDT override to fix error 12

Recommended Posts

Okay, this tweak definitely depends on the compiler you are using. The 2016 Intel AML compiler generates these buffer objects that seem to be defined constants in an array. This is normally named "ToPLD()," and is passed in instead of the older Buffer() functions instead. Therefore, I succeeded by first finding a 2012 copy of DSDTEditor which has IASL within the same directory. I also used the Version 4.0 of the Windows ASL program:

 

http://olarila.com/dsdt/DSDTEditor_Linux_Windows.zip

http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi

 

I used the interface of DSDTEditor to dump the DSDT info, and then did a test compile on the resulting decompiled .dsl file. Viola, same errors, but these were the older style and both were simply corrected by pressing "Fix Errors." The first item was fixed as defined above, and now I actually has Buffer() functions which were simply replaced with Package() functions instead.

 

I then plopped the QWord code within the appropriate section, and compiled it again. Then, I used the Windows ASL program to override the existing info, and rebooted. Finally, it works!

device.thumb.png.c07cc372f0bb3bc00b868f4

 

However, I then installed the express card adapter, restarted, and then was hit again with the ACPI blue screen issue. Therefore, it seems like the ACPI info I patched was specific only to current devices installed, and once the BIOS adds the GPU in, Windows no longer works with the other patched ACPI info.

 

If I remove the card and reboot (with last safe configuration,) I get back into Windows no issue with the device manager as shown above. Maybe there is an issue with installing something like a GTX 770 (such as the 2GB of memory on it that needs to be mapped?) So close...

 

Update: I finally got it working. You absolutely cannot boot up with the GPU attached as this always causes ACPI bluescreens. However, while I also had issues with hotplugging at first, I figured it out.

 

Initially, when I plugged the Expresscard in when in Windows, it would just sit there with the fan at full blast, and no GPU detected anywhere. Some posts mentioned vague yammering of a missing 3.3v connection, but as I had an ATX PSU installed (Seasonic SS-600ET,) this didn't make much sense at all as the ATX connector went right to the PSU. However, I hotplugged it in another time, and then proceeded to unplug a fan going to the PSU. It went off completely.

 

This seemed odd to me, and almost seemed like the PSU didn't have enough load on it (or the boot sequence wasn't properly initialized for the ATX standard.) Therefore, I just overrode the power on jumper on the P4C, and attached it to the computer even though the fan was running on full blast. It was detected instantly (so it seems like these PSUs need to be initially started, and have some sort of extra load afterwards or an "ATX initialization code.")

 

Now my T420 has a GTX 770 that is hotpluggable (which is great,) but still no go for a BIOS to Windows cold boot with it installed. The link seems to be at 2.0 1x, but still not sure if this has compression enabled.

ss.thumb.png.a44a03f9f418f37b7cc79a39b4d

 

Edited by Omicron
Somewhat fixed the issue.
  • Thumbs Up 1

Share this post


Link to post
Share on other sites

^, Using DSDT Editor I compiled the dsdt Qwordmemory fix. How do I use the ASL program to override the existing info?  new to all this stuff thanks.

 

Edited by BenJ08
issue resolved

Share this post


Link to post
Share on other sites

Hey @Tech Inferno Fan i paid for the eGPU 1.3 but the Mediafire link is private. Can you please send me the link again or give me access?? Thanks

Share this post


Link to post
Share on other sites

Could someone help me solve these problems:

 

warnings.thumb.jpg.fbe97bb13e6849ad504c1

 

Spoiler

Method (_PRW, 0, NotSerialized)
            {
                If (PMEE)
                {
                    Return (Package (0x02)
                    {
                        0x09, 
                        Zero
                    })
                    Return (Package (0x02)
                    {
                        0x09, 
                        Zero
                    })
                }
            }
            Name (PR02, Package (0x04)
            {
                Package (0x04)
                {
                    0xFFFF, 
                    Zero, 
                    LNKA, 
                    Zero
                }, 
                Package (0x04)
                {
                    0xFFFF, 
                    One, 
                    LNKB, 
                    Zero
                }, 
                Package (0x04)
                {
                    0xFFFF, 
                    0x02, 
                    LNKC, 
                    Zero
                }, 
                Package (0x04)
                {
                    0xFFFF, 
                    0x03, 
                    LNKD, 
                    Zero
                }
            })
            Name (AR02, Package (0x04)
            {
                Package (0x04)
                {
                    0xFFFF, 
                    Zero, 
                    Zero, 
                    0x10
                }, 
                Package (0x04)
                {
                    0xFFFF, 
                    One, 
                    Zero, 
                    0x11
                }, 
                Package (0x04)
                {
                    0xFFFF, 
                    0x02, 
                    Zero, 
                    0x12
                }, 
                Package (0x04)
                {
                    0xFFFF, 
                    0x03, 
                    Zero, 
                    0x13
                }
            })

 

Spoiler

Method (_BCM, 1, NotSerialized)
                {
                    If (^^^LPCB.SNC.ASCS)
                    {
                        Store (Arg0, BRTL)
                        Store (One, ^^^LPCB.SNC.INTS)
                        ^^^LPCB.SNC.SNNE (0x04)
                        Return (Zero)
                    }
                    If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64)))
                    {
                        Store (Match (VTBL, MEQ, Arg0, MTR, Zero, 0x02), Local0)
                        If (LEqual (Local0, Ones))
                        {
                            Return (Zero)
                        }
                        Subtract (Local0, 0x02, Local0)
                        AINT (One, GBRT (Local0))
                        Store (Arg0, BRTL)
                    }
                }

 

I thank anyone who can help me.

 

Share this post


Link to post
Share on other sites

i finished all step. and change code the error 35.

 

what's wrong?

Share this post


Link to post
Share on other sites

Hi guys,

 

here's my setup

 

elitebook 8460p

radeon r9 380

windows 7 professional 64b

 

I've successfully modified though dsdt parching the OS and created the lager memory block, but the eGPU insist on not allocating on that memory space!!!!

 

Also I see that the guy selling setup 1.x is off for a while, is there anny other way to get it?

 

PLEASE HELP GUYS!

 

 

 

 

Share this post


Link to post
Share on other sites

I have the same situation as you. Can't get past code 12 without Setup 1.3. The only thing you can do is to send the money to Tech Inferno Fan, and ask somebody to sent you his copy, and show him the payment confirmation.

I've asked one person here on the forums, but unfortunately something went wrong and I didn't receive his copy.

Actually see this thread:

 

 

Share this post


Link to post
Share on other sites

I managed to get the manual DSDT Override to work on my x230 and afaik its looking good. My GTX960 was recognized succesfully too (after a few reboots). Unfortunately the graphic card is working odd. In GPU-Z it is recognized as PCI-e gen 2 instead of 3 and when I try to start the render benchmark of GPU-Z or 3dmark06, it just doesn't work.

Did anyone had a similar odd behaving?

 

thanks

Share this post


Link to post
Share on other sites

Can anyone could help me to fix the 201 error from my dsdt.dsl file extracted using dsdt editor.

Even I clicked fixed in the compile, it will only fix minor errors but I'm stuck on it...

I attached the extracted file.

extracted dsdt.rar

Share this post


Link to post
Share on other sites

@a_chicken thanks m8, i managed to buy the soft directly here from the site!!!!

 

well here's the thing:

 

worked!

 

setup 1.x aka pre-allocation the pci-e memory its been the ONLY way to force windows to place the eGPU on the large memory block.

 

I'm going to create another post in case someone wants to ask about my conf.

 

@Tech Inferno Fan nando m8, i wish you recover soon, thank you for your software, its a really clever idea and a nice piece of engineering. get well soon! :)

Share this post


Link to post
Share on other sites

Hello Everybody!

Who knows how to fix this problem ?

Or this because of hardware?

 

Share this post


Link to post
Share on other sites

Hi there:)

 

I hope you guys can help me with the related case. I have Quadro K3100M and I want to change the Device ID to some Geforce (780m for example). Problem is - I don't know how to patch DSDT right for that. The Device ID for K3100M is "11B6", for GTX 780M is "119F". DSDT table attached. Device is PEG0 in _SB.PCI0 scope (string 12493).

dsdt.7z

Share this post


Link to post
Share on other sites
On 8/17/2014 at 10:22 AM, Tech Inferno Fan said:

Win8/10: Perform a DSDT substitution within Setup 1.30 to overcome TOLUD issues

Win8 enumerates the DSDT table from the in-memory copy on every boot as it's default behaviour. The only way to get it to allow a Win7 style DSDT override is to enable test signing for the Windows bootloader (bcdedit) as described here.

An alternative method was also discovered to overcome this Win8 limitation without resorting to a DSDT override. The way it works is by substituting the in-memory DSDT table with one that extends the PCI bus into 36-bit PCI space done within the DIY eGPU Setup 1.30 pre-boot environment. Steps to do this are below:

 

  1. Identify your DSDT table's starting address using r-w everything. The example screenshot shows it is 0xC6FF3198 for my E6230.
     
  2. Obtain the system DSDT table ('iasl -g'), then add the QWordMemory entry to extend the root bridge out to 36-bit space as described in the DSDT override to [file].dsl.
     
  3. Compile the new DSDT table 'iasl [file].dsl' and compare the resultant dsdt.aml size to your [file].dat obtained using 'iasl -g'. Now here's the tricky bit. The dsdt.aml file must be *smaller* than the original in-memory DSDT ([file].dat]) otherwise it overwrites some additional ACPI tables beyond the DSDT and will cause Win8 boot to crash.

    To get my compiled dsdt.dml to a size smaller than [file].dat, I removed the unnecessary Win95/XP/WinME entries in the _OSI method from my [file].dsl then compiled it with 'iasl [file].dsl'.
     
  4. Copy your resultant dsdt.aml to your Setup 1.30 disk image or USB key \config directory.
     
  5. Boot Setup 1.30. Load your modified DSDT table into memory with 'pt MEM writefromfile 1 [address of DSDT table] dsdt.aml'. In my case this command was 'pt MEM writefromfile 1 0xC6FF3198 dsdt.aml'
     
  6. Perform PCI 36-bit PCI compaction on the eGPU by setting the endpoint to match the override, ie: 56.25GB. This may not be strictly necessary as Win8 cleverly relocates devices in available PCI space when 32-bit PCI space is tight. In this example, my Dell E6230 had TOLUD=3.25 meaning plenty of 32-bit PCI space for an iGPU+eGPU. I forced allocated the iGPU into 36-bit space using Setup 1.30's compaction just as a proof-of-concept.
     
  7. Chainload to Win8. It will enumerate the DSDT based off the in-memory substituted version.
     
  8. Automating it. Once confirmed it all works, use startup.bat->!Edit (Setup 1.30 menus) or edit v:\config\startup.bat (Windows) and add your 'pt MEM writefromfile' line from (5) so you can boot and just select Setup 1.30: automated startup via startup.bat or just let it countdown to select that by default.


Does this work? Indeed it does!! Below we see the new 'Large Memory Area' indicating the PCI BUS now extends into 36-bit PCI space with the iGPU relocated into that 36-bit space.

 

1CZSkkU.png

 

The same process also useful to certain systems whose fan profiles can be altered in the DSDT table.

Avoid Win8's Secure Boot

Anybody upgrading to Win8 is advised to disable their bios UEFI/secure boot so it uses MBR boot instead. Then Setup 1.30 can chainload to Win8 without any problems. Otherwise users requiring Setup 1.30 functionality would need to do a Win8 re-install to change the partitions from UEFI to MBR.

 

Can I ask how to do the number 4, where to copy it? And also explain further for the number 5....
thanks in advance

Share this post


Link to post
Share on other sites

Hello, I am trying to attach an R9 390 with a PE4C to a PowerPro I 9:7 (which seems to be basically the same as an MSI GE70). I can get the graphics card to detect by hotswapping it with my wireless card, but I get an error 12. I've tried doing a DSDT override, both using the loadtable method, and using setup 1.3, but I can't get that extra memory to show up in device manager. The table has indeed been overridden, evidenced by the fact that when I dump the DSDT now it shows the edits I made. I cannot get my laptop to startup with the egpu attached, so I don't think I can use compaction correctly. Either my laptop won't boot, or it will boot but the fans will spin up to full and it won't be detected. I am running windows 10, an i7-3630qm, 12GB of ram, an HD4000, and a GTX 660M. Here is my edited dsdt.dsl, with the relevant qword at line 2156. Thank you for any help, I'm really hoping to get this working before tuesday! If you need any further information please let me know.

Share this post


Link to post
Share on other sites

Hi mcguinnessdr! how do you can do the hotswapping? If you don't do the hotswapping the eGPU is detected?

Share this post


Link to post
Share on other sites

I boot up my laptop with the wifi card connected. I then put my computer to sleep, swap out the wifi card for the egpu, then wake it back up. I haven't been able to get it to detect any other way.

Share this post


Link to post
Share on other sites
On 8/17/2014 at 8:22 AM, Tech Inferno Fan said:

Win8/10: Perform a DSDT substitution within Setup 1.30 to overcome TOLUD issues

Win8 enumerates the DSDT table from the in-memory copy on every boot as it's default behaviour. The only way to get it to allow a Win7 style DSDT override is to enable test signing for the Windows bootloader (bcdedit) as described here.

An alternative method was also discovered to overcome this Win8 limitation without resorting to a DSDT override. The way it works is by substituting the in-memory DSDT table with one that extends the PCI bus into 36-bit PCI space done within the DIY eGPU Setup 1.30 pre-boot environment. Steps to do this are below:

 

  1. Identify your DSDT table's starting address using r-w everything. The example screenshot shows it is 0xC6FF3198 for my E6230.
     
  2. Obtain the system DSDT table ('iasl -g'), then add the QWordMemory entry to extend the root bridge out to 36-bit space as described in the DSDT override to [file].dsl.
     
  3. Compile the new DSDT table 'iasl [file].dsl' and compare the resultant dsdt.aml size to your [file].dat obtained using 'iasl -g'. Now here's the tricky bit. The dsdt.aml file must be *smaller* than the original in-memory DSDT ([file].dat]) otherwise it overwrites some additional ACPI tables beyond the DSDT and will cause Win8 boot to crash.

    To get my compiled dsdt.dml to a size smaller than [file].dat, I removed the unnecessary Win95/XP/WinME entries in the _OSI method from my [file].dsl then compiled it with 'iasl [file].dsl'.
     
  4. Copy your resultant dsdt.aml to your Setup 1.30 disk image or USB key \config directory.
     
  5. Boot Setup 1.30. Load your modified DSDT table into memory with 'pt MEM writefromfile 1 [address of DSDT table] dsdt.aml'. In my case this command was 'pt MEM writefromfile 1 0xC6FF3198 dsdt.aml'
     
  6. Perform PCI 36-bit PCI compaction on the eGPU by setting the endpoint to match the override, ie: 56.25GB. This may not be strictly necessary as Win8 cleverly relocates devices in available PCI space when 32-bit PCI space is tight. In this example, my Dell E6230 had TOLUD=3.25 meaning plenty of 32-bit PCI space for an iGPU+eGPU. I forced allocated the iGPU into 36-bit space using Setup 1.30's compaction just as a proof-of-concept.
     
  7. Chainload to Win8. It will enumerate the DSDT based off the in-memory substituted version.
     
  8. Automating it. Once confirmed it all works, use startup.bat->!Edit (Setup 1.30 menus) or edit v:\config\startup.bat (Windows) and add your 'pt MEM writefromfile' line from (5) so you can boot and just select Setup 1.30: automated startup via startup.bat or just let it countdown to select that by default.


Does this work? Indeed it does!! Below we see the new 'Large Memory Area' indicating the PCI BUS now extends into 36-bit PCI space with the iGPU relocated into that 36-bit space.

 

1CZSkkU.png

 

The same process also useful to certain systems whose fan profiles can be altered in the DSDT table.

Avoid Win8's Secure Boot

Anybody upgrading to Win8 is advised to disable their bios UEFI/secure boot so it uses MBR boot instead. Then Setup 1.30 can chainload to Win8 without any problems. Otherwise users requiring Setup 1.30 functionality would need to do a Win8 re-install to change the partitions from UEFI to MBR.

 

Hey guys, i want to get my eGPU to work really bad. Trying to use  GTX 750 on my Hp Elitebook 8570w (win10) with my expresscard slot and i think i need to do this DSDT override. However i am a complete noob when it comes to this stuff so i really do not understand what i am supposed to do in the above guide. Is there anyone willing to explain to me what i should do in more noob-friendly terms? Any help would be greatly appreciated!

Share this post


Link to post
Share on other sites

If you are playing with dsdt override don't forget to run "bcdedit.exe -set TESTSIGNING ON" as admin.

Your other problem looks similar to mine but I have an asus notebook with r9 390x [guide link] so its worth to mention that if your bios hangs while egpu is connected then try playing with the #clk/#perst delay switches on your adapter and if your bios hangs on all settings then try to isolate pin22 on the mpcie connector and set the #perst delay to max on your adapter. Just put a small electrical tape on the PIN and always do shutdown/reboot instead of restart and don't forget to wait the #perst delay(egpu fans will start and some LED action goes on your adapter) before entering to setup 1x. Hope it helps and good luck.

 

mpcie Pinout:

Spoiler

1284991373.png

:

Share this post


Link to post
Share on other sites

I have followed the guide and got no errors but in device manager I don't see "Large memory" section.. that means I failed somewhere?

 

in my dsdt.dsl header, there is

 

/*
 * Intel ACPI Component Architecture
 * AML/ASL+ Disassembler version 20160318-32
 * Copyright (c) 2000 - 2016 Intel Corporation
 * 
 * Disassembling to symbolic ASL+ operators
 *
 * Disassembly of dsdt.dat, Sun Apr 10 10:52:22 2016
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0000C9D4 (51668)
 *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
 *     Checksum         0xF6
 *     OEM ID           "HP    "
 *     OEM Table ID     "INSYDE  "
 *     OEM Revision     0x00000000 (0)
 *     Compiler ID      "MSFT"
 *     Compiler Version 0x01000013 (16777235)
 */

 

does the "no 64-bit math support" means something?

Share this post


Link to post
Share on other sites
On 4/6/2016 at 3:59 AM, Thawsome said:

Hey guys, i want to get my eGPU to work really bad. Trying to use  GTX 750 on my Hp Elitebook 8570w (win10) with my expresscard slot and i think i need to do this DSDT override. However i am a complete noob when it comes to this stuff so i really do not understand what i am supposed to do in the above guide. Is there anyone willing to explain to me what i should do in more noob-friendly terms? Any help would be greatly appreciated!

please note that in windows 8 and windows 10, you have to type "bcedit -set TESTSIGNING ON" after the "asl /loadtable dsdt.aml for it to work...otherwise the large memory will not show.

Share this post


Link to post
Share on other sites

I managed to g et large memory to appear but when i boot with Exp Gdc beast connected..i get a bsod a few seconds after the windows logo appears. I am on win7 64bit...any idea?

 

The bsod disappears too quick (restarts) I cant read what is on it

Share this post


Link to post
Share on other sites

Hi,

 

I have a problem with my eGPU, I cant get rid of Code 12. I have the following stuff:

 

Acer 5750G (2630QM, 540m (deactivated in BIOS), HD 3000, 8GB RAM) (There seem to be several people who use an eGPU with this notebook, so it should work somehow)

650W PSU

EXP GDC 8 mpcie

Gigabyte GTX 960 4GB

 

I did the DSDT override and the device manager shows me the large memory, but it doesn't use it. I also tried the pci compaction in Setup 1.3 and set it to 36-Bit and followed different instructions I found on the web, but Code 12 stays. Even if I try to only get the iGPU in 36-Bit space, it doesn't work.

 

Could my DSDT Override have been faulty somehow? Even if it shows the large memory section in the device manager?

 

If you have any idead, please write! Thanks in advance :)

 

EDIT: Can you do a PCI Compaction 36 Bit without a DSDT override? In that case I'd try.

Edited by MisterKewl

Share this post


Link to post
Share on other sites

[Working Solution: End-to-End Guide for DSDT Override AND PCI Compaction to get eGPU running on Dell Latitude E6510 with 8GB of RAM installed]

 

Hi everybody,

 

first of all, I want to endlessly thank Nando for his support that helped me get running my eGPU system setup - that is now used on a regular base

The Villagetronic support (the vendor for my hardware and enclosure) failed to help me.

 

I want hereby share my success story to you. I took me over a year to get my eGPU hardware running. Maybe there is someone out there who can overcame "error 12" with this guide too.

 

My system parameters:
Dell Latitude E6510
BIOS Version: A016
8 GB RAM (2x 4GB)
Intel Core i5 CPU
Windows 7 x64 SP1 (still in test signing mode after DSDT override)
Villagetronic ViDock Nano (320W)
Gainward GTX 750 TI OC Golden Sample 2GB (a very quite and very cost efficient card, power consumption is about 50 watt)


0. Prerequisites
- download and install the Windows Driver Kit (WDK), which contains the Windows ASL Compiler
- Install Java by running "jxpiinstall.exe"
- extract "DSDTEditor_Linux_Windows.zip"

- start with a fresh Windows 7 installtion (no driver installed for the eGPU graphics chip) or uninstall ALL existing NVidia (eGPU) and Intel drivers (iGPU), then use "ddu" software (Display Driver Uninstaller) to clear registry entries of both and Reinstall both drivers

 

1. Create an .aml-File by running "DSDT Editor.bat" within directory "DSDTEditor-Linux-Mac-Win"
- run DSDT Editor.bat
- run menu item "File\ Extract DSDT"
- Wait a bit, then click 'Device PCI0' - it should be just after your Processor

 

1.png

 

- Scroll down until you see your DWordMemory stuff, go to the bottom of this list
- Under the last DWordMemory entry in that area, add a 'QWordMemory' (64-bit) entry  shown as the second paragraph below. I ensure that I stay in the 36-bit range (< 64GB) so the location is compatible with the PAE-capable Win7 32-bit. I also chose a location above 48GB so we won't have issues with maxxed out memory. The range chosen was 48.5GB to 56.25GB.
- At the bottom add:

QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
   0x0000000000000000, // Granularity
   0x0000000C20000000, // Range Minimum,  set it to 48.5GB
   0x0000000E0FFFFFFF, // Range Maximum,  set it to 56.25GB
   0x0000000000000000, // Translation Offset
   0x00000001F0000000, // Length calculated by Range Max - Range Min.
   ,, , AddressRangeMemory, TypeStatic)

- the result looks like this:

 

2.png

 

- run menu item "IASL\ Compile" (or hit F5)

 

3.png

 

 

- click button "Fix errors" if you have any
- locate remaining found error(s) and manually correct the syntax errors
   e.g.: Error "10742    Error    Invalid leading asterisk (*pnp0c14)"

 

4.png

 

Reason (found in a german forum):
"Einerseits haben wir hier den Asterisk (*) der das Problem verusacht, aber wir müssen den String eben auch gross schreiben.
Also aus Name (_HID, "*pnp0c14") wird Name (_HID, "PNP0C14")"

 

Solution is to replace the following line:
    Name (_HID, "*pnp0c14")
with line:
    Name (_HID, "PNP0C14")

 

If all errors are fixed re-compile the DSDT.dsl file again:

 

5.png
 
- run menu item "File\ Save DSL as..." which is now enabled
 - named file "dsdtoverride.aml"
- put this file in the DSDT program directory with asl.exe and iasl.exe
- close the editor
- the following files were created while the editing process:

 

6.png

 

2. Loading the dsdt.aml file into into the registry as a DSDT override

- you must be an admin user for this to be successful so open up command prompt as admin
- change directory to where WDK was installed, much likely "C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\ACPIVerify\asl.exe"
(or set a corresponding environment variable for that path)
saved your "dsdtoverride.aml" file in command prompt
- run command:

asl -loadtable "C:\Temp\WBT\dsdtoverride.aml"

 

7.png

 

3. Restart the system and check the device manager for the successfully create new large memory

 

8.png

 

4. Enable test signing mode for the registry override to apply

(otherwise I got an error message everytime I shut down windows)

- you must be an admin user for this to be successful
- run following command:
bcdedit -set TESTSIGNING ON

 

5. Perform PCI compaction with the new bounds:
endpoint = 56.25GB-64bit
scope = eGPU or iGPU+eGPU
closeunusedbridges = off or on

 

Try each of the above (will give you 4 different permutations). After each, Chainload to Windows using "Chainloader -> Test Run". Confirm Windows stability and that error 12 is eradicated against the eGPU.

 

6. Start Windows, install eGPU graphics chip drivers and enjoy your second graphics card on your notebook

 

Best regards,

Lake

  • Thumbs Up 1

Share this post


Link to post
Share on other sites
On 13.4.2016 at 0:40 AM, Lake said:

[Working Solution: End-to-End Guide for DSDT Override AND PCI Compaction to get eGPU running on Dell Latitude E6510 with 8GB of RAM installed]

 

Hi everybody,

 

first of all, I want to endlessly thank Nando for his support that helped me get running my eGPU system setup - that is now used on a regular base

The Villagetronic support (the vendor for my hardware and enclosure) failed to help me.

 

I want hereby share my success story to you. I took me over a year to get my eGPU hardware running. Maybe there is someone out there who can overcame "error 12" with this guide too.

 

My system parameters:
Dell Latitude E6510
BIOS Version: A016
8 GB RAM (2x 4GB)
Intel Core i5 CPU
Windows 7 x64 SP1 (still in test signing mode after DSDT override)
Villagetronic ViDock Nano (320W)
Gainward GTX 750 TI OC Golden Sample 2GB (a very quite and very cost efficient card, power consumption is about 50 watt)


0. Prerequisites
- download and install the Windows Driver Kit (WDK), which contains the Windows ASL Compiler
- Install Java by running "jxpiinstall.exe"
- extract "DSDTEditor_Linux_Windows.zip"

- start with a fresh Windows 7 installtion (no driver installed for the eGPU graphics chip) or uninstall ALL existing NVidia (eGPU) and Intel drivers (iGPU), then use "ddu" software (Display Driver Uninstaller) to clear registry entries of both and Reinstall both drivers

 

1. Create an .aml-File by running "DSDT Editor.bat" within directory "DSDTEditor-Linux-Mac-Win"
- run DSDT Editor.bat
- run menu item "File\ Extract DSDT"
- Wait a bit, then click 'Device PCI0' - it should be just after your Processor

 

1.png

 

- Scroll down until you see your DWordMemory stuff, go to the bottom of this list
- Under the last DWordMemory entry in that area, add a 'QWordMemory' (64-bit) entry  shown as the second paragraph below. I ensure that I stay in the 36-bit range (< 64GB) so the location is compatible with the PAE-capable Win7 32-bit. I also chose a location above 48GB so we won't have issues with maxxed out memory. The range chosen was 48.5GB to 56.25GB.
- At the bottom add:

QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
   0x0000000000000000, // Granularity
   0x0000000C20000000, // Range Minimum,  set it to 48.5GB
   0x0000000E0FFFFFFF, // Range Maximum,  set it to 56.25GB
   0x0000000000000000, // Translation Offset
   0x00000001F0000000, // Length calculated by Range Max - Range Min.
   ,, , AddressRangeMemory, TypeStatic)

- the result looks like this:

 

2.png

 

- run menu item "IASL\ Compile" (or hit F5)

 

3.png

 

 

- click button "Fix errors" if you have any
- locate remaining found error(s) and manually correct the syntax errors
   e.g.: Error "10742    Error    Invalid leading asterisk (*pnp0c14)"

 

4.png

 

Reason (found in a german forum):
"Einerseits haben wir hier den Asterisk (*) der das Problem verusacht, aber wir müssen den String eben auch gross schreiben.
Also aus Name (_HID, "*pnp0c14") wird Name (_HID, "PNP0C14")"

 

Solution is to replace the following line:
    Name (_HID, "*pnp0c14")
with line:
    Name (_HID, "PNP0C14")

 

If all errors are fixed re-compile the DSDT.dsl file again:

 

5.png
 
- run menu item "File\ Save DSL as..." which is now enabled
 - named file "dsdtoverride.aml"
- put this file in the DSDT program directory with asl.exe and iasl.exe
- close the editor
- the following files were created while the editing process:

 

6.png

 

2. Loading the dsdt.aml file into into the registry as a DSDT override

- you must be an admin user for this to be successful so open up command prompt as admin
- change directory to where WDK was installed, much likely "C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\ACPIVerify\asl.exe"
(or set a corresponding environment variable for that path)
saved your "dsdtoverride.aml" file in command prompt
- run command:

asl -loadtable "C:\Temp\WBT\dsdtoverride.aml"

 

7.png

 

3. Restart the system and check the device manager for the successfully create new large memory

 

8.png

 

4. Enable test signing mode for the registry override to apply

(otherwise I got an error message everytime I shut down windows)

- you must be an admin user for this to be successful
- run following command:
bcdedit -set TESTSIGNING ON

 

5. Perform PCI compaction with the new bounds:
endpoint = 56.25GB-64bit
scope = eGPU or iGPU+eGPU
closeunusedbridges = off or on

 

Try each of the above (will give you 4 different permutations). After each, Chainload to Windows using "Chainloader -> Test Run". Confirm Windows stability and that error 12 is eradicated against the eGPU.

 

6. Start Windows, install eGPU graphics chip drivers and enjoy your second graphics card on your notebook

 

Best regards,

Lake

 

Quote

Here are additional pictures and screenshots for you:

- the Villagetronic ViDock Nano (320W) came with two notebook PSUs: one passive 100 watt PSU and one 220 watt very noisy actively cooled PSU

- I only need to connect the quiet and passively cooled PSU to power ViDock Nano enclosure

eGPU System Setup.jpg

 

- I ran benchmarks with 3DMark with picture output only to the internal screen (as seen above) and with output only to an external monitor.

- I found out that the benchmark/ rendering performance is about five time better when the output from the eGPU is directly send to an external monitor:

 

I did IT - external Monitor 1.jpg

 

Share this post


Link to post
Share on other sites

Hi guys,

i have tried the DSDT Override as shown by nando 4 on my Thinkpad x230 in order to run my eGPU (GTX 560Ti); from what the console said, the Override was successfull, but I had no Large Memory-Entry in the Device-Manager. After I restarted the system, I get a 'ACPI_BOOT_ERROR' everytime I boot. All efforts to repare or reconstruct the systems have failed. I tried via cmd to reset the override but iasl and asl are not active in the bootmanager. Bios-Reset was unsuccessful. There are no restore points for Windows...

I have the setup 1.30 running too.

Windows 10, BIOS v2.65

Does anyone have an idea what I can do to restore my system ? Thanks in advance !

Edited by shockrave

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Tech Inferno Fan
      We've had a stack of recurring questions from with problems getting a mPCIe eGPU working. This includes GPU-Z not reporting no clock details, error 10/43 or even not being detected at all. Overall it's more troublesome getting mPCIe working than say expresscard or Thunderbolt.
       
      Here's some common problems and some troubleshooting steps to correct them.
       
      Getting a black bootup screen, resolving error 10/43 or ACPI_BIOS_ERROR win bootup messages
       
      Here the BIOS doesn't know what to do when it sees an eGPU. So the solution is to not let the BIOS see it. Do that by setting the delays on the eGPU adapter (CTD/PTD - EXP GDC or CLKRUN/PERST# on PE4L/PE4C). Boot with eGPU adapter in the wifi slot into Setup 1.30 or Windows. Is the eGPU detected?
       
      I'll add that should error 43 continue AND you have a NVidia dGPU as well as NVidia eGPU then it's likely because of having the mobile NVidia and desktop NVidia drivers loaded simultaneously. Proceed to uninstall ALL your NVidia drivers, use "DDU" to clean NVidia registry entries and do a 'clean' install of the latest NVidia desktop driver.
       
      mPCIe port that hosted the wifi card disappears when connecting an eGPU in it's place
       
      Use the Setup1.30 PCIe Ports->enable to enable the missing port.
       
      eGPU does not get detected
       
      Overcome mPCIe whitelisting by booting with the wifi card and then hotswapping in the eGPU. That way the BIOS will enable the mPCIe port to work.
       
      1. Boot with wifi card into Windows, sleep system, swap wifi card for mPCIe eGPU adapter and ensure eGPU is powered on, resume system. Do a device manager scan in Windows. Is the eGPU detected?
       
      2. Boot with wifi card into Setup 1.30 *carefully* hotplug the eGPU adapter in place of wifi card. Hit F5 to rescan the PCIe bus. Is the eGPU detected?
       
      If this enables detection then avoid this tedious hotswapping by seeking a unwhitelisted modified BIOS for your system OR test the Setup 1.30's PCI ports->undo_whitesting feature.
       
      eGPU still not detected - set the PSU to be permanently on
       
      The latest EXP GDC and BPlus eGPU adapters try to manage the PSU to only power on after they detect a signal. This can cause a race condition where the eGPU isn't ready to go when the CLKRUN signal is asserted.
       
      Avoid this by jumpering the PSU so it's permanently on rather than being managed. Depending on the PSU you are using refer to the following doco on how to do that:
       
      http://forum.techinferno.com/enclosures-adapters/8441-%5Bguide%5D-switching-atx-psu-using-paperclip-trick-swex.html
      http://forum.techinferno.com/enclosures-adapters/9426-220w-dell-da-2-ac-adapter-discussion.html
       
      eGPU still not detected - a non-standard mPCIe implementation by your vendor?
       
      PERST# mPCIe pin 22 may need to be isolated due to a non-standard implementation by your notebook vendor: http://forum.techinferno.com/enclosures-adapters/10812-pe4x-series-understanding-clkreq-perst-delay.html#post142689
       
      eGPU still not detected - faulty hardware?
       
      If you still don't get detection then test the video card and eGPU adapter in another machine to confirm neither is faulty.
       
      NVidia driver stops responding
       
      EXP GDC, PE4H 2.4 and PE4L 1.5 all use a socketted cable and therefore are not true Gen2 compatible device. This error indicates there was transmissions errors.
       
      The solution is either to get a better Gen2-compliant eGPU adapter such as PE4C V3.0 or PE4L 2.1b (both with soldered cable), or downgrade your link from Gen2 to Gen1 using BIOS options or Setup 1.30
       
      Other troubleshooting help resources?
       
      See DIY eGPU Troubleshooting FAQ.
       
    • By ReverseEffect
      3dMark11 Performance Preset Benchmark: http://www.3dmark.com/3dm11/11262792
       
      Required items:
      1.) Lenovo u310 (I have a Core i3 - Ivy Bridge, 8GB RAM)
      2.) 65CN99WW unwhitelisted.
      3.) eGPU (I used a EVGA GTX 750 Ti from another computer I had).
      4.) EXP GDC mPCIe Edition adapter (got from eBay - banggood seller).
      5.) ATX power supply (I used a 600W PSU from another computer I had).
      6.) USB wireless.
      7.) External monitor, keyboard, and mouse.
       
      Steps:
      1.) Obtain and install a unwhitelisted BIOS. If you are unable to obtain a unwhitelist BIOS, I think it might be possible to bypass it with Tech Inferno Fan's Setup 1.x (may need confirmation as I haven't used it myself yet.)
      2.) Shutdown computer and remove all USB devices, ethernet cables, power cables, card reader cards.
      3.) Remove mPCIe wireless card and detach antennas.
       
       
      4.) Attach EXP GDC external mPCIe cable to the former wireless slot and screw down.
       
       
      5.) Attach HDMI end of the mPCIe cable adapter to the EXP GDC device.
       
       
      6.) Attach graphics card to the EXP GDC device (I moved my laptop off the desk and onto the side shelf to make room on the desk for the monitor/keyboard/mouse).
       
       
      7.) Using the power cable adapters that came with the EXP GDC device, I hooked in my ATX power supply's 20 pin and CPU 4 pin cables. Then hooked the other end (8 pin) into the EXP GDC device. My EVGA 750 Ti also required that I use an additional PCIe power cable (6 pin) in the top of the card.
       
       
       
       
       
      8.) Then I attached my misc devices (HDMI monitor, USB keyboard/mouse/wireless adapter), and hooked in my PSU and powered it on (below is image of final product, also moved HDMI cable out of the way).
       

       
      9.) Power on your computer and let it install the standard VGA drivers and then install your drivers (I didn't have to go in the BIOS for any graphics settings, which it doesn't have anyways, nor did I have to disable iGPU in Device Manager before the card was added).
       
      Extra Info:
      I found that most games will play on med settings with about 45 FPS with this particular card.
      BDO: Upscale on - Anti Aliasing on - SSAO off - med settings.
      Skyrim: Med-High settings.
      Fallout 4: Med settings.
       
      (EDIT 5/19/2016) > Images added.
       
    • By TheLoser1124
      Hello, A couple of days ago I got a new GPU but when I installed it into my computer I was unable to use it but now I know why. When checking the device manger I went into the events tab of my GPU when I went to view all events, I noticed an error it said " event 411 kernel PnP " and It also said Problem Status: 0xC01E0438. I believe this is why my GPU hasn't been working on my PC. If you know how to fix this problem or have info on how to fix this problem that would be greatly appreciated. I'm also using a EVGA NVIDIA GeForce GTX 1660.
    • By TheLoser1124
      I'm having a problem where my PC is saying my eGPU is not usable, its detected in the Device Manager and it doesn't have the yellow triangle next to it. I cant use it games and the Nvidia Control Panel doesn't recognize it either. I'm using a EVGA NVIDIA Geforce GTX 1660. I'm using windows 10 and I tried DDU and reinstalling them and now I cant access the nvidia control panel. The GPU is not recognize on any other apps and I went on *********** and was unable to find my answer, Any help on how to fix this problem would be greatly appreciated.
    • By Radstark
      Title sums it up.
       
      TL;DR: we have a Clevo that runs a desktop CPU, one with those huge 82 Wh batteries. We remove the GPU and let it use the CPU's integrated graphics. How much time for the battery to go from 100 to 0? Is it comparable to an ultrabook's?
       
      I'm theorizing a mobile set with a static eGPU and an upgradable CPU. Given a hypothetical user that needs fast processing on the go and long battery life while retaining very high degrees of mobility, but at home wants a powerful machine to run most games, I guess that would be their best bet. It would surely be more convenient to keep everything in the same disk. And even though the thing would be quite heavy to carry around, changing CPU would be more cost-efficient than changing an entire laptop. (Not sure if I'm right here, and also I'm not sure whether the motherboard in a Clevo would be replaceable when the new CPU needs a different socket, which is another reason why I'm asking here.)
       
      If my above guesses aren't correct, then an ultrabook with Thunderbolt and without a dedicated GPU would be a better choice. If they are, then we would be carrying more weight in exchange of a more cost-efficient setup, which I think would be a fair tradeoff.
       
      Also I am aware of the heating problems that these laptops suffer from, at least compared to a desktop setup. Would they be solved by moving the GPU out of the chassis, and instead plugging it with an eGPU dock via Thunderbolt port?
       
      What do you think? Is it doable? If not, why?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.