Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Wondering if this works with a later iMac. He used a 2009 iMac and he put a custom light weight Tiny Core Linux on a USB stick and booted from there to put the iMac in TDM as a second wired display.
2009 iMac just uses DisplayPort. When you press Command-F2 on the iMac, it switches the DisplayPort input of its display from the DisplayPort output of the GPU to the external DisplayPort port. Then the other Mac can see the iMac's display as a newly connected DisplayPort display and will use it automatically.

Later iMacs use Thunderbolt 1 or Thunderbolt 2 which requires more work to enable Thunderbolt Target Display Mode. When you press Command-F2 on the iMac, it switches the DisplayPort input of its display from the DisplayPort output of its GPU to the DisplayPort output adapter of its Thunderbolt controller. It probably communicates with the other Mac over the Thunderbolt connection telling the other Mac to setup a Thunderbolt cross-domain DisplayPort tunnelling path between the DisplayPort input adapter of the other Mac's Thunderbolt controller to the DisplayPort output adapter of the iMac's Thunderbolt controller. Then the other Mac can see the iMac's display as a newly connected DisplayPort display and will use it automatically.

Other Macs do not have Thunderbolt controllers with a DisplayPort output adapter. They just have DisplayPort input adapters which are used to tunnel DisplayPort to DisplayPort output adapters of downstream Thunderbolt controllers.

Maybe someone could add this Thunderbolt cross-domain DisplayPort tunnelling path setup capability to Linux (if its not already there)? One could then use a Thunderbolt dock as a KVM switch: connect the dock to two PCs and have the tunnels to a connected display switch between the PCs. Also, the PCIe tunnels could be switched for the connected keyboard/mouse - it's a bit more clunky than a real KVM which might emulate a connected keyboard/mouse so that they don't appear to be disconnected when switching.
 
  • Like
Reactions: servenvolley
2009 iMac just uses DisplayPort. When you press Command-F2 on the iMac, it switches the DisplayPort input of its display from the DisplayPort output of the GPU to the external DisplayPort port. Then the other Mac can see the iMac's display as a newly connected DisplayPort display and will use it automatically.

Later iMacs use Thunderbolt 1 or Thunderbolt 2 which requires more work to enable Thunderbolt Target Display Mode. When you press Command-F2 on the iMac, it switches the DisplayPort input of its display from the DisplayPort output of its GPU to the DisplayPort output adapter of its Thunderbolt controller. It probably communicates with the other Mac over the Thunderbolt connection telling the other Mac to setup a Thunderbolt cross-domain DisplayPort tunnelling path between the DisplayPort input adapter of the other Mac's Thunderbolt controller to the DisplayPort output adapter of the iMac's Thunderbolt controller. Then the other Mac can see the iMac's display as a newly connected DisplayPort display and will use it automatically.

Other Macs do not have Thunderbolt controllers with a DisplayPort output adapter. They just have DisplayPort input adapters which are used to tunnel DisplayPort to DisplayPort output adapters of downstream Thunderbolt controllers.

Maybe someone could add this Thunderbolt cross-domain DisplayPort tunnelling path setup capability to Linux (if its not already there)? One could then use a Thunderbolt dock as a KVM switch: connect the dock to two PCs and have the tunnels to a connected display switch between the PCs. Also, the PCIe tunnels could be switched for the connected keyboard/mouse - it's a bit more clunky than a real KVM which might emulate a connected keyboard/mouse so that they don't appear to be disconnected when switching.
So I dug a bit into how it was accomplished.

1. https://floe.butterbrot.org/matrix/hacking/tdm/
Here he uses a script to log the Command-F2 keys that was sent to the SMC.

2. https://github.com/floe/smc_util/
Here is the script that runs in linux to send the same command to the SMC.

3. To run the script in an OS, this youtuber put it on a USB stick running Linux Tiny Core

4. This other chap, put it on POP OS: https://balharrie.uk/p/target-display-mode-on-linux/

Would it be possible to hook up an iMac running High Sierra and using Thunderbolt cables (https://support.apple.com/en-sg/105126) and then do the key capture for the bytes that are sent to the SMC to activate it? Then issue the same command to the SMC with the script in 2.

Just a thought.
 
So I dug a bit into how it was accomplished.

1. https://floe.butterbrot.org/matrix/hacking/tdm/
Here he uses a script to log the Command-F2 keys that was sent to the SMC.

2. https://github.com/floe/smc_util/
Here is the script that runs in linux to send the same command to the SMC.

3. To run the script in an OS, this youtuber put it on a USB stick running Linux Tiny Core

4. This other chap, put it on POP OS: https://balharrie.uk/p/target-display-mode-on-linux/

Would it be possible to hook up an iMac running High Sierra and using Thunderbolt cables (https://support.apple.com/en-sg/105126) and then do the key capture for the bytes that are sent to the SMC to activate it? Then issue the same command to the SMC with the script in 2.
All those people had iMacs with Mini DisplayPort ports.
Mid 2011 iMac introduced Thunderbolt.
#4 said 2011 iMac with i5 which should have Thunderbolt. Maybe they had a Mid 2011 with i3? or a 2010? Not enough info to be sure.

The SMC has nothing to do with Thunderbolt so I don't think it's sufficient by itself for iMacs with Thunderbolt?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.