Hacker News new | past | comments | ask | show | jobs | submit login
Why that Thunderbolt add-in card doesn't work properly in your unsupported PC (mattmillman.com)
132 points by noexani on Sept 10, 2021 | hide | past | favorite | 80 comments



Does Thunderbolt anything work properly?

In the past few years I have used five brand new MacBooks (all different models and years, work and personal), four monitors, three Thunderbolt docks - everything new and name brand, including $80 name brand cables - and every single combination has crashed and/or required reboots daily, constant power cycling of monitors, etc etc.

When it all works, it's awesome.

But it's unbelievably flaky and annoying, and I can't understand why the bugs haven't been ironed out yet. However, even with a daily reboot it's still more convenient than plugging five cables into my laptop every time I want to dock it.

Edit: I should note that Big Sur is very stable, requiring only weekly-ish reboots.


AFAIK Thunderbolt could be less-marketingly-termed External PCIe --- and from that perspective, it is amazing that multiple-gigabits-per-second can be transferred on a thin cable between a computer and external devices, with "acceptably small" (but clearly not zero) error rates. I believe the spec is unfortunately still proprietary and confidential, which certainly reduces the number of people who can even try to fix any bugs in implementations.

I should note that Big Sur is very stable, requiring only weekly-ish reboots.

Wow. That's not what I would call "very stable" at all --- unless you mean in the context of using Thunderbolt devices.


The data rates are impressive but that doesn't really excuse anything. The data rate is more or less isolated from everything else in PCIe. The protocols that are glitching out don't care if it's 40Gbps or 480Mbps.


The faster the speed, the more critical signal integrity becomes; and I suspect at least some of the flakiness is due to how tight the tolerances are at Gbps speeds.


It's packet-based, and you can delay a packet by a lot of time and it won't cause any problems. So at higher levels there shouldn't be any tight tolerances.

Signal integrity and timings are really important at the physical layer, but I don't think that's what's breaking.


PCIe is packet-based and will retry, but typically the drivers for PCIe devices are not written to expect that e.g. accesses to its MMIO space take arbitrarily long times to complete, and the software above and around the driver (including the OS) can also be affected by such delays. Likewise, a device that's processing a continuous stream of data is going to overrun or underrun if its requests for interrupts or DMA get delayed due to retries caused by physical layer errors.


But as far as I know an x1 link works fine with real devices, and very much should work fine with real devices. And at the same time, to slow down a normal connection to less than an x1 link you'd need something like a very broken cable that just barely doesn't lose everything, and also doesn't get rejected by the system. So I still doubt physical level errors are the cause of weird flakiness except in very rare cases.


That's true, but I've also seen PCIe devices survive droping to kb/s bandwidth before failing over like you're saying.


There is an External PCIe cabling spec though it appears to be inferior to thunderbolt.

- no power

- limited ASPM support, no CPM support

- much larger (36 pins)

additionally, I imagine user experience is worse due to most systems only enumerate at startup and dont handle surprise unplug well at all.

https://pcisig.com/specifications/pciexpress/pcie_cabling1.0...


Expresscard also exists as a hotswappable version of PCIe for laptops. It's only one lane, so even the modern laptops with PCIe v3 have dismal bandwidth compared to USB3 or Displayport.

Surprise unplugs aren't great. On windows you can safely eject a GPU from your laptop with the taskbar icon.

Compared to thunderbolt it's an order of magnitude cheaper.


> multiple-gigabits-per-second can be transferred on a thin cable between a computer and external devices

Proper TB rated cables are far from being thin.


There might be some implementation details, in particular for thunderbolt 3.

Some 9 years ago, I worked at a place where we had macbooks and Apple Thunderbolt displays. I don't remember ever having issues. And I personally had two displays daisy-chained, with random USB and FireWire peripherals hanging off them. One of the screens or the computer itself developed a contact issue many years later, which of course isn't great, but the connection itself has always been rock-solid.

I remember at one point, after the High Sierra upgrade I think, but I'm not 100% sure on the date, I had some issues with the same thunderbolt screen and the same MBP. But by that time, they had already changed the font rendering, so I didn't use that display as often. Also, the GPU drivers at the time were terribly broken and the MBP would lag like crazy when using it. A few upgrades later, it was solved.

