Installing Ubuntu on a ThinkPad R60e

From ThinkWiki
Revision as of 23:38, 26 August 2007 by Jaskiern (Talk | contribs)

Jump to: navigation, search

Overview

There are no particular problems installing Ubuntu on a R60e.

versions

Most of the information here is based on a clean install of 6.06.1 with upgrade to Ubuntu 7.04 via Ubuntu 6.10. Significant changes that apply to Edgy (6.10) and Feisty (7.04) are noted here. The current development version 'Gutsy Gibbon' can be installed from the 'Tribe 1 alternate CD'; significant changes likely affect the final release (7.10) will also be noted here.

Ubuntu 6.10 "Edgy Eft"

If the wireless kill switch is active during boot, that is wireless and bluetooth are switched off, there is a high probability that a "soft lockup on CPU0" will occur during boot. Boot appears to be ok provided the wireless is on during boot. See Bug 63418.

The problem with the wireless kill switch seems to have been fixed in kernel 2.6.20.

Ubuntu 7.10 "Gutsy Gibbon" The version of Xorg in Gutsy includes RandR version 1.2 this entails some significant revision of the config of X for two screens described below. As this is presently an alpha release I will cover my experimentation and testing on a separate page, see Xorg RandR 1.2

Partition and Boot

If the Windows and Service Partitions are to be retained then the Gnome Partition Editor can be used from the live cd to shrink the Windows partition (sda1). The IBM recovery partition is placed at the end of the HD disk and contains a cut down version of WinNT. Note that the Recovery partion is not located on a cylinder boundary and is placed between 'unused' disk areas, 3MB in front and 7MB behind. These appear to contain the diagnostics programs and should not be moved or resized if the diagnostics and R&R programs are required.

To repartion: boot to Windows and immediately create a Rescue and Recover disk set. The first disc of the set must be a CD (though if you put a DVD in it will be formatted and writen as a CD disc); this is a bootable disc. The second stage of the disc writing process will write to either one DVD or 5 CDs. Restoring from these disks will restore to factory state, which means the entire hard drive is reformatted. After the disc set is created it is not possible to create a second set. (Although if you update the R+R program you can create a new backup CD/DVD.)

However, if you have a USB HD you can also create a Rescue and Recovery copy on that. I have not tried (sucessfully) but I it should be possible to boot and restore from a USB HD recovery set and preserve any new partitions provided that: the windows partition is not too small, and the Recovery partition is preserved.

boot with Ubuntu live CD, use Gnome Partition editor to shrink the IBM_PRELOAD (sda1) partition.

reboot to Windows and let it run chkdsk

boot Ubuntu Live CD and install

The live CD will install GRUB to the MBR. For most users with a simple dual boot (Linux + Win) this will be fine; the installer will identify both IBM_PRELOAD and the service partition and provide boot options for both. (If you have need of a more complex boot arrangement, such as multiple linux versions then install using the Ubuntu alternate install CD.) Edit /boot/grub/menu.lst to add the hide and unhide lines (this will prevent Windows showing the Service Partition).

 # This entry automatically added by the Debian installer for a non-linux OS
 # on /dev/sda1
 title           Microsoft Windows XP Professional
 hide            (hd0,1)
 root            (hd0,0)
 savedefault
 makeactive
 chainloader     +1
 # This entry automatically added by the Debian installer for a non-linux OS
 # on /dev/sda2
 title         IBM/Lenovo Maintenance
 unhide        (hd0,1)
 root          (hd0,1)
 savedefault
 makeactive
 chainloader   +1

Kernel

For current versions (from 6.10) the default kernel linux-image-generic will fully support SMP and CoreDuo processors so installing a kernel should not be necessary. Restricted modules are required for the Intel wireless card.

Xorg.config for two screens

For Ubuntu Gutsy (7.10 alpha) see Xorg RandR 1.2

