Difference between revisions of "Category:Docking Solutions"

From ThinkWiki
Jump to: navigation, search
(added docking station list for reference)
(removed non-existent docking port)
 
(5 intermediate revisions by the same user not shown)
Line 8: Line 8:
 
|}
 
|}
 
===CS92 Docking Stations, Port Replicators and Adapters===
 
===CS92 Docking Stations, Port Replicators and Adapters===
* [[ThinkPad 700/720 Dock]]
+
====for Standard Docking Port====
* [[ThinkPad 700/720 Port Replicator]]
+
* {{ThinkPad Expansion Unit Model 2}}
 +
* {{ThinkPad 700/720 Port Replicator}}
  
 
===CS93 Docking Stations, Port Replicators and Adapters===
 
===CS93 Docking Stations, Port Replicators and Adapters===
* [[SelectaBase Model I]] with optional [[SelectaBase PC Card Enabler]] or [[SelectaBase PC Card Enabler with Advanced EtherJet]] and with optional [[SelectaDock I]] or [[SelectaDock II]] or [[SelectaDock III]]
+
====for Standard Docking Port====
* [[ThinkPad Dock II (3546)]]
+
* {{SelectaBase Model I}} with optional {{SelectaBase PC Card Enabler}} or {{SelectaBase PC Card Enabler with Advanced EtherJet}} and with optional {{SelectaDock I}} or {{SelectaDock II}} or {{SelectaDock III}}
* [[ThinkPad Dock I (3545)]]
+
* {{ThinkPad Dock II (3546)}}
* [[ThinkPad Port Replicator Model 2]]
+
* {{ThinkPad Dock I (3545)}}
* [[ThinkPad Port Replicator Model 1]]
+
* {{ThinkPad Port Replicator Model 2}}
* [[ThinkPad 365X Port Replicator]]
+
* {{ThinkPad Port Replicator Model 1}}
* [[ThinkPad 365 Port Replicator]]
+
* {{ThinkPad 365X Port Replicator}}
* [[ThinkPad MultiPort II]]
+
* {{ThinkPad 365 Port Replicator}}
* [[Dock II Adapter Kit|ThinkPad Dock II (3546) Adapter Kit]]
+
* {{ThinkPad MultiPort Replicator II}}
 +
* {{ThinkPad Dock II (3546) Adapter Kit}}
  
 
===CS94 Docking Stations, Port Replicators and Adapters===
 
===CS94 Docking Stations, Port Replicators and Adapters===
* [[ThinkPad MultiPort]]
+
====for Standard Docking Port====
 +
* {{ThinkPad MultiPort Replicator}}
  
===CS96 Docking Stations. Port Replicators and Adapters===
+
===CS96 Docking Stations, Port Replicators and Adapters===
* [[UltraBase|ThinkPad UltraBase]]
+
====for Standard Docking Port====
* [[ThinkPad Enhanced Port Replicator]]
+
* {{ThinkPad UltraBase}}
* [[ThinkPad 560 Port Replicator]]
+
* {{ThinkPad Enhanced Port Replicator}}
* [[ThinkPad 380/385 Port Replicator]]
+
* {{ThinkPad 560 Port Replicator}}
* [[Direct Dock Adapter]]
+
* {{ThinkPad 380/385 Port Replicator}}
 +
* {{ThinkPad Direct Dock Adapter}}
  
===CS97 Docking Stations. Port Replicators and Adapters===
+
===CS97 Docking Stations, Port Replicators and Adapters===
* [[SelectaBase 770]] with optional [[SelectaBase PC Card Enabler]] or [[SelectaBase PC Card Enabler with Advanced EtherJet]] and with optional [[SelectaDock I]] or [[SelectaDock II]] or [[SelectaDock III]]
+
====for Standard Docking Port====
 +
* {{SelectaBase 770}} with optional {{SelectaBase PC Card Enabler}} or {{SelectaBase PC Card Enabler with Advanced EtherJet}} and with optional {{SelectaDock I}} or {{SelectaDock II}} or {{SelectaDock III}}
  
===CS98 Docking Stations. Port Replicators and Adapters===
+
===CS98 Docking Stations, Port Replicators and Adapters===
 
====for Special Docking Port====
 
====for Special Docking Port====
* [[ThinkPad i Series Port Replicator]]
+
* {{ThinkPad i Series Port Replicator}}
 
====for Slim Docking Port====
 
