Difference between revisions of "IBM ThinkPad X60s"

From ArchWiki
Jump to: navigation, search
m (Reverted edits by Manolo (Talk) to last revision by Gog)
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category:Laptops (English)]]
+
[[Category:IBM]]
I am a recent convert.  I think its the usual history ....  years of windows, 2 years of Ubuntu, and now seeking something better.  I experimented with Arch in Sun VM for a month, and got comfortable with it.  This week (Jul 2009) I made the shift and the speed, reliability and responsiveness is terrific.  Probably of more importance, I have learned more in the conversion than I ever could in Ubuntu.  I believe the reason is that while Arch is minimalist, it is also intelligent.  Pacman is infinitely superior to Synaptic for example.  The reason is that once you get over the command line phobia, it just works and works fast.  Dependency problems are eliminated, and no more seeking obscure repositories to keep up to date. 
+
{{Article summary start}}
 +
{{Article summary text|Installation instructions for the IBM ThinkPad X60s}}
 +
{{Article summary heading|Related articles}}
 +
{{Article summary wiki|IBM ThinkPad X60}}
 +
{{Article summary wiki|Lenovo Thinkpad X60 Tablet}}
 +
{{Article summary end}}
  
Anyhow here are some of the key findings from my perspective. Bear in mind the Beginners Guide on wiki.archlinux.org is the bible.  I am focussed here on the X60s specific things I encountered.  Have fun.
+
The IBM Thinkpad X60s is a small light laptop with a Core Duo or Core 2 Duo processor and [[Intel Graphics]]. It has no internal optical drive. You can see the specs at [http://www.thinkwiki.org/wiki/Category:X60s ThinkWiki], a wonderful resource with additional information.
  
 +
==Installation==
 +
First note that this laptop is available with two different processors.
  
=== Install from CD - thinkpad X60s ===
+
* Core Duo
Follow each menu item carefully, and do not skip any of themEach one has place and a reason. A couple of key ones that have lasting effects:
+
:This processor requires the i686 (32-bit) version of Arch LinuxThe two RAM slots physically support 2x2GB=4GB RAM. However with a 32-bit kernel only up to ~3GB will be accessible. Unfortunately due to a chipset limitation, even compiling a kernel with the Physical Address Extension (PAE) option (CONFIG_HIGHMEM64G) [https://aur.archlinux.org/packages.php?ID=24469] will not allow access to more than 3GB.
1. prepare a partition strategy before you begin. Arch has the smarts to give you separate partitions for boot, root, home and swap. Some add others - i did not. I used:
+
* boot - 128MB
+
* Root - 20 Gb
+
* Swap - 2.5Gb (note I have since read that this is on the small side, but I have not seen any performance degradation and swap never gets used on this  machine so far. If I did it again I would go for 5 gig.  With Arch though you never do again, unless you miss the fun !
+
* home - the rest - in my case 70Gb
+
  
2. take special care in the menu item 'base system". The items that are starred will be installed. /The items not starred will NOT be installed.  Why is this important?  Arch requires a constant network connection to continue the installation once the CD install is installed.  Note the CD does not have openoffice, firefox, Gnome, XFCE or any other things you may have come to accept with other distro cd's.  So you MUST have internet installed post the base install. Read down the base list carefully, and look for wireless-tools,  and if you are lucky as I was look for the driver for your wireless card.  In my case the intel 3945 was there!
+
* Core <b>2</b> Duo
 +
:This processor can run the x86_64 (64-bit) version of Arch Linux, and this is recommended in this case. The full 4GB RAM will be available with the standard Arch x86_64 kernel.
  
So finish the base install, reboot, and you should be have a network hook present.
+
A basic Arch Linux installation will do just fine for almost everything. Select the i686 or x86_64
 +
version as indicated above. Install from a USB CD drive or a USB flash drive following the instructions in the [[Beginners Guide]].
  
From terminal do iwconfig and look for something like wlan0 and a description that looks like your wireless card.  Lets assume wlan0.  Do this (no sudo required, because you are root at the moment - no users installed.
+
It is easiest to do the initial installation with a wired ethernet connection which you can set up in the installation menu. In the base install package selection you can install the packages required for the wireless networking
* ifconfig wlan0 up
+
[*] wireless-tools
* iwconfig wlan0 essid "your_network_name" key [your key no brackets]
+
[*] iwlwifi-3945-ucode
* dhcpcd wlan0
+
  
Next before you try to install anything this next step is essential.  Arch is a rolling release model, therefore your install CD is out of date the moment you create it.  So you must update your system from the network to ensure all is up to date and all dependencies are correct.  I did not do this the first time, and had all kinds of kernel panic, which means your computer has been bricked and you must start over again.
+
Follow the [[Beginners Guide]] step by step to install sudo, add users, add to groups, video card driver, then install Xorg, and a desktop environment.
  
To prevent bricking do this -  pacman -Syyu
+
==Graphics==
  
The yy forces up update to local database register of installed programmes, and the u uprades your system. Follow the prompts as required.
+
See [[Intel Graphics]]. The required driver is xf86-video-intel.
  
Then ....
+
==Ethernet==
  
Now follow the stuff in the beginners guide at wiki.archlinux.org to install sudo, add users, add to groups, video card driver, then install xorg, xfce4.  It is worth to follow that beginners guide step by step. 
+
Gigabit ethernet works out of the box with the e1000e kernel module.
  
Once up and running, some additional things that took a little while:
+
==Wireless Networking==
  
Suspend
+
See [[Wireless_Setup#iwl3945.2C_iwl4965_and_iwl5000-series]].
  
Install  [[s2ram]]  (pacman -S uswsusp and make these changes below.  This set of stuff is not well documented, but once I did this it was very smooth. 
+
==Special Keys==
  
from http://aur.archlinux.org/packages/uswsusp-fbsplash/uswsusp-fbsplash/uswsusp.install
+
See http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work.
  
==> If suspend to ram doesn't work, edit the whitelist.c.diff
+
==Suspend==
==> file to add your machine to the s2ram whitelist with the
+
==> appropriate methods, then uncomment
+
==> the line in the PKGBUILD where the patch is applied, eventually
+
==> add the md5sum of the resulting patch and finally rebuild the package. 
+
==> Use 's2ram --identify' to identify your machine.
+
==> Be sure to let the suspend-devel list know!
+
  
==> The new Software Suspend does not use kernel parameters
+
===With pm-utils===
==> to determine the suspend partition, instead it consults the
+
==> /etc/suspend.conf file when booting.
+
==> You MUST edit this file before you update your initrd.
+
  
==> You will need to update your mkinitcpio.conf file to
+
See the article on [[pm-utils]]. This works fine.
==> include the hook uresume.  Replace your 'resume' hook
+
 
==> with 'uresume'.  If you do not have a resume hook the
+
===With uswsusp===
==> uresume hook must go before filesystems but after ide,
+
{{Accuracy}}
==> sata, and/or scsi.
+
Install  [[s2ram]]  (pacman -S uswsusp) and make these changes below.  This set of stuff is not well documented, but once I did this it was very smooth. 
==> Do not get this wrong.  Then rebuild the ramdisk with
+
 
==> 'mkinitcpio -p kernel26' (or what else needed for the kernel you use)
+
from https://aur.archlinux.org/packages/uswsusp-fbsplash/uswsusp-fbsplash/uswsusp.install
 +
 
 +
If suspend to ram doesn't work, edit the whitelist.c.diff
 +
file to add your machine to the s2ram whitelist with the
 +
appropriate methods, then uncomment
 +
the line in the PKGBUILD where the patch is applied, eventually
 +
add the md5sum of the resulting patch and finally rebuild the package. 
 +
Use 's2ram --identify' to identify your machine.
 +
Be sure to let the suspend-devel list know!
 +
 
 +
The new Software Suspend does not use kernel parameters
 +
to determine the suspend partition, instead it consults the
 +
/etc/suspend.conf file when booting.
 +
You MUST edit this file before you update your initrd.
 +
 
 +
You will need to update your mkinitcpio.conf file to
 +
include the hook uresume.  Replace your 'resume' hook
 +
with 'uresume'.  If you do not have a resume hook the
 +
uresume hook must go before filesystems but after ide,
 +
sata, and/or scsi.
 +
Do not get this wrong.  Then rebuild the ramdisk with
 +
mkinitcpio -p linux
  
 
Note, when I do s2ram --identify
 
Note, when I do s2ram --identify
Line 73: Line 88:
 
Next some file edits in policies.
 
Next some file edits in policies.
  
1.  sudo mousepad [[/etc/acpi/actions/]]lm.lid.sh comment our everything, and add:
+
1.  As root edit {{ic|/etc/acpi/actions/lm.lid.sh}}. Comment out everything, and add:
 +
 
 +
<pre>
 
if grep closed /proc/acpi/button/lid/LID/state >/dev/null ; then
 
if grep closed /proc/acpi/button/lid/LID/state >/dev/null ; then
 
     # if the lid is now closed, save the network state and suspend to ram
 
     # if the lid is now closed, save the network state and suspend to ram
Line 83: Line 100:
 
     netcfg all-resume
 
     netcfg all-resume
 
fi
 
fi
 +
</pre>
  
 
You should now have suspend working.
 
You should now have suspend working.
  
Another quirky thing is a hal error on shutdown preventing linux from truning the machine off.  From https://lists.ubuntu.com/archives/xubuntu-users/2009-June/001783.html I got this patch to /etc/PolicyKit/PolicyKit.conf
+
Another quirky thing is a hal error on shutdown preventing linux from turning the machine off.  From https://lists.ubuntu.com/archives/xubuntu-users/2009-June/001783.html I got this patch to {{ic|/etc/PolicyKit/PolicyKit.conf}}
  
 +
<pre>
 
<config version="0.1">
 
<config version="0.1">
 
<match action="org.freedesktop.hal.storage.mount-removable">
 
<match action="org.freedesktop.hal.storage.mount-removable">
Line 99: Line 118:
 
</match>
 
</match>
 
</config>
 
</config>
 +
</pre>
  
This file was blank but by addiing the above, shutdown is now down by linux.  I need to study policykit and hal.  This is unclear, but my sense is that PolicyKit.conf is no longer used and a better fix is required in either [[/etc/acpi]] or [[/etc/hal.]]
+
This file was blank but by adding the above, shutdown is now down by linux.  I need to study policykit and hal.  This is unclear, but my sense is that PolicyKit.conf is no longer used and a better fix is required in either [[/etc/acpi]] or [[/etc/hal.]]
 
+
Finally to get Rogers dongle red stick working, I found all here:  http://www.zeroflux.org/blog/post/255 and pased below for reference.  Note other accolades at the bottom for this one.
+
 
+
1. Disable CD mode on the device.
+
 
+
Using a Windows machine, plug in the USB device and go through the short install wizard.  Once done, close the Rogers app that starts up, then head into the Device Manager (Control Panel -> System -> Device Manager).  Under the Ports section, find the COM port that's connected to the USB modem (ignore the Diagnostics one).  Connect to that COM port through Hyperterminal, found in the Accessories area of the Start Menu.  Connection parameters are
+
 
+
Bits per Second: 115200
+
Data bits: 8
+
Parity: None
+
Stop bits: 1
+
Flow Control: None
+
 
+
Once connected, type the following commands:
+
 
+
AT+ZOPRT=5
+
AT+ZCDRUN=8
+
 
+
This tells the modem not to use CD mode when it's first plugged into a computer.  Now exit Hypterterminal and remove the USB modem.  You're done with Windows.
+
 
+
 
+
 
+
2. Setup udev rules.
+
 
+
Create a file /etc/udev/rules.d/90-zte.conf that contains the following:
+
 
+
ACTION!="add", GOTO="ZTE_End"
+
SUBSYSTEM=="usb", SYSFS{idProduct}=="0031", SYSFS{idVendor}=="19d2", GOTO="ZTE_Modem"
+
GOTO="ZTE_End"
+
 
+
LABEL="ZTE_Modem"
+
RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x0031", MODE="660", GROUP="network"
+
LABEL="ZTE_End"
+
 
+
 
+
 
+
3. Setup hal rules.
+
 
+
The current version of hal (that I have) doesn't know about the MF636, though it does acknowledge some earlier models.  To inform it, create a file /etc/hal/fdi/information/10-modem.fdi with the following:
+
 
+
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- xml -*- -->
+
 
+
<deviceinfo version="0.2">
+
  <device>
+
    <match key="info.category" string="serial">
+
        <!-- ZTE MF636 HSDPA USB dongle -->
+
        <match key="@info.parent:usb.product_id" int="0x0031">
+
          <match key="@info.parent:usb.interface.number" int="3">
+
            <append key="modem.command_sets" type="strlist">GSM-07.07</append>
+
            <append key="modem.command_sets" type="strlist">GSM-07.05</append>
+
          </match>
+
        </match>
+
    </match>
+
  </device>
+
</deviceinfo>
+
 
+
 
+
 
+
4. Create a wvdial configuration.
+
 
+
Wvdial is an easy-to-use frontend to PPPd.  The configuration is fairly easy to comprehend.  This one is probably longer than it needs to be, but I'll include it all.  Make sure you replace the /dev/ttyUSB0 line with the node that your USB modem is connected to.  Save as /etc/wvdial.conf [[wvdial.conf]]
+
 
+
 
+
5. Dial up to the interwebs.
+
 
+
Now just run wvdial to connect!
+
 
+
# wvdial -C /etc/wvdial.conf
+
 
+
If you see output reporting your PPP local and endpoint IP addresses, then you've won!  Crack a beer and troll some forums.
+
 
+
 
+
 
+
6. Acknowledge the real heroes.
+
 
+
Thanks to the following webpages that gave me all this information:
+
 
+
    * http://www.matt-barrett.com/?p=5
+
    * http://ubuntuforums.org/showthread.php?t=1005910
+
    * http://ubuntuforums.org/showthread.php?t=1065934
+

Revision as of 13:02, 23 April 2012

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary end

The IBM Thinkpad X60s is a small light laptop with a Core Duo or Core 2 Duo processor and Intel Graphics. It has no internal optical drive. You can see the specs at ThinkWiki, a wonderful resource with additional information.

Installation

First note that this laptop is available with two different processors.

  • Core Duo
This processor requires the i686 (32-bit) version of Arch Linux. The two RAM slots physically support 2x2GB=4GB RAM. However with a 32-bit kernel only up to ~3GB will be accessible. Unfortunately due to a chipset limitation, even compiling a kernel with the Physical Address Extension (PAE) option (CONFIG_HIGHMEM64G) [1] will not allow access to more than 3GB.
  • Core 2 Duo
This processor can run the x86_64 (64-bit) version of Arch Linux, and this is recommended in this case. The full 4GB RAM will be available with the standard Arch x86_64 kernel.

A basic Arch Linux installation will do just fine for almost everything. Select the i686 or x86_64 version as indicated above. Install from a USB CD drive or a USB flash drive following the instructions in the Beginners Guide.

It is easiest to do the initial installation with a wired ethernet connection which you can set up in the installation menu. In the base install package selection you can install the packages required for the wireless networking

[*] wireless-tools
[*] iwlwifi-3945-ucode

Follow the Beginners Guide step by step to install sudo, add users, add to groups, video card driver, then install Xorg, and a desktop environment.

Graphics

See Intel Graphics. The required driver is xf86-video-intel.

Ethernet

Gigabit ethernet works out of the box with the e1000e kernel module.

Wireless Networking

See Wireless_Setup#iwl3945.2C_iwl4965_and_iwl5000-series.

Special Keys

See http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work.

Suspend

With pm-utils

See the article on pm-utils. This works fine.

With uswsusp

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:IBM ThinkPad X60s#)

Install s2ram (pacman -S uswsusp) and make these changes below. This set of stuff is not well documented, but once I did this it was very smooth.

from https://aur.archlinux.org/packages/uswsusp-fbsplash/uswsusp-fbsplash/uswsusp.install

If suspend to ram doesn't work, edit the whitelist.c.diff file to add your machine to the s2ram whitelist with the appropriate methods, then uncomment the line in the PKGBUILD where the patch is applied, eventually add the md5sum of the resulting patch and finally rebuild the package. Use 's2ram --identify' to identify your machine. Be sure to let the suspend-devel list know!

The new Software Suspend does not use kernel parameters to determine the suspend partition, instead it consults the /etc/suspend.conf file when booting. You MUST edit this file before you update your initrd.

You will need to update your mkinitcpio.conf file to include the hook uresume. Replace your 'resume' hook with 'uresume'. If you do not have a resume hook the uresume hook must go before filesystems but after ide, sata, and/or scsi. Do not get this wrong. Then rebuild the ramdisk with

mkinitcpio -p linux

Note, when I do s2ram --identify This machine can be identified by:

   sys_vendor   = "LENOVO"
   sys_product  = "1702HFU"
   sys_version  = "ThinkPad X60s"
   bios_version = "7BETD3WW (2.14 )"

See http://suspend.sf.net/s2ram-support.html for details

It is highly reassuring to see that your system is recognised. If you do not get recognised, there is a hal problem, and your earlier install is not complete.

Next some file edits in policies.

1. As root edit /etc/acpi/actions/lm.lid.sh. Comment out everything, and add:

if grep closed /proc/acpi/button/lid/LID/state >/dev/null ; then
    # if the lid is now closed, save the network state and suspend to ram
    netcfg all-suspend
    pm-suspend
else
    # if the lid is now open, restore the network state.
    # (if we are running, a wakeup has already occurred!)
    netcfg all-resume
fi

You should now have suspend working.

Another quirky thing is a hal error on shutdown preventing linux from turning the machine off. From https://lists.ubuntu.com/archives/xubuntu-users/2009-June/001783.html I got this patch to /etc/PolicyKit/PolicyKit.conf

<config version="0.1">
<match action="org.freedesktop.hal.storage.mount-removable">
<return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.shutdown">
<return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.reboot">
<return result="yes"/>
</match>
</config>

This file was blank but by adding the above, shutdown is now down by linux. I need to study policykit and hal. This is unclear, but my sense is that PolicyKit.conf is no longer used and a better fix is required in either /etc/acpi or /etc/hal.