Intel 945GM The config options are described in the driver man page $ man i810. The following sections are for a configuration with the laptop screen as the primary display and an second display on the D-SUB15 analog VGA port. The second display is expected to be a flat panel or a data projector ('beamer'). There are some tradeoffs with Xorg.conf, the version below is intended to give the best available resolution with a variety of external screens without the need to change xorg.conf. See the notes at the end of this section for some other optimisations.

   Section "Device"
   	Identifier	"Intel 945GM Internal LCD"
   	Driver		"i810"
   	BusID		"PCI:0:2:0"
   	Screen 0
   	Option 	"MonitorLayout" 	"CRT,LFP"
       VideoRAM        126976
   EndSection
   Section "Device"
   	Identifier	"Intel 945GM External D-SUB15"
   	Driver		"i810"
   	BusID		"PCI:0:2:0"
   	Screen 1
   # some additional possibilities (see man i810 for cryptic explanations)
   #	Option	"CheckLid" 	"yes"
   # 	Option 	"Clone" 	"no"
   #	Option 	"CloneRefresh"	"60"
   # 	Option 	"FlipPrimary" 	"no"
   # 	Option  "DisplayInfo" 	"yes"
   #	Option 	"Rotate" 	"0"
   #   Option  "DevicePresence" "true"
   #   Option  "LinearAlloc"	"0"
   #   Option  "Legacy3D"      "no"
   #   Option  "AperTextSize"  "32768"
   EndSection

Resolution and timing

X and the graphics adaptor will detect an external screen if present and attempt to auto negotiate an appropriate resolution and refresh rate. It is unclear from the Xorg/XFree documentation how the useable video modes are selected/rejected but it appears that if a monitor is connected to the VGA connector the highest available VESA resolution will not be selected unless it has a refresh rate of 75Hz or more. As the optimum refresh rate for a flat panel display is usualy 60Hz, and often the highest (native) resolution only available at this rate, it may be necessary to set a mode line for best performance.

In the case of a data projector, these appear designed to accept inputs for resolutions and refresh rates far in excess of their native SVGA or XGA capabilities and automaticaly convert down, which may entail a loss of image quality. Thus, for these also, forcing a reasonable resolution and refresh rate is desirable.

The possible modes for a connected monitor can be discovered by looking at the X log file $ sudo nano -w /etc/X11/xorg.conf or by running $ xvidtune.

   Section "Modes"
   	Identifier 	"V75"
   	ModeLine "VGA 75"   31.50  640  656  720  840  480  481  484  500 
    	ModeLine "SVGA 75"  49.50  800  816  896 1056  600  601  604  625 
   	ModeLine "XGA 75"   78.80 1024 1040 1136 1312  768  769  772  800 
   	Modeline "SXGA 75" 135.00 1280 1296 1440 1688 1024 1025 1028 1066
   EndSection
   Section "Modes"
   	Identifier 	"V60"
   	Modeline "XGA 60"   65.00 1024 1048 1184 1344  768  771  777  806 
   	ModeLine "SXGA 60" 108.00 1280 1328 1440 1688 1024 1025 1028 1066
   	ModeLine "UXGA 60" 160.00 1600 1664 1856 2160 1200 1201 1204 1250 
   EndSection

The monitor