====for Slim Docking Port====
* [[SelectaBase 600]] with optional [[SelectaBase PC Card Enabler]] or [[SelectaBase PC Card Enabler with Advanced EtherJet]] and with optional [[SelectaDock I]] or [[SelectaDock II]] or [[SelectaDock III]]
+
* {{SelectaBase 600}} with optional {{SelectaBase PC Card Enabler}} or {{SelectaBase PC Card Enabler with Advanced EtherJet}} and with optional {{SelectaDock I}} or {{SelectaDock II}} or {{SelectaDock III}}
 
====for Standard Docking Port====
 
====for Standard Docking Port====
* [[ThinkPad Port Replicator with Advanced EtherJet]]
+
* {{ThinkPad Port Replicator with Advanced EtherJet}}
  
 
===CS00 Docking Stations, Port Replicators and Adapters===
 
===CS00 Docking Stations, Port Replicators and Adapters===
 
====for Special Docking Port====
 
====for Special Docking Port====
* [[TransNote Port Extender|ThinkPad TransNote Port Replicator]]
+
* {{ThinkPad TransNote Port Replicator}}
 
====for Slim Docking Port====
 
====for Slim Docking Port====
* [[ThinkPad X4 UltraBase]]
+
* {{ThinkPad X4 UltraBase}}
* [[ThinkPad X4 Dock]]
+
* {{ThinkPad X4 Dock}}
 
====for Standard Docking Port====
 
====for Standard Docking Port====
* [[ThinkPad Dock II]]
+
* {{ThinkPad Dock II}}
* [[ThinkPad Dock]]
+
* {{ThinkPad Dock}}
* [[ThinkPad Mini-Dock]]
+
* {{ThinkPad Mini-Dock}}
* [[ThinkPad Port Replicator II]]
+
* {{ThinkPad Port Replicator II}}
* [[ThinkPad Port Replicator]]
+
* {{ThinkPad Port Replicator}}
* [[ThinkPad X3 UltraBase]]
+
* {{ThinkPad X3 UltraBase}}
* [[UltraBase X2|ThinkPad X2 UltraBase]]
+
* {{ThinkPad X2 UltraBase}}
  
 
===CS05 Docking Stations, Port Replicators and Adapters===
 
===CS05 Docking Stations, Port Replicators and Adapters===
 
====for Special Docking Port====
 
====for Special Docking Port====
* [[W700 Mini Dock 2.0|ThinkPad W700 Mini-Dock 2.0]]
+
* {{ThinkPad W700 Mini-Dock 2.0}}
* [[W700 Mini Dock|ThinkPad W700 Mini-Dock]]
+
* {{ThinkPad W700 Mini-Dock}}
 
====for Slim Docking Port====
 
====for Slim Docking Port====
* [[ThinkPad X6 UltraBase]]
+
* {{ThinkPad X6 UltraBase}}
* [[ThinkPad X6 Tablet UltraBase]]
+
* {{ThinkPad X6 Tablet UltraBase}}
 
====for Standard Docking Port====
 
====for Standard Docking Port====
* [[ThinkPad Advanced Dock]]
+
* {{ThinkPad Advanced Dock}}
* [[ThinkPad Advanced Mini Dock|ThinkPad Advanced Mini-Dock]]
+
* {{ThinkPad Advanced Mini-Dock}}
* [[ThinkPad Essential Port Replicator]]
+
* {{ThinkPad Essential Port Replicator}}
  
 
===CS08 Docking Stations, Port Replicators and Adapters===
 
===CS08 Docking Stations, Port Replicators and Adapters===
 
====for Standard Docking Port====
 
====for Standard Docking Port====
* [[ThinkPad X200 UltraBase]]
+
* {{ThinkPad X200 UltraBase}}
  
 
===CS09 Docking Stations, Port Replicators and Adapters===
 
===CS09 Docking Stations, Port Replicators and Adapters===
 
====for Standard Docking Port====
 
====for Standard Docking Port====
* [[ThinkPad UltraBase Series 3]]
+
* {{ThinkPad UltraBase Series 3}}
* [[ThinkPad Mini Dock Plus Series 3|ThinkPad Mini-Dock Plus Series 3]]
+
* {{ThinkPad Mini-Dock Plus Series 3}}
* [[ThinkPad Mini Dock Series 3|ThinkPad Mini-Dock Series 3]]
+
* {{ThinkPad Mini-Dock Series 3}}
* [[ThinkPad Port Replicator Series 3]]
+
* {{ThinkPad Port Replicator Series 3}}
* [[CS09 Dock Adapter|ThinkPad CS09 Dock Adapter]]
+
* {{ThinkPad CS09 Dock Adapter}}
  
 
===CS13 Docking Stations, Port Replicators and Adapters===
 
===CS13 Docking Stations, Port Replicators and Adapters===
====for Special Docking Port====
 
* [[ThinkPad Workstation Dock]]
 
 
====for Standard Docking Port====
 
