Difference between revisions of "ThinkPad X6 UltraBase"

From ThinkWiki
Jump to: navigation, search
m (please post questions in the discussion page of the article, thanks.)
m (Linux support info, dock/undock code added, some minor changes)
Line 3: Line 3:
 
[[image:UltraBaseX6.gif|UltraBase X6]]
 
[[image:UltraBaseX6.gif|UltraBase X6]]
 
| style="vertical-align:top;" | <div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;">
 
| style="vertical-align:top;" | <div style="margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#F8F8FF; align:right;">
== IBM UltraBase X6 ==
+
== Lenovo UltraBase X6 ==
The IBM UltraBase X6 is a portable dock for the X60 and X60s ThinkPads providing extra ports as well as a bay for an optical drive and a set of stereo speakers. Containing a full featured [[UltraBay|UltraBay Slim]] slot, it provides flexibility in drive choice as well as the option of a secondary battery for extended working time on the road.
+
The IBM UltraBase X6 is a portable dock for the 6-series ThinkPads providing extra ports as well as a bay for an optical drive and a set of stereo speakers. Containing a full featured [[UltraBay|UltraBay Slim]] slot, it provides flexibility in drive choice as well as the option of a secondary battery for extended working time on the road.
  
 
=== Features ===
 
=== Features ===
Line 30: Line 30:
 
==UltraBay Slim==
 
==UltraBay Slim==
 
The UltraBay Slim slot in this dock is a full featured one and supports hot swapping with all UltraBay Slim drives. You can also feed it with the UltraBay Slim battery pack to extend the overall battery life time.
 
The UltraBay Slim slot in this dock is a full featured one and supports hot swapping with all UltraBay Slim drives. You can also feed it with the UltraBay Slim battery pack to extend the overall battery life time.
 +
 +
== UltraBase X6 under Linux ==
 +