However, in PC land, I have an HP desktop with an HP thunderbolt / usb-c card, and it's hit-and-miss. My understanding is it has something to do with waking up the controller or something, but I've never managed to get it working 100% reliably. DisplayPort alternate mode is broken on Windows, too. I have a friend with a Dell XPS with integrated Thunderbolt, and he gets the exact same behaviour. At least his DP output works...


I only had issues with Apple and Thunderbolt, e.g. display resolution restricted to 1440p instead of 2160p when the same cable on a Windows NUC delivered 5k2k HDR10 resolution without any issues.


Caldigit TS3 dock has been reliable and almost bug free for me. Everyone at the large organization I work for also attests the same.


When I use the TS3+ dock, MacOS tends to reverse the positions of my monitors around 20% of the time I wake up from sleep


Are you plugging into a different port? I was having a similar issue with waking from sleep after being disconnected and reconnected. Then I realized I was plugging into a different port each time, and once I set the position for the displays for each port I never had that issue again.


I can second this. I was experiencing the exact same thing for a while.


Might be partly due to plugging into different ports as somebody mentioned, but it does seem to happen randomly for me too. But I found this tool yesterday that makes it a lot simpler to solve https://github.com/jakehilborn/displayplacer - annoying that it doesn't work properly out of the box, of course


I also have a TS3 and my experience has been similar. Quite solid. At one point I was having issues with a monitor being recognized and thought it was the TS3, but with some tinkering it turned out to be a quirk of the monitor (sometimes it just needs a full power cycle, even when no dock is being used).


I have a TS3+ with an XPS 15 9500, it's a nightmare. With only 2 monitors plugged it works well, but when you plug keyboard mouse and webcam it starts randomly dropping the whole usb stack. I guess that thing works only on macs (for one you can upgrade the firmware only on macos).


I can vouch for Caldigit for both Mac and Windows. Been using them since the start of covid.

One of the worst docks I've used was the Dell ones. With those I've had. 50/50 chance the Ethernet will work. And if you do connect expect to drop out.


We have tested all the thunderbolt dock we could find. The only ones when we managed to have 2 screens working on Mac, Windows and Linux were Lenovo's (non Mac computers are Lenovo too, not sure if that matters)


Ditto (since Big Sur: I had problems with 10.14 on a 2010 MBP).


>I should note that Big Sur is very stable, requiring only weekly-ish reboots.

We are coming close to 2022, we need to set the bar a lot higher than that.

No wonder why people often find me rantish or overly critical. Somethings are just not good enough.


And sometimes they are. One person’s anecdotes aren’t indicative of everybody’s experience. I rarely reboot my Big Sur machines; one has been running for about 4 weeks, since just before the beginning of the lockdown here in New Zealand.

I’m sure it would’ve been running longer had I not needed to reboot to finish installing an app.


I was ranting about this with a colleague the other day.

I remember having a gaming machine in ~2009 running Windows 7, and outside of me screwing with it (overclocking, etc) it's been rock-solid despite being heavily used; I can't actually recall a bluescreen or crash that I couldn't blame on my own doing.

In contrast, 11 years later, my M1 Macbook despite getting nowhere near the abuse that gaming machine got (it only really runs a web browser and I definitely don't mess with hardware or low-level settings - I don't even have System Integrity Protection disabled) will randomly crash or sometimes fail to wake up and will require a forced shutdown every couple weeks.


I only have issues when connecting, once it starts working, it's rock stable.

When I tried to power the JEYI Thunderdock Mini (this is an almost unknown gem but I love it to pieces because of the price, the size, the M.2 slot, the USB C power input) with the Baseus Galio 120W then it kept connecting and disconnecting without stop, it made the laptop into a chiming instrument :) Once I plugged the Aukey Omnia 100W (PA-B5) it has become rock solid.

I have a Monoprice Thunderbolt 3 Dual DisplayPort Mini Dock (search ebay for thunderbolt 3 dual mini dock you will find it for 30-ish, by far the cheapest TB3 dock) and I have two powered USB hubs chained off it. I need to plug it 2-3 times before the hubs are working but once they do, I never have a problem.

Lenovo ThinkPad X1 Extreme Gen 4 is the host.


There might be problems with Thunderbolt docks and monitors, I have no experience with those.

On the other hand, I have used continuously during the last 5 years Thunderbolt SSDs from several brands as my boot and working drives (i.e. without using any internal storage), with many computers, mainly Dell laptops and Intel NUCs.

Besides obviously being faster, the Thunderbolt 3 SSDs have been far more reliable than the external SSDs using USB.