====for Standard Docking Port====
* [[ThinkPad Ultra Dock]]
+
* {{ThinkPad Workstation Dock}}
* [[ThinkPad Pro Dock]]
+
* {{ThinkPad Ultra Dock}}
* [[ThinkPad Basic Dock]]
+
* {{ThinkPad Pro Dock}}
 +
* {{ThinkPad Basic Dock}}
 +
* [[ThinkPad CS13 Dock Adapter]]
 +
 
 +
===CS18 Docking Stations, Port Replicators and Adapters===
 +
====for Standard Docking Port====
 +
* {{ThinkPad Ultra Docking Station}}
 +
* {{ThinkPad Pro Docking Station}}
 +
* {{ThinkPad Basic Docking Station}}
 +
 
 +
==Linux support==
 +
With recent distributions, docking and undocking should function out of the box. You can monitor this by running {{cmdroot|udevadm monitor}} and when you dock or press the undock button you should see a flurry of events.
 +
 
 +
There are some issues though
 +
 
 +
====No event on undock====
 +
There are various possible reasons for not getting ACPI docking or undocking events;
 +
 
 +
# port-replicators have never supported ACPI docking events
 +
# newer docks (series 3 and newer from 2009 onwards), instead of generating ACPI dock events, generate key events which are only supported by the thinkpad-acpi driver since kernel 3.0. And no default action is taken on receiving these events.
 +
# prior to kernel 2.6.34 the ACPI Dock driver only registered the first logical Dock port, and subsequent dock ports where ignored. This effected the ThinkPad X40 with ThinkPad X4 Dock. For older kernels patches are [https://bugzilla.kernel.org/show_bug.cgi?id=15521 available].
 +
 
 +
====Filesystem corruption====
 +
Pressing the undock button will immediately unplug all dock attached devices. This can easily lead to problems, for instance if you have a USB or Ultrabay storage device attached to the dock and have a filesystem mounted RW, this can easily lead to filesystem corruption.
 +
 
 +
The solution for now is to always make sure any storage devices attached to the dock are unmounted BEFORE pressing the undock button.
 +
====External display issues====
 +
{{NOTE|This only works for devices that register themselves as a dock through ACPI, it does not work for port replicators which are hidden to the OS.}}
 +
{{NOTE|Newer series 3 docks no longer register themselves as a dock, but instead behave like a port replicator, as such the below method does not work. They do however cause a key event on dock and undock which could be used as a trigger, but for now these key events are not exposed by the thinkpad-acpi driver before kernel 3.0}}
 +
Docking or undocking will also not change the display configuration, which can lead to issues when your undock and your screensaver decided to put the unlock dialog on the secondary display, effectively requiring you to unlock the screensaver blind, before you can press Fn-F7 to restore your display setup to ThinkPad (LVDS) only. This last issue can be resolved by creating a custom udev rule and script as shown below. This script can also be used to take other actions on dock/undock such as automatically configuring your external display on dock.
 +
 
 +
create a file {{Path|/etc/udev/rules.d/81-thinkpad-dock.rules}}
 +
KERNEL=="dock.0", ACTION=="change", RUN+="/usr/local/sbin/thinkpad-dock.sh"
 +
 
 +
Then create the file {{Path|/usr/local/sbin/thinkpad-dock.sh}}
 +
#!/bin/sh
 +
# wait for the dock state to change
 +
sleep 0.5
 +
DOCKED=$(cat /sys/devices/platform/dock.0/docked)
 +
case "$DOCKED" in
 +
"0")
 +
        #undocked event - lets remove all connected outputs apart from LVDS
 +
        for output in $(/usr/bin/xrandr -d :0.0 --verbose|grep " connected"|grep -v LVDS|awk '{print $1}')
 +
          do
 +
          /usr/bin/xrandr -d :0.0 --output $output --off
 +
        done
 +
;;
 +
"1")
 +
#docked event - sample will created extended desktop with DVI1 to the right of LVDS1
 +
#/usr/bin/xrandr -d :0.0 --output DVI1 --right-of LVDS1 --auto
 +
;;
 +
esac
 +
exit 0
 +
And set it executable
 +
chmod +x /usr/local/sbin/thinkpad-dock.sh
 +
 
 +
{{NOTE|The output names shown above are specific to the Intel video drivers. For the ATI Radeon driver they are different. But you best check your output names by running xrandr manually, and adjusting the script appropriately for your needs. The undock event should work on any ThinkPad where the graphics driver supports RandR and the ThinkPad LCD has LVDS in the name.}}
 +
 
 +