Most recent monitors will supply X with data on available built in modes, and this will overide the HorizSync and VertRefresh values in the config file. However some projectors do not supply this information and fail to display unless the HorizSync and VertRefresh are configured.

   Section "Monitor"
   	Identifier	"LCD on D-SUB15"
   	Option		"DPMS"
   	HorizSync	31-75
   	VertRefresh 	59-75
    	UseModes 	"V60"
   	UseModes	"V75"
   EndSection
   Section "Screen"
   	Identifier	"External Screen"
   	Device		"Intel 945GM External D-SUB15"
   	Monitor		"LCD on D-SUB15"
   	DefaultDepth	24
   	SubSection "Display"
   		Depth		24
   #		Modes		"1024x768" "1280x1024" "1600x1200" "640x480" "600x800"
   		Modes 		"XGA 60" "SXGA 60" "UXGA 60" "VGA 75" "SVGA 75"
   	EndSubSection
   EndSection
   Section "Screen"
   	Identifier	"Laptop LCD"
   	Device		"Intel 945GM Internal LCD"
   	Monitor		"Lenovo 15in LCD"
   	DefaultDepth	24
   	SubSection "Display"
   		Depth		24
   		Modes		"1024x768"
   #		Virtual         1600 1200
   #		ViewPort 	0 0
   	EndSubSection
   EndSection
   Section "ServerLayout"
   	Identifier	"Default Layout"
   	Screen		0 "Laptop LCD" Absolute 0 0
   	Screen		1 "External Screen" RightOf "Laptop LCD"
   #	Screen 		1 "External Screen" Absolute 1024 0
   	InputDevice	"Generic Keyboard"
   	InputDevice	"Configured Mouse"
   EndSection

Note 1 With this layout the mouse will move off the right hand edge of the laptop screen and make an entrance on the left of the external monitor. If you can't find the mouse it may be on the other screen, try moving it top left.

Note 2 The gnome desktop can be configured for each monitor. But it is not possible to transfer a window from on display to the other. Trying to start Firefox on one desktop when it is opened on another monitor will give a message: "Firefox is already running, but is not responding. To open a new window you must first close the existing Firefox process, or restart your system".

Xinerama To be able to drag windows from one screen to another and fix the problem in Note 2, enable Xinerama extension. However with Xinerama enabled the resolution of the external display will default to XGA, the same as the laptop screen. The Gnome menu System:Preferences:Screen Resolution will respond with: "The X Server does not support the XRandR extension. Runtime resolution changes to the display size are not available", nor will Gnome provide a separate desktop task bar etc. note [here] This problem can be overcome by defining the preferred resolution - and only that resolution - for the screen and server layout. eg.

   Section "Monitor"
       Identifier      "Dell 2001FP"
       DisplaySize     408 306
       Option          "DPMS"
       HorizSync       31-80
       VertRefresh     56-76
       ModeLine        "1600x1200" 160.00 1600 1664 1856 2160 1200 1201 1204 1250
   EndSection
   Section "Screen"
   	Identifier	"External UXGA"
   	Device		"Intel 945GM External D-SUB15"
   	Monitor		"DELL 2100FP"
   	DefaultDepth	24
   	SubSection "Display"
   	    Depth		24
           Modes    "1024x768" "1280x1024" "1600x1200" "640x480" "600x800"
   	EndSubSection
   EndSection
   Section "ServerLayout"
       Identifier      "Default Layout"
       Screen          0 "Laptop LCD" Absolute 0 0
   # To move windows across screen we need Xinerama and will have to force
   # the screen reolution if we want more than 1024x768 (XGA)
      Option  "Xinerama"      "true"
      Screen          1 "External UXGA" RightOf "Laptop LCD"
      Screen          1 "External Screen" Absolute 1024 0
       InputDevice     "Generic Keyboard"
       InputDevice     "Configured Mouse"
   EndSection

This may be a better config if you always use the same external screen, but less satisfactory if you need to connect to a variety of external screens. The RandR extension is currently under development so some of these problems may be resolved with newer versions of RandR see: Xorg Developer Conference 2007 and X RandR v1.2. The next version 7.10 of Ubuntu includes support for RandR 1.2 Xorg 7.3 see also Xorg RandR 1.2

Screen Brightness control

In 7.04 there is a problem with the Fn+home Fn+End screen brightness controls Bug 87028.

The workaround is to disable video.o

echo blacklist video | sudo tee -a /etc/modprobe.d/local

Unfortunately this only fixes the blanking screen, using the Fn+Home and Fn+End provides values of bright and dim but no intermediate values Bug 61184. A fix has been posted. First check what you have

 # lshal|grep smbios.system
 smbios.system.version = 'ThinkPad R60e'  (string)
 smbios.system.product = '06574TG'  (string)
 smbios.system.manufacturer = 'LENOVO'  (string)