So there is at least something that works properly, but I do not know if that is also true on MacBooks, because I have always used Thunderbolt only in Linux.


When my X1 Carbon running Windows sleeps with a a USB-C (or is it Thunderbolt?) monitor plugged in, sometimes it wont wake up. The power light just slowly throbs.

I agree that there's something magical about getting USB, display, and power over a standard cable.


My problem is more with the ecosystem than reliability; granted, I don’t need too much from it, just some screens, networking and USB. But that’s just a giant pain to figure out in general. Adapters and cables that require painstaking research to get right (and even then a lot of YMMV on the user’s end) are insanely frustrating. I live in a small Eastern European country so for me the idea of using two 4K screens I already had at 60 on a brand new MacBook Pro involved a day’s research and ordering stuff from abroad and waiting more than a week to find out if it would even work or not. And I think of myself as tech literate…

While I understand the ‘elegance’ factor of the nice and compact USB C ports and the expandability of Thunderbolt, I’m glad that I don’t have changing needs because it would frustrate me to constantly have to look into everything and potentially keep having to buy stuff from other countries just to be able to make use of these ports.

But tldr; my TB3 to DisplayPort adapters work well enough that I only reboot the computer for updates.


My advice is to not use docks. They cause too much troubles. It's game over as soon as you try to plug multiple displays and/or 4k displays.

Connect each display with a dedicated cable, thunderbolt to HDMI. Works better.

The only issue then is with Macbooks only having 1 or 2 ports, not much you can plug. Use a bluetooth mouse/keyboard to save ports.


yes i find my TB2 DAS to work perfectly for years now.

as for docks, i’ve tried them all and they all have unacceptable issues of one sort or another.


I added a Thunderbolt 3 port to a laptop with this method, this is a nice summary of things. I also needed to prod some registers to make the card visible, so I have a UEFI script that does this on boot. https://rsend.wordpress.com/x210-coreboot/adding-a-thunderbo...


Wow, really nice job!


I have plugged so many dongles and cables into my laptop to find the one combination that gives me two 4K monitors at 60hz.

It was infuriating how many things plug in properly but don’t actually convey the capabilities I wanted. Even picking the wrong DisplayPort cable will limit it at 30hz.

I understand there are explanations that are perfectly cromulent to engineers. But they aren’t any good to the other 99% of users.


It's also bizarre to me that pretty much every affordable USB C dongle that has both USB and video out have the video out be HDMI (okay there is a few with VGA but good luck if you want DVI or DP) despite USB C typically using DP alt mode. Why not skip the conversion to HDMI and give me DP with its extra bandwidth?


Its probably because they're not actually doing USB-C alternate DP mode but probably using a DisplayLink chipset. Its a system of doing graphics over USB and IIRC supports HDMI by default.


No, the vast majority of dongles just have a DP-to-HDMI chip


DisplayLink requires extra drivers, these dongles don’t.


FWIW I’ve been using 2 thunderbolt to display port cables to drive 2 4K60 monitors since 2016. The cables cost me roughly $10 CAD each. I guess I was just lucky?


Thunderbolt to DisplayPort cables aren't a thing. Thunderbolt 2 was already a Mini DisplayPort connector that used normal cables for that; Thunderbolt 3 uses USB Type C and you can get USB C DisplayPort cables (using DP alt mode). No Thunderbolt features involved there either.

Converting Thunderbolt to DisplayPort is technically possible, but completely pointless because both TB2 and TB3 are natively DisplayPort compatible, at both protocol and connector level.


> Converting Thunderbolt to DisplayPort is technically possible, but completely pointless because both TB2 and TB3 are natively DisplayPort compatible, at both protocol and connector level.

One exception: it's useful for a Thunderbolt Dock to have a Thunderbolt connection to the host system, while offering another Thunderbolt port that can emit a standard, un-encapsulated DisplayPort signal. But for an adapter with none of the other ports offered by a dock, it is generally pointless.


Yes, I meant a straight adapter only; of course it is useful for a Thunderbolt dock to have a DisplayPort output, among other ports.


Link?


I would suggest looking into the Dell DA310. It has all three (VGA, HDMI and DisplayPort). 60hz 4K over both HDMI and DP


Might be the difference between HDMI 2.0 and HDMI 1.4. That tripped me up a few times. HDMI 1.4 can only handle 4K@30Hz.


