I have been trying this past week to get this eGPU setup going. To start, the PSU is jumped to be constantly on. I initially had no luck booting with the eGPU inserted into the Express Card slot. So with the PERST# Delay switch set to 2 and the CLKRUN switch set to 1, I booted into the OS w/o it recognizing the card. Long story short, I figured out that if I plug in the express card anytime after seeing the initial Lenovo screen with both switches to 1, I could boot into the OS and have it recognize the GPU.
Now, I have had no luck getting the NVIDIA drivers (except one time, below) to work. Dmesg show's this error:
[ 1791.537139] nvidia-nvlink: Nvlink Core is being initialized, major device number 236<br /> [ 1791.537474] NVRM: This PCI I/O region assigned to your NVIDIA device is invalid:<br /> NVRM: BAR0 is 0M @ 0x0 (PCI:0000:04:00.0)<br /> [ 1791.537475] NVRM: The system BIOS may have misconfigured your GPU.<br /> [ 1791.537480] nvidia: probe of 0000:04:00.0 failed with error -1<br /> [ 1791.537493] NVRM: The NVIDIA probe routine failed for 1 device(s).<br /> [ 1791.537494] NVRM: None of the NVIDIA graphics adapters were initialized!<br /> [ 1791.537630] nvidia-nvlink: Unregistered the Nvlink Core, major device number
And lspci -v:
04:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX 980 Ti] (rev a1) (prog-if 00 [VGA controller])<br /> Subsystem: Micro-Star International Co., Ltd. [MSI] GM200 [GeForce GTX 980 Ti] Physical Slot: 1<br /> Flags: fast devsel, IRQ 18<br /> Memory at <unassigned> (64-bit, prefetchable) [disabled] Memory at <unassigned> (64-bit, prefetchable) [disabled] I/O ports at 4000 [size=128] [virtual] Expansion ROM at f1400000 [disabled] [size=512K] Capabilities:  Power Management version 3<br /> Capabilities:  MSI: Enable- Count=1/1 Maskable- 64bit+<br /> Capabilities:  Express Legacy Endpoint, MSI 00<br /> Capabilities:  Virtual Channel<br /> Capabilities:  Latency Tolerance Reporting<br /> Capabilities:  L1 PM Substates<br /> Capabilities:  Power Budgeting <?><br /> Capabilities:  Advanced Error Reporting<br /> Capabilities:  Vendor Specific Information: ID=0001 Rev=1 Len=024 <?><br /> Capabilities:  Secondary PCI Express <?><br /> Kernel modules: nouveau, nvidia_drm, nvidia</p> <p>04:00.1 Audio device: NVIDIA Corporation GM200 High Definition Audio (rev a1)<br /> Subsystem: Micro-Star International Co., Ltd. [MSI] GM200 High Definition Audio<br /> Physical Slot: 1<br /> Flags: bus master, fast devsel, latency 0, IRQ 19<br /> Memory at f1480000 (32-bit, non-prefetchable) [size=16K] Capabilities:  Power Management version 3<br /> Capabilities:  MSI: Enable- Count=1/1 Maskable- 64bit+<br /> Capabilities:  Express Endpoint, MSI 00<br /> Capabilities:  Advanced Error Reporting<br /> Kernel driver in use: snd_hda_intel<br /> Kernel modules: snd_hda_intel<br />
I've tried many solutions with this dmesg error to no avail. (Using echo to disconnect PCI devices and rescan, pci=nocrs kernel flag, nouveau.modeset=0 kernel flag, etc...).
So earlier today I decided to give it one last go before tapping out. I'm not sure what my line of thinking was, but I believe I modprobe'd the nouveau drivers, rebooted, plugged in expresscard @ the Lenovo screen, and while in grub set the kernel flag of pci=nocrs. It worked! I had the external display up with my laptop as a secondary display, delved into some games to see what the fps would be like.. it was great. Went to plug in the speakers from the monitor to the laptop and bumped the card out. No matter what I do, I can't replicate whatever it is I did. I keep getting the errors above. This tells me it's not a hardware issue, and is probably something so simple... it's killing me.
Based on the error, it seems like a memory issue... BIOS is up-to-date. On windows I got an error 12 but got the BSOD trying to do the manual DSDT override. I guess I'll be reinstalling while I await a reply.
- ThinkPad x230t
- i7 - 3520M
- 8 GB RAM
-MSI 980 ti
-Corsair CX 500
In the BIOS: Is CSM support enabled? Is BIOS set to Legacy first? Is your boot disk an MBR partition?
Set both switches on the PE4C to 0. Leave the 24-pin from the PSU connected to the PE4C, do not force it on through the jumpers on the PE4C. Attempt a cold boot with the PE4C plugged into the X230T.
What happens in this scenario?
Sorry about the late reply.. was on duty yesterday and just got off this morning.
BIOS set to Legacy first, CSM support enabled, and this is an MBR partition. When setting both switches on the PE4C to 0 and performing a cold boot, the system gets stuck at the initial Lenovo display when first powering on the system. To bypass this, I have to either plug in the express card once this screen is displayed or play with the delay switches --- just can't be powered on with the card inserted.
I've come across this same issue before when I was trying a GTX 670 (Kepler) in my X230T. What was strange was that the GTX 670 worked perfectly fine in my X220.
Eventually solved this problem by changing to another card: a GTX 1070 (Pascal). I had a hunch that Kepler GPUs didn't work well with the X230T for some reason, and that Maxwell and Pascal were fine.
It should be noted that I got a GTX 960 (Maxwell) working on both my X220 and X230T with no hassle, so I suppose that my above-mentioned hunch is incorrect.
After a few hours I did manage to get the 670 working on my X230T, but it involved disabling CSM support, forcing the BIOS into UEFI, and reinstalling Windows on a GPT partition. Even then, it refused to work with Optimus and I could only use it as a CUDA accelerator for compute workloads. Whether it would work with playing video games on an external display I never tested.
So you currently run an X230t with that GTX 1070 I see. Is everything working out of the box for you on Linux and Windows?
I have a Windows 7 install on the mSATA. I have a Code 43 there. About to try Linux Mainline kernel because why not.
Hopefully it's not a card issue.. thank you for the reply though!
Windows 7 on mSATA works perfectly for me out of the box, you just need to fix error 43. I have never attempted a GNU/Linux install however.
To fix error 43, either use driver version 372.70 or use the error 43 fix.
I am pleased to be of help. Do make a build guide in the appropriate forum sub-section if and when you get your build working.
I will most definitely make a build guide once all is up and running.
So I got it working in Windows.. Followed the Code 12 guide on egpu.io and bought nando4's setup tool (Boot into Menu Based, Reset startup.bat, PCI Compaction 36-bit, Run on eGPU only, Reboot, Choose automated startup using startup.bat). I'll attach benchmarks once I get a little further along. Averages in Valley and Heaven were around 70 FPS. Also worth noting, with Windows 7 installed on an mSATA and using grub on my main SSD, you have to remove the SSD to access nando4's tool.
Either way, I still am a Linux guy at heart, so not being able to figure this out isn't an option for me. I guess this Windows test proves it's most definitely possible.
Alright! Figured out the error for my future x230(t) peeps that run into this slight headache. I believe the error is plugging in the egpu without the expresscard plugged in. I figured out that if the egpu is not connected to the monitor (via HDMI in my case), you are able to boot with the egpu plugged in via expresscard (all switches set to 1). This allows windows 7 to recognize the card without any dsdt overrides, and for it to be recognized by linux without any intervention (aka works out of the box). All you need to do is plug in the HDMI cable once logged in. May be able to do it before then, but haven't played with it too much. Thank for the guidance Arbystrider!