Part of this is based on information from a thread on the Ubuntu [http://ubuntuforums.org/showthread.php?t=1076486 forums]
 +
 
 +
====Series 3 docks====
 +
There is a solution for the Series 3 docks: http://phihag.de/2012/thinkpad-docking.html
 +
 
 +
====Dock scripts====
 +
Mostly for ACPI support related to docks, it can be found [https://github.com/martin-ueding/thinkpad-scripts here].
  
 
[[Category:Components]]
 
[[Category:Components]]

Latest revision as of 12:49, 22 November 2020

Docking Solutions

This is a category to contain docking stations and their respective adapters, which can be attached to models with a dedicated docking port.

2015lenovologoandslogan.png

CS92 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

CS93 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

CS94 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

CS96 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

CS97 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

CS98 Docking Stations, Port Replicators and Adapters

for Special Docking Port

for Slim Docking Port

for Standard Docking Port

CS00 Docking Stations, Port Replicators and Adapters

for Special Docking Port

for Slim Docking Port

for Standard Docking Port

CS05 Docking Stations, Port Replicators and Adapters

for Special Docking Port

for Slim Docking Port

for Standard Docking Port

CS08 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

CS09 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

CS13 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

CS18 Docking Stations, Port Replicators and Adapters

for Standard Docking Port

Linux support

With recent distributions, docking and undocking should function out of the box. You can monitor this by running # udevadm monitor and when you dock or press the undock button you should see a flurry of events.

There are some issues though

No event on undock

There are various possible reasons for not getting ACPI docking or undocking events;

  1. port-replicators have never supported ACPI docking events
  2. newer docks (series 3 and newer from 2009 onwards), instead of generating ACPI dock events, generate key events which are only supported by the thinkpad-acpi driver since kernel 3.0. And no default action is taken on receiving these events.
  3. prior to kernel 2.6.34 the ACPI Dock driver only registered the first logical Dock port, and subsequent dock ports where ignored. This effected the ThinkPad X40 with ThinkPad X4 Dock. For older kernels patches are available.

Filesystem corruption

Pressing the undock button will immediately unplug all dock attached devices. This can easily lead to problems, for instance if you have a USB or Ultrabay storage device attached to the dock and have a filesystem mounted RW, this can easily lead to filesystem corruption.

The solution for now is to always make sure any storage devices attached to the dock are unmounted BEFORE pressing the undock button.

External display issues

NOTE!
This only works for devices that register themselves as a dock through ACPI, it does not work for port replicators which are hidden to the OS.
NOTE!
Newer series 3 docks no longer register themselves as a dock, but instead behave like a port replicator, as such the below method does not work. They do however cause a key event on dock and undock which could be used as a trigger, but for now these key events are not exposed by the thinkpad-acpi driver before kernel 3.0

Docking or undocking will also not change the display configuration, which can lead to issues when your undock and your screensaver decided to put the unlock dialog on the secondary display, effectively requiring you to unlock the screensaver blind, before you can press Fn-F7 to restore your display setup to ThinkPad (LVDS) only. This last issue can be resolved by creating a custom udev rule and script as shown below. This script can also be used to take other actions on dock/undock such as automatically configuring your external display on dock.

create a file /etc/udev/rules.d/81-thinkpad-dock.rules

KERNEL=="dock.0", ACTION=="change", RUN+="/usr/local/sbin/thinkpad-dock.sh"

Then create the file /usr/local/sbin/thinkpad-dock.sh

#!/bin/sh
# wait for the dock state to change
sleep 0.5
DOCKED=$(cat /sys/devices/platform/dock.0/docked)
case "$DOCKED" in
	"0")
       #undocked event - lets remove all connected outputs apart from LVDS
       for output in $(/usr/bin/xrandr -d :0.0 --verbose|grep " connected"|grep -v LVDS|awk '{print $1}')
         do
         /usr/bin/xrandr -d :0.0 --output $output --off
       done
	;;
	"1")
	#docked event - sample will created extended desktop with DVI1 to the right of LVDS1
	#/usr/bin/xrandr -d :0.0 --output DVI1 --right-of LVDS1 --auto
	;;
esac
exit 0

And set it executable

chmod +x /usr/local/sbin/thinkpad-dock.sh
NOTE!
The output names shown above are specific to the Intel video drivers. For the ATI Radeon driver they are different. But you best check your output names by running xrandr manually, and adjusting the script appropriately for your needs. The undock event should work on any ThinkPad where the graphics driver supports RandR and the ThinkPad LCD has LVDS in the name.

Part of this is based on information from a thread on the Ubuntu forums

Series 3 docks

There is a solution for the Series 3 docks: http://phihag.de/2012/thinkpad-docking.html

Dock scripts

Mostly for ACPI support related to docks, it can be found here.