> Why not skip the conversion to HDMI and give me DP with its extra bandwidth?

Because nobody in China uses DP


Sadly "nobody" anywhere uses DP, as in any random TV or projector or cheap monitor you'd encounter uses HDMI. DP only took off for serious monitors.


Which is weird because every $200-400 monitor I’ve bought in the past decade-ish has been DP first with maybe an HDMI port.


Yeah, that already counts as "serious" :) Cheapest 1080p ones don't all come with DP


My advice is to get a Anker USB-C to HDMI cable. One cable per display.

It works well for 4k@60Hz and it's one of the cheaper solution at ~ 20$ per cable.

Cherry on top, it's sold by AnkerDirect on Amazon, which is the genuine manufacturer.

UK https://www.amazon.co.uk/Anker-Adapter-MacBook-Thunderbolt-C...

US https://www.amazon.com/Anker-Adapter-MacBook-Thunderbolt-Com...


I was sincerely frustrated as to how flaky it all seems too.

I have a monitor that's 4K/60 if I directly cable to it, but often only comes up at 30Hz (or 4:2:2 colour mode 60Hz) if I use a KVM. Yes, the KVMs were sold as "4k/60 support" and I've tried two different ones (one HDMI, one DP). One machine works fine, because it's a sucky pre-Cambrian laptop dock that isn't even TRYING for 4K, and the failing one is a desktop with a GTX1080.

What's interesting is that it seems like it only happens in Windows. I experimented with a FreeBSD install, and the drivers there reliably hit 4K/60 even with the DisplayPort KVM in the way.

I suspect the drivers must have different strategies to probe the capabilities of the device and cables, and the Windows drivers interpret them more conservatively.

So I ended up using the KVM as a $100+ USB switch and just toggling the inputs with the monitor's own buttons. (I gather there's software that could do automatic input switching via DCC configuration channels, but one machine is corporate-managed so I can't just stuff random software on it)


What a massive pain the docking accessory market is. Every dongle is advertised as either 4K or 60Hz, sometimes both, but the crucial detail you’ll learn after having bought one that barely any of them support 4K@60Hz, because that requires some extra version of HDMI chip.

Most of them, while otherwise being perfect, also tend to lack some essential feature.

Here’s the cheapest full featured USB-C dongle/dock on german Amazon (a few months ago): https://www.amazon.de/Multiport-MacBook-Adapter-Dockteck-Mic...

Goes well with this extension: https://www.amazon.de/gp/aw/d/B08MXL8JGF

Conclusion: A minimal USB-C docking setup costs 45€. Quite a bit for something essential on some laptops.


There are perfectly fine explanations to most people, actually, and anyone who disagrees greatly underestimates the ability of the common person to understand analogies. People in tech-focused communities tend to treat every common person like they're caricatures of the absentminded father or clueless wife in a 1980s cartoon.

"See, it's like you made a pizza with cake flour. It won't taste good, it won't cook quite right, and you'll be disappointed even though it kind of works. There's nothing bad about cake flour, and it works really well for what it's intended for, but it can't be used for everything."

"Imagine you were using bad steel when you were forging a blade. It'll crack, roll or worse, but it'll still look vaguely knife-like."

"It's like you're wanting to play electric rock music but you're missing a few strings and you don't have a pickup so it's really pretty much just a weirdly-shaped banjo."


i'm technical and i still get confused and hate how there is no standard markings/anything to indicate what does what


Those are some descriptions of things, but how do they work as analogies? They don't explain anything.


The analogies are direct. They all describe processes that fail with similar substitutes that yield similar results.


"Thing does not Fulfill Requirements so you don't get Desired Outcome."

This is a pattern that literally every human understands in their own niche.

"The Pizza was made with Cake Flour so it's Low-Quality."

"The Blade was made with Low-Carbon Steel so it's Unsafe and Weak."

"The Cable was made Without the Proper Materials so It's Subpar.


That's not the problem the average person is trying to solve though, they want to know how they're supposed to tell the different kinds of flour apart.


Still pretty simple:

"Just like with flour, keep them in their own containers, and keep track of which container is which. If you lose track, bake something small as a test or test the cable by plugging it in."


I much prefer the other solution we have for flour. Having them labeled. Literally just need colored bands on the cable like a resister.


They tried that for USB 3.0: blue plastic instead of black. (though that was also a bit of a disaster)


Cake flour makes yummy pizza dough though.