then edit /usr/share/hal/fdi/policy/10osvendor/10-laptop-panel-mgmt-policy.fdi

# sudo nano -w  /usr/share/hal/fdi/policy/10osvendor/10-laptop-panel-mgmt-policy.fdi

The original release 7.04 had a <device> block for LENOVO that tested the version string for X, T, and Z model ThinkPads but not R. A subsequent update to hal has modified the file to <deviceinfo version="0.2"> and removed the Lenovo specific code. Add to the file

 <device>
   <match key="info.category" string="laptop_panel">
     <match key="/org/freedesktop/Hal/devices/computer:smbios.system.manufacturer" string="LENOVO">
       <match key="/org/freedesktop/Hal/devices/computer:smbios.system.version" contains="ThinkPad R">
         <merge key="laptop_panel.brightness_in_hardware" type="bool">true</merge>
       </match>
     </match>
   </match>
 </device>

save the file then

# sudo /etc/dbus-1/event.d/20hal restart 

and restart X (Ctrl+Alt+Backspace) Note: the onscreen bar display will not display the changed level.

Sound

There is an option in the BIOS setup to disable the modem which seems a good idea if the modem is not needed. Do not do this, if the modem is disabled then sound will not work with Ubuntu (6.06 and Edgy knot2). (Sound does however work in WinXP with the modem disabled)

Mouse and TrackPoint

see How to configure the TrackPoint Note however that to modify sensitivity and scroll rate on R60e with Ubuntu 6.06 the commands are:

    # echo -n 96 > /sys/devices/platform/i8042/serio0/speed
    # echo -n 200 > /sys/devices/platform/i8042/serio0/sensitivity

This needs to be typed in a root window; using sudo gives a permission denied.

Wireless

You need to install linux-restricted-modules-generic, which contains the kernel module ath_pci. ath_pci is loaded automatically at system startup.

Feisty (7.04) includes network-manager, although useful for roaming it dosn't work well for networks which do not broadcast ESSID.

Suspend-to-RAM

There seems to be a bug in edgy in relation to cpufreq governors. See Bug 70602 for details and a workaround.

Had to add following script to let the laptop go into supsend after the lid was closed:

 #!/bin/sh
 #/etc/acpi/local/lid.sh.post
 grep -q closed /proc/acpi/button/lid/*/state
 if [ $? = 0 ] ; then
   /etc/acpi/sleep.sh
 fi

7.04 (Feisty)

Both Sleep (fn+4) and Hibernate (fn+12) appear to work.

Modem

If not used: see above re sound

If used: install mwave then it should work.

to be continued

Bluetooth [setup appears ok, untested due to lack of bluetooth device]

FnF2 lock Screen working

FnF3 Display Battery Condition

FnF4 Sleep can be configured in Gnome power save option, but seems to disable fn+F12 hibernate; 'blank screen' sets screensaver (6.04 Dapper). Works without additional configration (7.04 Feisty).

FnF5 toggle Wireless/Bluetooth on/off

FnF7 Switch Screen? (no ibm/hotkey shown with $ acpi_listen only effective if cloned displays?)

FnF8 TrackPoint? No Effect (ibm/hotkey HKEY 00000080 00001008)

FnF9 (ibm/hotkey HKEY 00000080 00001009) (Easy Eject in WinXP)

FnF12 Suspend to disk, seems to work, but not entirely reliable, some scrambling of text console display during restart Sometimes restart hangs after reading disk, need to deactivate/reactivate wireless. (6.06 Dapper). Works ok? (7.04 Feisty).

FnHome screen brighter (ibm/hotkey HKEY 00000080 00001010) (see notes above to fix regressions since 6.06 Dapper)

FnEnd screen dims (no ibm/hotkey shown with $ acpi_listen)

FnPgUp ThinkLight on/off

External Sources