The docking stations are (at least in openSUSE) supported by the [http://en.opensuse.org/Dockutils Dockutils] project. The dockutils are formed by a set of simple bash scripts that handle docking and undocking of the computer. When the user chooses to undock the laptop, it does some system calls and when properly configured, it could disconnect the DVD drive in UltraBase or internal display resolution.
 +
 +
Overally, the UltraBase works pretty same way as under Windows (it only has more configuration possibilites), the user only needs to press key on the dock to undock the PC. Docking is handled automatically.
 +
 +
The following code has been tested on {{OpenSUSE}} 10.3 (Linux 2.6.22) with ThinkPad X61 but should work on all dockable ThinkPads with recent kernel and the required software installed.
 +
 +
=== Dockutils hook ===
 +
In order to have the docking handled automatically, we need to create a hook in Dockutils directory({{path|/usr/lib/dockutils}}). We will put our hook in {{path|hooks/thinkpad/}} directory.
 +
 +
{{cmdroot|cat /usr/lib/dockutils/hooks/thinkpad/70x61}}
 +
<pre>#!/bin/bash
 +
# dock/undock script for Thinkpad X61
 +
 +
export DISPLAY=:0
 +
 +
if [ "$1" = "dock" ]; then
 +
        echo "X61 dock"
 +
        # non-present dvd drive workaround
 +
        /bin/rescan-scsi-bus.sh --hosts=1 --channels=0 --ids=0 --luns=0 --forceremove &
 +
 +
        # set external display resolution & dpi
 +
        /usr/bin/xrandr --output VGA --auto
 +
        /usr/bin/xrandr --screen 0 -s 1920x1200
 +
        /usr/bin/xrandr --screen 0 --dpi 96x96
 +
 +
elif [ "$1" = "undock" ]; then
 +
        echo "X61 undock"
 +
 +
        # turn external display off, internal on and set res
 +
        /usr/bin/xrandr --screen 0 -s 1024x768
 +
        /usr/bin/xrandr --output LVDS --auto
 +
        /usr/bin/xrandr --output VGA --off
 +
        /usr/bin/xrandr --screen 0 --dpi 96x96
 +
fi</pre>
 +
{{NOTE|If you don't use external display, remove the <code>/usr/bin/xrandr</code> lines from the script}}
 +
The {{cmdroot|xhost +local:root}} command has to be in {{path|/etc/X11/xinit/xinitrc.d/<script name>}} to get <code>xrandr</code> working from the root account.
 +
 +
=== ACPI event handlers ===
 +
You can always run the Dockutils using {{cmdroot|docker dock}} or {{cmdroot|docker undock}} command, but this is not comfortable. We will use the ACPI subsystem to bind {{key|Fn}}{{key|F8}}, {{key|Fn}}{{key|F9}} keys and blue button on the docking station to the Dockutils. This could be performed using the following code:
 +
 +
{{cmdroot|cat /etc/acpi/events/dock}}
 +
<pre>event=(ibm/dock GDCK 00000000 00000003|ibm/hotkey HKEY 00000080 00001008)
 +
action=/usr/sbin/docker dock</pre>
 +
and
 +
 +
{{cmdroot|cat /etc/acpi/events/undock}}
 +
<pre>event=(ibm/dock GDCK 00000003 00000001|ibm/hotkey HKEY 00000080 00001009)
 +
action=/usr/sbin/docker undock</pre>
 +
Now, you should be able to undock your PC using the keyboard keys and the dock button.
 +
{{NOTE|[[Thinkpad-acpi|thinkpad_acpi]] and <code>acpid</code> must be installed and running for this to work}}

Revision as of 02:12, 7 April 2008

UltraBase X6

Lenovo UltraBase X6

The IBM UltraBase X6 is a portable dock for the 6-series ThinkPads providing extra ports as well as a bay for an optical drive and a set of stereo speakers. Containing a full featured UltraBay Slim slot, it provides flexibility in drive choice as well as the option of a secondary battery for extended working time on the road.

Features

  • Passthrough ports:
  • Ultrabay Slim
  • Stereo speakers
  • Kensington security hole

Pros & Cons

  • Positives: Expansion capability, portable
  • Negatives: makes the ThinkPad quite thick
  • Compatibility: X60, X60s, X61, X61s
  • Warranty: Three Years

UltraBay Slim

The UltraBay Slim slot in this dock is a full featured one and supports hot swapping with all UltraBay Slim drives. You can also feed it with the UltraBay Slim battery pack to extend the overall battery life time.

UltraBase X6 under Linux

The docking stations are (at least in openSUSE) supported by the Dockutils project. The dockutils are formed by a set of simple bash scripts that handle docking and undocking of the computer. When the user chooses to undock the laptop, it does some system calls and when properly configured, it could disconnect the DVD drive in UltraBase or internal display resolution.

Overally, the UltraBase works pretty same way as under Windows (it only has more configuration possibilites), the user only needs to press key on the dock to undock the PC. Docking is handled automatically.

The following code has been tested on OpenSUSE 10.3 (Linux 2.6.22) with ThinkPad X61 but should work on all dockable ThinkPads with recent kernel and the required software installed.

Dockutils hook

In order to have the docking handled automatically, we need to create a hook in Dockutils directory(/usr/lib/dockutils). We will put our hook in hooks/thinkpad/ directory.

# cat /usr/lib/dockutils/hooks/thinkpad/70x61

#!/bin/bash
# dock/undock script for Thinkpad X61

export DISPLAY=:0

if [ "$1" = "dock" ]; then
        echo "X61 dock"
        # non-present dvd drive workaround
        /bin/rescan-scsi-bus.sh --hosts=1 --channels=0 --ids=0 --luns=0 --forceremove &

        # set external display resolution & dpi
        /usr/bin/xrandr --output VGA --auto
        /usr/bin/xrandr --screen 0 -s 1920x1200
        /usr/bin/xrandr --screen 0 --dpi 96x96

elif [ "$1" = "undock" ]; then
        echo "X61 undock"

        # turn external display off, internal on and set res
        /usr/bin/xrandr --screen 0 -s 1024x768
        /usr/bin/xrandr --output LVDS --auto
        /usr/bin/xrandr --output VGA --off
        /usr/bin/xrandr --screen 0 --dpi 96x96
fi
NOTE!
If you don't use external display, remove the /usr/bin/xrandr lines from the script

The # xhost +local:root command has to be in /etc/X11/xinit/xinitrc.d/<script name> to get xrandr working from the root account.

ACPI event handlers

You can always run the Dockutils using # docker dock or # docker undock command, but this is not comfortable. We will use the ACPI subsystem to bind FnF8, FnF9 keys and blue button on the docking station to the Dockutils. This could be performed using the following code:

# cat /etc/acpi/events/dock

event=(ibm/dock GDCK 00000000 00000003|ibm/hotkey HKEY 00000080 00001008)
action=/usr/sbin/docker dock

and

# cat /etc/acpi/events/undock

event=(ibm/dock GDCK 00000003 00000001|ibm/hotkey HKEY 00000080 00001009)
action=/usr/sbin/docker undock

Now, you should be able to undock your PC using the keyboard keys and the dock button.

NOTE!
thinkpad_acpi and acpid must be installed and running for this to work