Only if you're doing thin crust and don't mind a crunch; cake flour in pizza leaves the crust unchewy, which is a big downside if you wanted pizza like most people want pizza. Except people who live in Detroit, who are very happy with their hard cake pizza dough.

Now, you can use both types of flour and get a cool result but cake flour on its own will leave you with a rock with tomato sauce and cheese, most of the time.


I wish that article was posted some months ago. I literally burned my eyes for a whole day trying to figure out why this Apple Thunderbolt Display refused to work with a HP 800 G4 SFF plus the Thunderbolt PCIe card and, when it finally showed some image, the brightness was at its maximum - after a while the thing was really hot.

Until finally I noticed the 'security' thing and set it to none, and could set its brightness to a lower setting and my eyes said thank you.


I have almost the same setup (using an 800 G4 mini), and a thunderbolt display.

This mostly works, but it's pretty terrible. If the display goes to sleep (say after a period of inactivity) it's impossible to wake up. Also, if I plug it in while the computer is running, the image won't come on.

Do you have any of these issues, and if no, did you do anything specific to address them?


As someone who has wrestled with the Gigabyte Titan Ridge card on a hackintosh, including flashing different firmwares many times with a raspberry pi as an SPI tool, this article is so so interesting.

So much of getting this stuff to work feels like random luck and incantation. I really appreciate the author’s research and effort in writing this up.


While Thunderbolt on AMD systems isn't a widespread phenomenon, there are a couple current-gen motherboards with TB3 ports, and one with TB4. (They are however, somewhat pricey.)

From what I can see, eGPU configurations are specifically called out as unsupported, and people trying have a few hurdles to jump as well.


Reminds me of how excited I was to get a USB Ethernet port for my Packard Bell 1st gen pentium 60mhz that was discounted because it had the floating point bug. But yeah it just didn't work due to failing drivers and that is when I realized that the future promised by these plug and play protocols was going to be fraught by the same hardware compatibility challenges that make building systems hard. I also have a motherboard currently where the usb-c port only works at USB 2.0 speeds in both Linux and Windows. I get the feeling that it is probably just broken for everyone who had this model and support didn't have much to say either. This stuff is hard and one can hope that it eventually gets figured out but I suspect not.


What was a 60 mhz Pentium system doing with a USB port? It certainly didn't come with one, as by the time USB was released in mid 1996 the FDIV pentiums had been recalled for a year and a half (December 1994). USB support on Windows didn't really get acceptable until windows 98 and even then it wasn't good, so I'm not surprised the USB Ethernet device didn't work out.


It sounds like a card was purchased and installed in the PC.


I could be wrong considering it was over 2 decades ago and I never verified the floating point bug. There were no expansion ports on the computer and so I was using one of the built-in USB ports as that was the only expansion possible. This seems like the motherboard it would have used https://pb.retropc.se/770.html

But yeah windows 95 did have very limited USB support based upon the 2nd service pack if I remember correctly but it did not really work very well.


Yeah, USB + Ethernet [+ Firewire] all-in-one cards used to be reasonably common, because many motherboards in the PII-PIII time didn't have USB or only had two USB ports, and a lot also did not have an on-board Ethernet port.


I actually got a GC-TITAN-RIDGE v2 card working in the way that was described in the stack overflow post that was linked.

I'm really enjoying not having to reboot my PC every time I change the configuration on my PCIe enabled FPGA dev boards.


Site is down for me: https://archive.is/ZmUWK


Thunderbolt is what plug and play was in '95. It just works (except it mostly doesn't) on PCs.


I guess this happens because people want an AMD CPU and Thunderbolt? It seems like a hell of a lot of trouble to go through just to keep from having to buy a properly integrated machine like a NUC, pretty much every Intel laptop, or a Mac.


One you compile a monstrous C++ project with -j32 on a Ryzen 5950X you'll understand why people find it worth the trouble to stick with AMD for things like this.


K but where does the thunderbolt enter the story? It’s not that useful.


It’s not unreasonable for someone to have a one cable system these days with thunderbolt.

Personally I have a 18 Intel core workstation with a single thunderbolt 3 cable running to a Caldigit TS3+ dock. During work hours I unplug the dock, and plug my work laptop into the dock instead, and make use of the same keyboard, mouse, monitors, microphone, DAC/AMP, network switch port. Minimal fuss and inconvenience switching between work and private life.

I don’t think it’s unreasonable to desire the same results on an AMD solution.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: