Difference between revisions of "Installing Ubuntu 8.10 (Intrepid Ibex) on a ThinkPad T61"

From ThinkWiki
Jump to: navigation, search
Line 1: Line 1:
NOTE: I copied the 8.04 document and created this one with the information. Please help to update it so it accurately reflects 8.10.
 
 
 
== Items that work out of the box ==
 
== Items that work out of the box ==
  
Line 40: Line 38:
 
If you need to perform a manual migration, the Ubuntu Help Community has written some [https://help.ubuntu.com/community/WifiDocs/Driver/iwlwifi_Intel_3945_4965/gutsy documentation] that will make this very easy to do.
 
If you need to perform a manual migration, the Ubuntu Help Community has written some [https://help.ubuntu.com/community/WifiDocs/Driver/iwlwifi_Intel_3945_4965/gutsy documentation] that will make this very easy to do.
  
=== Compiz and XV Playback on Intel GM965/GL960 ===
 
 
With Ubuntu 7.10 (Gutsy Gibbon) you currently have to choose between using Compiz and working video playback using XV. On 8.04 (Hardy Heron) alpha 5 you can play videos using XV under compiz, it works right out of the box using the Live-CD.
 
 
=== Suspend with Nv140m ===
 
 
** Update as of July 17th 2008 -- Using 8.04.1 with the newest nvidea drivers, I had no problems suspending without any additional configuration. **
 
 
Suspend may not work even after editing acpi-support. Enable bluetooth (Fn+F5) may result in a successful suspend. NOTE: that although the wifi led does not change when Fn+F5 is used, the wifi is still toggled by this key.
 
 
'''Hal "S3 BIOS" parameter issue!'''
 
 
After doing the changes to the /etc/default/acpi-support file (described [http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_T61#How_to_Suspend_with_nVidia_140m.2F570m here]), I for one, managed to have '''stable''' suspend support by creating a new file called: '''/etc/hal/fdi/information/lenovo.fdi''' with the following contents:
 
<pre>
 
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
 
<deviceinfo version="0.2">
 
  <device>
 
    <match key="system.hardware.vendor" string="LENOVO">
 
        <merge key="power_management.quirk.s3_bios" type="bool">false</merge>
 
    </match>
 
  </device>
 
</deviceinfo>
 
</pre>
 
{{NOTE|The problem (after reading the HAL and pm-utils documentations) is the fact that (as far as I can tell) the T61 Lenovo doesn't allow the S3 BIOS to be called *during* suspend/resume, which HAL seems to do by default (who knows, maybe there are T61s out there that do work with this default)!
 
 
This did not seem to be necessary for previous versions of Ubuntu. Also note that I have an NVIDIA card so I have no idea what to do for Intel versions.The change should also be resistant to HAL and pm-utils upgrades.}}
 
 
 
'''Still no suspend with nvs140m? Got Modell 6460 or 6458?'''
 
 
Fix above didn't work for me on a 15.4 wide T61 Modell 6460 with nv140m. Bios is updated to 2.14 but didn't change anything, except the usb bug is fix. Suspend seems to work fine, but resume gives me a black screen (backlight off - no reaction to brightness up) and I can hear 2 beeps. Most of the time I can reboot with ctrl+alt+delete but the screen stays dark until bios.
 
 
follow the instructions above but create the new file called: '''/etc/hal/fdi/information/lenovo.fdi''' with the following contents instead:
 
<pre>
 
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
 
<deviceinfo version="0.2">
 
  <device>
 
    <match key="system.hardware.vendor" string="LENOVO">
 
      <merge key="power_management.quirk.s3_mode" type="bool">true</merge>
 
      <merge key="power_management.quirk.s3_bios" type="bool">false</merge>
 
      <merge key="power_management.quirk.save_pci" type="bool">true</merge>
 
    </match>
 
  </device>
 
</deviceinfo>
 
</pre>
 
 
Also you want to set the following parameter in
 
 
{{path|/etc/default/acpi-support}}
 
<pre>
 
SAVE_VIDEO_PCI_STATE=true
 
</pre>
 
 
{{NOTE|This works for me with mode 6460, except for one problem: You may get a white screen in xorg after resume when using compiz. If you don't have a 6460 with nvidia this file may break things for you because it doesn't care about the modell and sets the parameter for any lenovo product}}
 
{{NOTE|This also works for me with mode 6458, but the first wakeup from suspend takes about 20seconds, the following wakeups only some seconds. Please note that i had to change back the settings described [http://www.thinkwiki.org/wiki/Installing_Ubuntu_7.10_(Gutsy_Gibbon)_on_a_ThinkPad_T61#How_to_Suspend_with_nVidia_140m.2F570m here] but still SAVE_VIDEO_PCI_STATE set to true}}
 
{{HELP|Anyone with more knowledge of hal and acpi-support is welcome to clean this up. I also don't know why this setting can be done via hal and in acpi-support.
 
See below!}}
 
 
 
'''Works for a 6457CTO:'''
 
 
After trying out all these recipes on my 6457CTO waking up from suspend still did not work. Finally I came across a blog entry which pointed out the right way: [[http://david.goodlad.ca/2008/3/14/suspend-hibernate-on-lenovo-t61 David Goodlad's blog]]. I realized that all the fixes proposing editing the acpi-support file or adding a kernel parameter acpi_sleep=s3_mode must be wrong because since hardy gnome-power-manager gets its information solely from hal. So setting up correct hal information is the right way but the proposed solution (creating a /etc/hal/fdi/information/lenovo.fdi file) did not work for me. Ok, but now step by step:
 
 
# Revert ALL the proposed fixes from above. I found out that at least the lenovo.fdi solution is actually breaking the real fix. So for sure delete /etc/hal/fdi/information/lenovo.fdi
 
# Find out about the excact hal name of your machine: <pre>hal-device |grep 6457</pre> where 6457 is the model number of my t61, replace it with your own. In my case it spits out something like this: system.hardware.product = '6457CTO'. So now I know that hal identifies my machine as 6457CTO.
 
# <pre>sudo gedit /usr/share/hal/fdi/information/10freedesktop/20-video-quirk-pm-lenovo.fdi</pre> and add a section to the end of the file, just above the </device> tag and replace 6457CTO with your hal device name:
 
<pre>
 
      <!-- T61 6457CTO uses NVidia driver -->
 
      <match key="system.hardware.product" string="6457CTO">
 
        <!-- Proprietray NVidia driver quirks -->
 
        <merge key="power_management.quirk.s3_mode" type="bool">true</merge>
 
        <merge key="power_management.quirk.s3_bios" type="bool">false</merge>
 
        <merge key="power_management.quirk.save_pci" type="bool">true</merge>
 
      </match>
 
</pre>
 
 
Now save and reboot. Now you might run into the problem of coming back from resume into a completely white screen where normally should be the password dialog. Entering your password blindly is not nice but at least you can resume.
 
 
{{NOTE|Somehow I couldn't make the wildcard matching work as they did in the lenovo.fdi solution, but that might be due to my shortcomings on that syntax. Anyway matching the device by its full name worked for me. Probably somebody who knows more about the matching could make that wildcard thing work to have a more general solution. Because hal also knows the xorg driver name (info.linux.driver) there should be a way to set up the quirks depending on the driver.}}
 
 
{{NOTE|I have model 6459CTO and run the "nv", not the "nvidia", driver. The nv driver requires the s3_bios and vbemode_restore quirks. I commented out the existing merge directives in /etc/hal/fdi/information/lenovo.fdi and added:
 
<pre>
 
&lt;!-- My settings: good for the nv driver --&gt;
 
&lt;merge key="power_management.quirk.s3_bios" type="bool"&gt;true&lt;/merge&gt;
 
&lt;merge key="power_management.quirk.save_pci" type="bool"&gt;true&lt;/merge&gt;
 
&lt;merge key="power_management.quirk.vbemode_restore" type="bool"&gt;true&lt;/merge&gt;
 
&lt;merge key="power_management.quirk.s3_mode" type="bool"&gt;false&lt;/merge&gt;
 
</pre>
 
Note, /etc/hal/fdi/ is where administrators should put customizations, not /usr/share/hal/fdi/information. More details are [http://www.littleredbat.net/mk/blog/story/71/ here].
 
}}
 
 
[[Category:  T61]]
 
 
=== TrackPoint ===
 
The [[TrackPoint]] works out of the box, but does not scroll nor does the tap-clicking (press to select) feature work. Therefor see: [[#tap-to-click feature]] To enable using the middle mouse button to scroll, replace the "Configured Mouse" section in {{path|/etc/X11/xorg.conf}} with the following:
 
<pre>
 
Section "InputDevice"
 
Identifier "Trackpoint"
 
Driver "mouse"
 
Option "CorePointer"
 
Option "Device" "/dev/input/mice"
 
Option "Protocol" "ImPS/2"
 
Option "ZAxisMapping" "4 5"
 
Option "Emulate3Buttons" "true"
 
Option "EmulateWheel"          "true"
 
Option "EmulateWheelButton"    "2"
 
EndSection
 
</pre>
 
 
{{NOTE|However, if you need to use external usb mouse, the above configuration is wrong. It will cause odd behavior. Try the following configuration from [http://gentoo-wiki.com/HARDWARE_IBM_Specific_Laptop_Guide#TrackPoint Gentoo Wiki]:}}
 
<pre>
 
Section "InputDevice"
 
      Identifier  "UltraNav TrackPoint"
 
      Driver      "mouse"
 
      Option      "Device"         "/dev/input/mouse1"
 
      Option      "Protocol"            "ExplorerPS/2"
 
      Option      "Emulate3Buttons"    "on"
 
      Option      "Emulate3TimeOut"    "50"
 
      Option      "EmulateWheel"        "on"
 
      Option      "EmulateWheelTimeOut" "200"
 
      Option      "EmulateWheelButton"  "2"
 
      Option      "YAxisMapping"        "4 5"
 
      Option      "XAxisMapping"        "6 7"
 
      Option      "ZAxisMapping"        "4 5"
 
EndSection
 
</pre>
 
 
Regarding to the {{key|Fn}}+{{key|F8}} to change the input device TrackPoint/Touchpad (to disable/enable Touchpad) requires edit /etc/X11/xorg.conf and add:
 
 
  Option "SHMConfig" "true"
 
 
under:
 
 
 
    Section "InputDevice"
 
      Identifier "Synaptics Touchpad"
 
 
=== Audio ===
 
 
Works great out of the box, just the microphone has to be activated, it is considered a generic capture source and is muted by default.
 
 
To unmute the microphone:
 
 
*Right Click on the volume icon next to the clock and click on "Open Volume Control"
 
 
*Click Edit -> Preferences.  A list of devices will be displayed, you should check the following (Do not uncheck any existing items):
 
 
      Input Source
 
      Capture
 
 
*Click Close and there should be two additional tabs "Recording" and "Options".  -
 
 
*Click Recording and click on the microphone under the Capture slider so that it no longer has a red line through it, and put the slider up as it may be deactivated. 
 
 
*Click Options and under capture source select internal mic.
 
 
To test your mic using Sound Recorder select Capture as the sound source.
 
 
This solution has been tested with Sound Recorder and Skype.
 
 
 
To get the volume controls working:
 
 
*add the following line to /etc/modprobe.d/alsa-base, then reboot
 
 
      options snd-hda-intel index=0 model=thinkpad
 
 
{{NOTE|The volume controls worked fine for me out of the box on a 6460.}}
 
 
=== Multimedia Keys ===
 
 
Most Multimedia Keys work out of the box, though play, forward and stop buttons often need to be adjusted, therefore, press alt + F2 and type in gnome-keybinding-properties. Then everything works as followed:
 
 
* Fn-PgUp activates/deactivates the thinklight
 
* Fn-Up will trigger stop on a media player
 
* Fn-Down will toggle pause and play on a media player
 
* Fn-Left/Right go to prev/next tracks on a media player
 
* Fn-F2 properly locks the screen
 
* Fn-F3 shows remaining battery  >>does not work on all machines<<
 
* Fn-F4 suspends (to ram)
 
* Fn-F9 ejects cds  >>does not work on all machines, I think this is supposed to eject from a "dock"<< >>fixable with System > Preferences > Keyboard Shortcuts
 
* Fn-F12 hibernates (to disk)
 
* PrtSc opens the screenshot dialog
 
 
 
 
To enable the back, forward, and the menu keys you'll need to teach XKB what they are.
 
 
* Check the '''XkbLayout''' option (under '''InputDevice''') in your {{path|/etc/X11/xorg.conf}} file to determine which keyboard layout Ubuntu is using (I'll use 'us' for the example).
 
* Navigate to {{path|/etc/X11/xkb/symbols}} and, as root, open the appropriate layout file (as determined above) in your favorite editor.
 
{{cmduser|cd /etc/X11/xkb/symbols}}
 
{{cmduser|sudo gedit us}}
 
* In the '''xkb_symbols "basic"''' section after the '''name[Group1]= "x";''' (where x is a country name, or similar) line add the following:
 
key <I63> {        [ Menu          ]      };
 
key <I69> {        [ XF86Forward    ]      };
 
key <I6A> {        [ XF86Back      ]      };
 
* Now log out and back in and all three of the buttons should function.
 
 
=== Thinkpad Button ===
 
 
Paste the following into /usr/share/hotkey-setup/ibm.hk
 
setkeycodes e017 148 # thinkpad button
 
You can also just type this into a terminal, to test it for the time of the current session.
 
 
Paste the following into the right file in /usr/share/xmodmap (check your country code)
 
keycode 159 = XF86Terminal
 
For immediate availability of the button, reload the file by executing
 
xmodmap <xmodmap.file>
 
 
Then use the "Keyboard Shortcuts" tool under "Preferences".
 
 
{{NOTE| You can also follow these instructions: http://www.krizka.net/2008/06/14/the-thinkvantage-button-and-ubuntu-hardy-heron/.
 
They are wrote specifically for a X61, but it works perfectly with the T61 too.}}
 
 
== Items that don't work (a.k.a.: items that need more intense tweaking to get fixed)==
 
 
=== tap-to-click feature ===
 
 
For the tap-to-click feature (taping the stick instead of using the left mouse button) i used a configure trackpoint utility: [http://tpctl.sourceforge.net/configure-trackpoint.html] there is a package for ubuntu 7.04 i386, but i compiled it by myself (using amd64):
 
 
1.) download the .tar.gz file
 
 
2.) unpack it
 
 
3.) install libgnomeui-dev
 
 
{{cmduser|sudo aptitude install libgnomeui-dev}}
 
 
4.) in the folder, do:
 
 
{{cmduser|./configure}}
 
 
if everything worked fine:
 
 
{{cmduser|make}}
 
 
then install it:
 
 
{{cmduser|sudo make install}}
 
 
5.a) Gnome : Open it: System > configure trackpoint, and configure on your needs
 
 
 
5.b) Kde : K-menu > Prefences > configure trackpoint > right-click > edit entry, edit "command" to "kdesu configure-trackpoint"
 
 
Save & exit
 
 
Open it : K-menu > Prefences > configure trackpoint and configure on your needs
 
 
=== Hotswapping ===
 
 
{{HELP|We need someone who is able to get hotswaping to work properly, this is not the right was to do this!}}
 
With the new kernel, bay-drivers changed, so if you remove the ultrabay it will freeze your system! You can hack it with a simple comand, first you have to look where the device is:
 
 
{{cmduser|less /sys/class/scsi_device/(x)\:0\:0\:0/device/model}}
 
 
for (x) first put in 0, if it tells you DVD or the name of the model you want to hotswap youre right. if not, go on with 1, 2 or 3...
 
 
then, once you are sure (I deactivated my harddisk like that) you put in:
 
 
{{cmduser|echo 1 {{!}} sudo tee /sys/class/scsi_device/(x)\:0\:0\:0/device/delete}}
 
 
Now you should be able to remove the device.
 
 
{{WARN|Do not use it for harddisks, be sure you unmounted it before! This is just a bad hack, if anyone knows how to get it right --> publish!}}
 
 
If Ubuntu does not reactivate the device after putting it in again, do:
 
 
{{cmduser|echo 0 0 0 {{!}} sudo tee /sys/class/scsi_host/host1/scan}}
 
 
=== Wireless activity LED ===
 
 
The LED is not implemented at least in the IWL4965 driver. For the Atheros wifi cards look at the solution below.
 
 
For those who don't want to work around this problem and are willing to wait, I have confirmed that the LED works in Ubuntu 8.10 (Intrepid Ibex) Alpha 4 for a T61 with IWL4965, including flashing on activity.  If you can put up with a nonfunctional LED for a while in 8.04, the final Ubuntu 8.10 is due to be released in October 2008.
 
 
A patch posted in this [http://bughost.org/bugzilla/show_bug.cgi?id=1209 thread] works for me on R61 with IWL4965 card.
 
 
{{HELP|A howto is needed showing the process of implementing the patch in Hardy Heron. If anyone knows how to do this, please create a quick howto and either put it here or link to it from this page. Please and thank you.}}
 
 
As an alternative, you can install a backported IWL4965 driver that ''may'' fix the LED problem on your system.
 
 
To active WiFi LED,
 
 
  sudo apt-get install linux-backports-modules-hardy
 
 
{{NOTE|On some machines, (at least one running IWL3945 & IWL4965) applying the above turns on the LED permanently. It should flicker as data is being transmitted. Also, with the above modification, after turning off wireless and then turning it back on (via the switch on the front of the machine) wireless is not reactivated, so not very helpful}}
 
 
 
You can download a compatible [http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2 driver] which supports WiFi led flicking and build it with modifying the {{path|config.mk}} by adding {{bootparm|CONFIG_IWL3945_LEDS|y}} and {{bootparm|CONFIG_IWLWIFI_LEDS|y}}  these two options. For Ubuntu/Debian users, build-essential, linux-source-2.6.24 and linux-headers-generic packages are required.
 
 
{{HELP|I added the above lines to the config.mk file and it would not make or make install correctly. I received an error 2 at the end of the make. If you have had success, where did you put the items in the config.mk file for it to make and make install correctly? Thanks in advance.}}
 
 
To compile the with these two options enabled, you need to insert the following command into config.mk as well:
 
 
  CONFIG_IWLWIFI_DEBUG=y
 
 
Or if you don't want debug mode you can edit iwl-led.c in drivers/net/wireless/iwlwifi . At line 198 remove IWL_DEBUG_LED("Led type = %s brightness = %d\n", and it will work - now I have a flickering WiFi led on T61.
 
 
==== To enable the Wifi LED with the Atheros cards ====
 
 
First check if this solution works on your computer. Open a terminal and run this commands:
 
 
sysctl dev.wifi0.ledpin=1
 
sysctl dev.wifi0.softled=3
 
 
Now connect to a wireless network and the LED should start working. If so and you want to make the changes permanent then:
 
 
1) Create a file ~/wifiLED and copy/paste the following into it:
 
 
#!/bin/bash
 
#
 
# Commands to enable the wireless LED
 
sysctl dev.wifi0.ledpin=1
 
sysctl dev.wifi0.softled=3
 
 
2) sudo cp ~/wifiLED /etc/init.d
 
 
3) sudo chmod 755 /etc/init.d/wifiLED
 
 
4) sudo update-rc.d wifiLED defaults 90
 
 
After you reboot your wireless led should be working.
 
 
--[[User:Lunatico|Lunatico]] 14:50, 26 July 2008 (CEST)
 
 
=== Hidden SSID ===
 
It has been reported that users wanting to access Hidden SSIDs have to enter the SSID and password manually in Network Manager to connect. Even after the SSID is saved in Network Manager, it will not reconnect automatically. The user has to connect manually by entering the information as previously described.
 
It appears that updating the driver by following the instructions [http://linuxwireless.org/en/users/Download here] resolves this issue.
 
 
=== Hard Disk Parking ===
 
Getting hard disk parking to work:
 
 
tp_smapi patch is not needed in [http://packages.ubuntu.com/search?keywords=linux-image-2.6.24-18&searchon=names&suite=hardy&section=all linux-image-2.6.24-18]
 
 
1. Patch your kernel with the 'protect' [http://www.thinkwiki.org/wiki/HDAPS#Kernel_patch patch].
 
 
2. Installing the hdapsd daemon which does the actual parking.
 
 
{{cmduser|sudo apt-get install hdapsd hdaps-utils}}
 
 
== some other tweaks ==
 
 
=== screenblank with {{key|Fn}} + {{key|F3}} ===
 
 
Its ok, and might be usefull to get the estimated batterytime when pressing {{key|Fn}}+{{key|F3}}, as it should be. But i dont need that, i find the earlier command for {{key|F3}}, to blank the screen, more useful to save batterylife better.
 
 
For that, you must edit {{path|/etc/acpi/thinkpad-lockbattery.sh}} and replace LENOVO by IBM, and IBM by LENOVO :). Do not forget to copy the file before you change it!
 
 
=== Enable normal User to Limit CPU Speed ===
 
To let user set the CPU limit you need to open a Terminal an type there
 
sudo dpkg-reconfigure gnome-applets
 
answer the question with yes
 
 
=== Fix bluish displays ===
 
Many T61 owners complain about a very bluish color temperature: My T61 WSXGA+ was also way too blue. I came across a thread at the notebook review forum http://forum.notebookreview.com/showthread.php?t=174408 which provided two useful ICC profiles which fixed the situation for me. Just install xcalib
 
sudo apt-get install xcalib
 
and load one of these profiles with xcalib. To omit quoting the filename better rename the profile to something without blanks like t61.icc.
 
 
Load the icc file automatically:
 
sudo cp <your icc file> /usr/local/etc/
 
Append the following line to your display manager's config file /etc/gdm/Init/Default (for standard Ubuntu/Gnome) or /etc/kde3/kdm/Xsetup (for Kubuntu/KDE), before the final "exit" statement:
 
/usr/bin/xcalib -d :0 -s 0 /usr/local/etc/<your icc file>
 
 
=== Hotplugging of Dual-Head with nvidia (Also with Dock possible)===
 
  
Although many forums state it, it is not necessary to use the open-source nv-driver in order to resize the screen with xrandr. Following thread explains sufficently, how to make resizing/switch of screens possible with the proprietary nvidia-driver without restarting X:
 
http://www.linuxquestions.org/questions/linux-software-2/using-nvidia-settings-from-the-command-line-only-647626/
 
  
  
 
[[Category:  Ubuntu 8.10]]
 
[[Category:  Ubuntu 8.10]]

Revision as of 08:00, 18 October 2008

Items that work out of the box

Intel Video: 2D and 3D acceleration works

Nvidia Video: 2D and 3D acceleration works

Wireless: Intel cards tested. Atheros cards also works.

Wireless WAN: Cingular/AT&T card tested.

Network Card Intel 10/100/1000 tested

Wireless switch Tested (Only has an effect over the bluetooth, wifi is unaffected)

Webcam Tested with cheese and skype.

Headphones Works out of the box

Microphone Just needs to be activated, see section below

Keyboard Shortcuts: Most of them work out of the box, some need to be activated, see section below

Items that need (some) tweaking to obtain full functionality

Open Source Intel Wifi Driver

The following information is important if you are upgrading from a previous version (2007 or earlier) of Ubuntu to 8.10.

Intel has created a new Linux Wifi driver project for Intel Wireless cards, "Iwlwifi". This driver is Open Source and no longer requires the Intel daemon to run in addition. This project will support the T61's Wifi Intel 3945ABG network adapter and Intel 4965AGN network adapter.

An automatic migration will occur when upgrading from Ubuntu 7.10 to Ubuntu 8.04. However, there is a caveat to be aware of:

  • The new driver wants to name the interface wlan0 (by default -- you can rename it to anything you want), and requires a different entry in /etc/udev/rules.d/70-persistent-net.rules, which handles the naming of interfaces. Simply edit this file and delete your old entry for the ipw3945 driver, then unload/reload the new driver, or simply reboot. A new entry will automatically be created that is appropriate for the new driver. Here's an example of the lines to delete:
# PCI device 0x8086:0x4227 (ipw3945)
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:1b:77:a4:0e:2f", NAME="eth1"


If you need to perform a manual migration, the Ubuntu Help Community has written some documentation that will make this very easy to do.