Installing Ubuntu 9.10 (Karmic Koala) on a ThinkPad X61
I installed Ubuntu 9.10 on the same ThinkPad X61 that I installed Ubuntu 8.10 on last year, a model 7673-CTO.
This time I installed from DVD+R using the Ultrabay Slim Multi-Burner III Drive in the UltraBase X6.
I have since upgraded to Ubuntu 10.04 (Lucid Lynx) and then to 10.10 (Maverick Meerkat) and there are some comments below related to that.
Contents
DMI info
# dmidecode -s system-manufacturer LENOVO # dmidecode -s system-product-name 7673CTO # dmidecode -s system-version ThinkPad X61
Accessories
Accessories I purchased for this laptop
- 40Y8116 Lenovo UltraBase X6 which has an Ultrabay Slim into which can be installed...
- 41R4494 Lenovo 90W Ultraslim AC/DC Combo Adapter
- 41N5643 Lenovo Ultrabay Slim Multi-Burner III Drive
Other available Accessories Compatible with the UltraBase X6
- 40Y8725 Lenovo Ultrabay Slim Serial ATA Disk Drive Adapter
- 57Y4536 Lenovo Ultrabay Slim Battery 2.9 Amp/hour
Kernel
Worked-around problem: Kernel misdetects memory
Right at the beginning there was an important obstacle to overcome. The installed kernel would panic on boot.
I ran memtest+ from the installation disc to see if I had a memory problem. It reported errors above 4 GiB. That's odd, because I only have 4 GiB of RAM installed.
I surmised that the new kernel, version 2.6.31-14-generic-pae, errs in reckoning the amount of installed RAM. And indeed, the solution to the kernel panic was to add mem=4096M to the kernel boot parameter list.
Suspend & resume
(In Intrepid suspend & resume was unusable because the machine frequently locked up sometime after resume. Furthermore the WLAN card was unusable after resume.)
Having tried it repeatedly I can report that in Karmic suspend & resume does work more or less correctly. After resume the Atheros WLAN card is re-enabled and NetworkManager reconnects to my wireless network. That's progress!
There are still a couple of glitches, though.
- Once I had to enter my password twice on resume. The password dialog appeared as usual, with a black background, but on this one occasion it did not disappear; instead the background was replaced by the desktop which was unresponsive until I entered my password into the dialog box a second time. Weird.
- If suspended while playing an audio disk then, on resume, audio play does not continue. Instead the audio disk is detected as a new disk and the user is invited to start the music player, even though there is already a music player process running.
Docking & undocking
Docking
The ThinkPad X61 can be docked in an UltraBase X6 in which case the X61 can use the ports and drives in the UltraBase.
Undocking
Unlike with the previous versions of Ubuntu the X61 can be removed from the UltraBase X6 without danger of locking up. Formerly, drives installed in the Ultrabay had to be deleted before undocking in order to prevent a hard lockup, but now nothing has to be done to prevent a hard lockup on undock. That is progress.
It does seem, however, that the "prepare to undock" button (on the UltraBase, next to the eject lever) has to be pressed before undocking, otherwise USB devices connected to the UltraBase will not work after redocking.
After pressing the "prepare to undock" button the USB devices connected to the UltraBase and drives installed in the latter's Ultrabay cease to function—as expected. However, a monitor connected to the UltraBase's video port continues to function. The desktop remains the same size even after physical undocking; windows that were visible on the external monitor then become invisible.
I haven't done more thorough testing yet; e.g., I haven't checked to see what happens if, when undocking, volumes are mounted on devices connected to the UltraBase.
Redocking
After redocking, USB devices, external monitors and UltraBase drives work again. Nice.
Problem: Display configuration not restored on redock
However, there is a bug. After redocking the display is refreshed and the monitors do not have their original relative positions; furthermore the display appearance is different—different icons, etc.—as if the wrong theme is selected. Running System | Preferences | Appearances (without doing anything further) suffices to restore the display configuration.
Contents of /sys/devices/platform/dock.*/
Under /sys/devices/platform there are directories dock.0 through dock.3 with these contents:
/sys/devices/platform$ ls -l dock.0 total 0 -r--r--r-- 1 root root 4096 2009-11-22 18:59 docked -r--r--r-- 1 root root 4096 2009-11-22 19:22 flags -r--r--r-- 1 root root 4096 2009-11-22 19:22 modalias drwxr-xr-x 2 root root 0 2009-11-22 19:22 power lrwxrwxrwx 1 root root 0 2009-11-22 18:59 subsystem -> ../../../bus/platform -r--r--r-- 1 root root 4096 2009-11-22 19:22 type -rw-r--r-- 1 root root 4096 2009-11-22 19:59 uevent -r--r--r-- 1 root root 4096 2009-11-22 19:22 uid --w------- 1 root root 4096 2009-11-22 19:22 undock
After pressing the "prepare to undock" button on the UltraBase the content of two of the "docked" files changes.
n | type | content of docked when docked | content of docked after pressing "prepare to undock" button |
---|---|---|---|
0 | dock_station | 1 | 0 |
1 | battery_bay | 0 | 0 |
2 | ata_bay | 1 | 0 |
3 | ata_bay | 1 | 1 |
On the other hand, if the X61 is removed from the UltraBase without pressing the "prepare to undock" button the content of the docked files remains the same as when the machine was docked.
Keys
Table of keycodes for special keys and key combinations in Karmic
References:
- Hotkey architecture in Ubuntu
- Hotkey troubleshooting instructions
- Instructions for showkey, acpi_listen, xev and GNOME keyboard shortcuts methods
- /usr/include/linux/input.h -- list of Linux key codes
Key combination | Extra function symbol | Scan code (showkey -s) (hex) |
Linux key code (showkey -k) |
Input event (input-events) |
... on input device(*) | ACPI event (acpi_listen) |
HAL event (lshal -m) | X event (xev) |
Keyboard Shortcuts name |
---|---|---|---|---|---|---|---|---|---|
⟦🔇 (loudspeaker icon with stroke) | down: e0 20 up: e0 a0 |
113 | KEY_MIN_INTERESTING | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = mute | 121 | XF86AudioMute | |
🔈▾ (loudspeaker icon, down arrow) | down: e0 2e up: e0 ae |
114 | KEY_VOLUMEDOWN | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = volume-down | 122 | XF86AudioLowerVolume | |
🔈▴ (loudspeaker icon, up arrow) | down: e0 30 up: e0 b0 |
115 | KEY_VOLUMEUP | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = volume-up | 123 | XF86AudioRaiseVolume | |
ThinkVantage | down: e0 1f e0 9f | 148 | KEY_PROG1 (0x94) | 10 | ibm/hotkey HKEY 00000080 00001018 | computer_logicaldev_input_3 condition ButtonPressed = prog1 | 156 | XF86Launch1 | |
Fn | up: e0 63 e0 e3 | 143 | KEY_WAKEUP | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = wake-up | 151 | XF86WakeUp | |
Fn-F1 | (none) | 466 | KEY_FN_F1 (0x1d2) | 10 | ibm/hotkey HKEY 00000080 00001001 | (none) | (none) | (none) | |
Fn-F2 | 🔒 (padlock symbol) | down: e0 12 e0 92 | 152 | KEY_SCREENLOCK (0x98) | 10 | ibm/hotkey HKEY 00000080 00001002 | computer_logicaldev_input_3 condition ButtonPressed = coffee | 160 | XF86ScreenSaver |
Fn-F3 | 🔋 (battery symbol) | down: e0 71 e0 f1 | 236 | KEY_BATTERY (0xec) | 10 | ibm/hotkey HKEY 00000080 00001003 | computer_logicaldev_input_3 condition ButtonPressed = battery | 244 | XF86Battery |
Fn-F4 | ☾ | down: e0 5f e0 df (but sometimes nothing?) |
142 | KEY_SLEEP (0x8e) | 10 | ibm/hotkey HKEY 00000080 00001004 | computer_logicaldev_input_3 condition ButtonPressed = sleep | 150 | XF86Sleep |
Fn-F5 | ⸨💻⸩ (radiating computer symbol) | down: e0 73 e0 f3 | 238 | KEY_WLAN (0xee) | 10 | ibm/hotkey HKEY 00000080 00001005 | computer_logicaldev_input_3 condition ButtonPressed = wlan | 246 | XF86WLAN |
Fn-F6 | (none) | 471 | KEY_FN_F6 (0x1d7) | 10 | ibm/hotkey HKEY 00000080 00001006 | (none) | (none) | (none) | |
Fn-F7 | ⎚|💻 (screen symbol, vertical bar, computer symbol) | down: e0 56 e0 d6 | 227 | KEY_SWITCHVIDEOMODE (0xe3) | 10 | ibm/hotkey HKEY 00000080 00001007 | computer_logicaldev_input_3 condition ButtonPressed = switch-videomode | 235 | XF86Display |
Fn-F8 | (trackpoint symbol, vertical bar, trackpad symbol) | down: e0 79 e0 f9 | 192 | KEY_F22 (0xc0) | 10 | ibm/hotkey HKEY 00000080 00001008 | computer_logicaldev_input_3 condition ButtonPressed = f22 | 200 | 0xc8 |
Fn-F9 | 💻 ⏏ (computer symbol, eject symbol) | down: 6f ef | 194 | KEY_F24 (0xc2) | 10 | ibm/hotkey HKEY 00000080 00001009 | computer_logicaldev_input_3 condition ButtonPressed = f24 | 202 | 0xc9 |
Fn-F10 | down: e0 63 up: e0 e3 |
143 | KEY_WAKEUP | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = wake-up | 151 | XF86WakeUp | |
Fn-F11 | (none) | 476 | KEY_FN_F11 (0x1dc) | 10 | ibm/hotkey HKEY 00000080 0000100b | (none) | (none) | (none) | |
Fn-F12 | ⎚ ▶❍ (screen symbol, right arrowhead, diskpack symbol) | down: e0 25 e0 a5 (but sometimes nothing?) |
205 | KEY_SUSPEND (0xcd) | 10 | ibm/hotkey HKEY 00000080 0000100c | computer_logicaldev_input_4 condition ButtonPressed = hibernate | 213 | XF86Suspend (*) |
Fn-Home | ☀▴ | down: e0 54 e0 d4 | 225 | KEY_BRIGHTNESSUP (0xe1) | 6 | video LCD0 00000086 00000000 | computer_logicaldev_input_0 condition ButtonPressed = brightness-up | 233 | XF86MonBrightnessUp |
Fn-End | ☀▾ | down: e0 4c e0 cc | 224 | KEY_BRIGHTNESSDOWN (0xe0) | 6 | video LCD0 00000087 00000000 | computer_logicaldev_input_0 condition ButtonPressed = brightness-down | 232 | XF86MonBrightnessDown |
Fn-PgUp | (illuminated overhead lamp symbol) | (none) | (none) | (none) | (none) | (none) | (none) | (none) | (none) |
Fn-Space | [🔍+] (screen with magnifying glass symbol and plus sign, i.e., "zoom" symbol) | (none) | 372 | KEY_ZOOM (0x174) | 10 | ibm/hotkey HKEY 00000080 00001014 | computer_logicaldev_input_4 condition ButtonPressed = zoom | (none) | (none) |
Fn-→ | ⏭ (barred right arrowhead, i.e., "next" symbol) | down: e0 19 up: e0 99 |
163 | KEY_NEXTSONG | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = next-song | 171 | XF86AudioNext |
Fn-↓ | ⏯ (right arrowhead, double bar, i.e., "play/pause" symbol) | down: e0 22 up: e0 a2 |
164 | KEY_PLAYPAUSE | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = play-pause | 172 | XF86AudioPlay |
Fn-← | ⏮ (barred left arrowhead, i.e., "prev" symbol) | down: e0 10 up: e0 90 |
165 | KEY_PREVIOUSSONG | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = previous-song | 173 | XF86AudioPrev |
Fn-↑ | ∎ ("stop play" symbol) | down: e0 24 up: e0 a4 |
166 | KEY_STOPCD | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = stop-cd | 174 | XF86AudioStop |
◂ ⎗ (left arrowhead, page icon) | down: e0 6a up: e0 ea |
158 | KEY_BACK | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = back | 166 | XF86Back | |
⎘ ▸ (page icon, right arrowhead) | down: e0 69 up: e0 e9 |
159 | KEY_FORWARD | 4 | (none) | platform_i8042_i8042_KBD_port_logicaldev_input condition ButtonPressed = forward | 167 | XF86Forward | |
On UltraBase X6 ▸ (right arrowhead) |
down: e0 56 up: e0 d6 |
227 | KEY_SWITCHVIDEOMODE (0xe3) | 6 | video VID 00000080 00000000 | platform_dock_0 property info.docked = false computer_logicaldev_input_0 condition ButtonPressed = switch-videomode |
235 | ? |
n | name |
---|---|
0 | "Power Button" |
1 | "Lid Switch" |
2 | "Sleep Button" |
3 | "Macintosh mouse button emulation" |
4 | "AT Translated Set 2 keyboard" |
5 | "Microsoft Comfort Curve Keyboard" |
6 | "Video Bus" |
7 | "Microsoft Comfort Curve Keyboard" |
8 | "Logitech Trackball" |
9 | "hdaps" |
10 | "ThinkPad Extra Buttons" |
11 | "TPPS/2 IBM TrackPoint" |
12 | "HDA Digital Beep" |
Hotkey mask when the above table was compiled:
$ cat /sys/devices/platform/thinkpad_acpi/hotkey_mask 0x008c7fff $ cat /sys/devices/platform/thinkpad_acpi/hotkey_all_mask 0x00ffffff $ cat /sys/devices/platform/thinkpad_acpi/hotkey_recommended_mask 0x008c7fff $ cat /sys/devices/platform/thinkpad_acpi/hotkey_report_mode 1
Compare Default meanings of special keys.
In Lucid the "ThinkPad Extra Buttons" device is gone. These are the devices available in Lucid:
n | name |
---|---|
0 | "Lid Switch" |
1 | "Sleep Button" |
2 | "Power Button" |
3 | "Macintosh mouse button emulation" |
4 | "AT Translated Set 2 keyboard" |
5 | "Microsoft Comfort Curve Keyboard" |
6 | "Microsoft Comfort Curve Keyboard" |
7 | "Logitech USB-PS/2 Trackball" |
8 | "Video Bus" |
9 | "TPPS/2 IBM TrackPoint" |
10 | "ThinkPad HDAPS joystick emulatio" (sic) |
11 | "ThinkPad HDAPS accelerometer dat" (sic) |
12 | "HDA Digital PCBeep" |
Problem: Zoom key not seen by X
The "Zoom" key (Fn-Space) cannot be assigned a function in GNOME. As shown in the table the key combination is seen and reported by ACPI
$ acpi_listen ibm/hotkey HKEY 00000080 00001014
but there is no corresponding X event.
The bug has been reported but there has not been any progress made (as of October 2010).
The tp-smapi module
The tp-smapi module allows, among other things, control of the battery charger as explained below.
Installing the tp-smapi module
$ sudo aptitude install tp-smapi-source $ sudo module-assistant build tp-smapi-source $ sudo module-assistant install tp-smapi-source $ sudo rmmod hdaps # To remove factory hdaps module $ sudo modprobe -a thinkpad_ec tp_smapi hdaps
This has to be done again each time a new kernel is installed.
Edit the file /etc/modules to add these lines:
thinkpad_ec tp_smapi hdaps
Ubuntu 9.10 through 10.10 contain version 0.40 of tp-smapi. On 10.10:
$ uname -a Linux triffid 2.6.35-22-generic-pae #34-Ubuntu SMP Sun Oct 10 11:03:48 UTC 2010 i686 GNU/Linux $ modinfo tp-smapi filename: /lib/modules/2.6.35-22-generic-pae/extra/tp_smapi.ko license: GPL version: 0.40 description: ThinkPad SMAPI Support author: Shem Multinymous srcversion: F73BBCBD87C5944FFE67105 depends: thinkpad_ec vermagic: 2.6.35-22-generic-pae SMP mod_unload modversions 686 parm: debug:Debug level (0=off, 1=on) (int)
There is currently (10 October 2010) no hdaps-utils package in Karmic and so no hdaps-gl application.
Increasing battery life
I am advised that, to make the battery cells last longer by reducing the number and depth of charge cycles, the charge thresholds should be set as follows.
Edit /etc/sysfs.conf to add the lines:
# Make battery live longer devices/platform/smapi/BAT0/start_charge_thresh = 50 devices/platform/smapi/BAT0/stop_charge_thresh = 90
The pakage sysfsutils must be installed for using /etc/sysfs.conf.
To effect the change either reboot or do:
$ sudo su # echo 50 > /sys/devices/platform/smapi/BAT0/start_charge_thresh # echo 90 > /sys/devices/platform/smapi/BAT0/stop_charge_thresh
Sound & modem
Sound generally works well.
The ThinkPad 56K Modem (MDC-1.5) is softmodem which collaborates somehow with the HDA sound system.
Ubuntu doesn't support the modem out of the box. Extra drivers are needed.
Linuxant drivers
What work for me are the Linuxant drivers. I had to install driver packages for both the modem (hsfmodem) and the sound hardware (alsa-driver-linuxant); specifically:
alsa-driver-linuxant_1.0.20.3_all.deb hsfmodem_7.80.02.05full_i386.deb
The drivers support 14.4 kbps as is. They support full 56 kbps and fax functionality when supplied with a license key which Linuxant supplies at a charge of 20 US$. I paid the money because I needed the fax functionality and I can report that faxing works well with efax-gtk.
Here is the log of the installation of the hsfmodem package:
jdthood@triffid:~/tmp$ sudo dpkg -i hsfmodem_7.80.02.05full_i386.deb Selecting previously deselected package hsfmodem. (Reading database ... 190767 files and directories currently installed.) Unpacking hsfmodem (from hsfmodem_7.80.02.05full_i386.deb) ... Setting up hsfmodem (7.80.02.05full) ... Conexant HSF softmodem driver, version 7.80.02.05full If you need license keys, assistance or more information, please go to: http://www.linuxant.com/ When reporting a problem for the first time, please send us the file generated by "hsfconfig --dumpdiag". No pre-built modules for: Ubuntu-9.10 linux-2.6.31-20-generic-pae i686-SMP Trying to automatically build the driver modules... (this requires a C compiler and proper kernel sources to be installed) Building modules for kernel 2.6.31-20-generic-pae, using source directory /lib/modules/2.6.31-20-generic-pae/build. Please wait... done. Automatically guessed region (using timezone): "NETHERLANDS" Setting region for modem unit 0: "NETHERLANDS" To change, use "hsfconfig --region" or "AT+GCI=<T35code>" The current region can be displayed by entering "ATI9" in a terminal program. Note: kernel module snd-via82xx-modem overridden by hsfmc97via Note: kernel module snd-intel8x0m overridden by hsfmc97ich hsfmc97sis Note: kernel module snd-atiixp-modem overridden by hsfmc97ati Current parameters: ("hsfconfig --info") Config for modem unit 0: /dev/ttySHSF0 Device instance: 0-HDA-14f12bfa:17aa201b-1 HW revision : SSD=31 LSD=0x11 HW profile name: hsfhda Registration ID: A16F-BBB1-4F55 License owner : unknown License key : FREE License status : FREE (max 14.4kbps data only) Current region : NETHERLANDS (T.35 code: 007B) The /dev/modem alias (symlink) points to /dev/ttySHSF0 To enable full 56K modem and FAX functionality, enter your license information with "hsfconfig --license". License owner and key data must EXACTLY match the information respectively provided to and by Linuxant. Otherwise, license status will remain "FREE"!
Here is the log of the installation of alsa-driver-linuxant:
jdthood@triffid:~/tmp$ sudo dpkg -i alsa-driver-linuxant_1.0.20.3_all.deb Selecting previously deselected package alsa-driver-linuxant. (Reading database ... 190702 files and directories currently installed.) Unpacking alsa-driver-linuxant (from alsa-driver-linuxant_1.0.20.3_all.deb) ... Setting up alsa-driver-linuxant (1.0.20.3) ... Removing hsf driver from /lib/modules/2.6.31-20-generic-pae/ Building modules for the 2.6.31-20-generic-pae kernel, please wait... done. Conexant HSF softmodem driver, version 7.80.02.05full If you need license keys, assistance or more information, please go to: http://www.linuxant.com/ When reporting a problem for the first time, please send us the file generated by "hsfconfig --dumpdiag". No pre-built modules for: Ubuntu-9.10 linux-2.6.31-20-generic-pae i686-SMP Trying to automatically build the driver modules... (this requires a C compiler and proper kernel sources to be installed) Building modules for kernel 2.6.31-20-generic-pae, using source directory /lib/modules/2.6.31-20-generic-pae/build. Please wait... Warning: Module snd_hda_intel is in use Warning: Module snd_hda_codec_conexant is in use Warning: Module snd_hda_codec_analog is in use Warning: Module snd_hda_codec is in use by snd_hda_codec_conexant,snd_hda_intel,snd_hda_codec_analog Sending TERM signal to processes still using the driver: PID USER COMMAND 18648 jdthood /usr/bin/pulseaudio --start --log-target=syslog Successfully stopped the Conexant HSF softmodem driver. done. Automatically guessed region (using timezone): "NETHERLANDS" jdthood@triffid:~/tmp$ sudo dpkg -i alsa-driver-linuxant_1.0.20.3_all.deb Selecting previously deselected package alsa-driver-linuxant. (Reading database ... 190702 files and directories currently installed.) Unpacking alsa-driver-linuxant (from alsa-driver-linuxant_1.0.20.3_all.deb) ... Setting up alsa-driver-linuxant (1.0.20.3) ... Removing hsf driver from /lib/modules/2.6.31-20-generic-pae/ Building modules for the 2.6.31-20-generic-pae kernel, please wait... done. Conexant HSF softmodem driver, version 7.80.02.05full If you need license keys, assistance or more information, please go to: http://www.linuxant.com/ When reporting a problem for the first time, please send us the file generated by "hsfconfig --dumpdiag". No pre-built modules for: Ubuntu-9.10 linux-2.6.31-20-generic-pae i686-SMP Trying to automatically build the driver modules... (this requires a C compiler and proper kernel sources to be installed) Building modules for kernel 2.6.31-20-generic-pae, using source directory /lib/modules/2.6.31-20-generic-pae/build. Please wait... Warning: Module snd_hda_intel is in use Warning: Module snd_hda_codec_conexant is in use Warning: Module snd_hda_codec_analog is in use Warning: Module snd_hda_codec is in use by snd_hda_codec_conexant,snd_hda_intel,snd_hda_codec_analog Sending TERM signal to processes still using the driver: PID USER COMMAND 18648 jdthood /usr/bin/pulseaudio --start --log-target=syslog Successfully stopped the Conexant HSF softmodem driver. done. Automatically guessed region (using timezone): "NETHERLANDS" Setting region for modem unit 0: "NETHERLANDS" To change, use "hsfconfig --region" or "AT+GCI=<T35code>" The current region can be displayed by entering "ATI9" in a terminal program. Note: kernel module snd-via82xx-modem overridden by hsfmc97via Note: kernel module snd-intel8x0m overridden by hsfmc97ich hsfmc97sis Note: kernel module snd-atiixp-modem overridden by hsfmc97ati Current parameters: ("hsfconfig --info") Config for modem unit 0: /dev/ttySHSF0 Device instance: 0-HDA-14f12bfa:17aa201b-1 HW revision : SSD=31 LSD=0x11 HW profile name: hsfhda Registration ID: A16F-BBB1-4F55 License owner : unknown License key : FREE License status : FREE (max 14.4kbps data only) Current region : NETHERLANDS (T.35 code: 007B) The /dev/modem alias (symlink) points to /dev/ttySHSF0 To enable full 56K modem and FAX functionality, enter your license information with "hsfconfig --license". License owner and key data must EXACTLY match the information respectively provided to and by Linuxant. Otherwise, license status will remain "FREE"! Processing triggers for ureadahead ... ureadahead will be reprofiled on next reboot Setting region for modem unit 0: "NETHERLANDS" To change, use "hsfconfig --region" or "AT+GCI=<T35code>" The current region can be displayed by entering "ATI9" in a terminal program. Note: kernel module snd-via82xx-modem overridden by hsfmc97via Note: kernel module snd-intel8x0m overridden by hsfmc97ich hsfmc97sis Note: kernel module snd-atiixp-modem overridden by hsfmc97ati Current parameters: ("hsfconfig --info") Config for modem unit 0: /dev/ttySHSF0 Device instance: 0-HDA-14f12bfa:17aa201b-1 HW revision : SSD=31 LSD=0x11 HW profile name: hsfhda Registration ID: A16F-BBB1-4F55 License owner : unknown License key : FREE License status : FREE (max 14.4kbps data only) Current region : NETHERLANDS (T.35 code: 007B) The /dev/modem alias (symlink) points to /dev/ttySHSF0 To enable full 56K modem and FAX functionality, enter your license information with "hsfconfig --license". License owner and key data must EXACTLY match the information respectively provided to and by Linuxant. Otherwise, license status will remain "FREE"! Processing triggers for ureadahead ... ureadahead will be reprofiled on next reboot
Solved problem: Linuxant ALSA doesn't build with Lucid's kernel
With kernel 2.6.32-21-generic-pae, shipped with Ubuntu 10.04 (Lucid Lynx), the build of alsa-driver-linuxant fails.
/usr/lib/alsa-driver-linuxant/pci/asihpi/hpios_linux_kernel.c: In function ‘HpiOs_DelayMicroSeconds’: /usr/lib/alsa-driver-linuxant/pci/asihpi/hpios_linux_kernel.c:34: error: implicit declaration of function ‘schedule_timeout_uninterruptible’ make[4]: *** [/usr/lib/alsa-driver-linuxant/pci/asihpi/hpios_linux_kernel.o] Error 1 make[3]: *** [/usr/lib/alsa-driver-linuxant/pci/asihpi] Error 2 make[2]: *** [/usr/lib/alsa-driver-linuxant/pci] Error 2 make[1]: *** [_module_/usr/lib/alsa-driver-linuxant] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-21-generic-pae' make: *** [compile] Error 2
This was fixed in version 1.0.23.0 of alsa-driver-linuxant.
Problem: Linuxant ALSA doesn't build with Maverick's kernel
With Maverick's kernel 2.6.35-22-generic-pae the build of alsa-driver-linuxant version 1.0.23.0 fails with
/usr/lib/alsa-driver-linuxant/acore/pcm_native.c: In function ‘snd_pcm_hw_params’: /usr/lib/alsa-driver-linuxant/acore/pcm_native.c:489: error: implicit declaration of function ‘pm_qos_remove_requirement’ /usr/lib/alsa-driver-linuxant/acore/pcm_native.c:492: error: implicit declaration of function ‘pm_qos_add_requirement’ make[3]: *** [/usr/lib/alsa-driver-linuxant/acore/pcm_native.o] Error 1
Solved problem: Linuxant ALSA breaks pulseaudio
When I first installed the alsa-driver-linuxant drivers, normal sound no longer worked: pulseaudio no longer recognized a sound card.
The solution was to upgrade the pulseaudio package to the version included in lucid.
Partially solved problem: No beep
After installation the system beep does not work.
The problem has been thoroughly discussed in this Ubuntu bug report: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/486154
In Intrepid this could be fixed by starting the Volume Control application and unmuting Beep.
In Karmic the Volume Control application did not exist. A new problem was that the pcspkr module had been blacklisted. And it turned out that there was another new problem, this time in ALSA, as discussed on the linux-thinkpad mailing list.
The ALSA problem was fixed in Linux 2.6.33. Thus, in Maverick, which includes Linux 2.6.35, an echo 4 > /proc/acpi/ibm/beep produces a beep. But only root can do this.
A traditional PC speaker beep (as produced by the beep program or by a terminal app when the bell is rung (as a result of echo -e '\a' in bash, for example)) initially doesn't work because pcspkr has been blacklisted in /etc/modprobe.d/blacklist.conf. Commenting out blacklist pcspkr fixes this so that beep beeps again — but again, only for root. And even for root the terminal bell still does not ring.
To re-enable the terminal bell I took the following actions suggested by contributors to Ubuntu bug #486154:
- Un-blacklist pcspkr as described above, then either reboot or modprobe pcspkr.
- On the terminal window, tick "Edit | Profile Preferences | General | Terminal bell"
- Run gconf-editor and at "desktop | gnome | peripherals | keyboard" change "bell_mode" from "off" to "on".
- Run gconf-editor and at "apps | metacity | general" tick audible_bell.
- Use the alsamixer program to unmute and raise Beep volume to a suitably high level.
- Do pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg bell.ogg
After taking these actions, the metacity window manager (active when "System | Preferences | Appearance | Visual Effects | None" is selected) produces the bell.ogg sample whereas the compiz window manager (active when "System | Preferences | Appearance | Visual Effects | Normal" or "... | Extra" is selected) produces the traditional speaker beep.
Even then I find, alas, that after reboot beep doesn't work until I switch window managers (e.g., to "None" and back to "Extra").
A hitch
Unfortunately, alsa-driver-linuxant, the Linuxant version of ALSA, appears to be incompatible with thinkpad-acpi, the module that creates the /proc/acpi/ibm/beep file:
$ sudo modprobe thinkpad-acpi FATAL: Error inserting thinkpad_acpi (/lib/modules/2.6.32-21-generic-pae/kernel/drivers/platform/x86/thinkpad_acpi.ko): Unknown symbol in module, or unknown parameter (see dmesg) $ dmesg | tail -2 [397468.354012] thinkpad_acpi: disagrees about version of symbol snd_card_create [397468.354014] thinkpad_acpi: Unknown symbol snd_card_create
Another hitch
The bell was broken again after upgrading to natty.
pactl upload-sample /usr/share/sounds/ubuntu/stereo/bell.ogg x11-bell worked at least once, causing a bell event to play bell.ogg; but a second time it did not work.
Deselecting and selecting System Settings | CompizConfig Settings Manager | General | Audible Bell worked at least once, causing a bell event to sound the traditional square-wave beep.
Display
Problem: eZoom is buggy
See https://bugs.launchpad.net/compiz-zoom/+bug/154719/comments/14 for problem description and workaround. Problem still exists in Maverick.
TPM
The X61 has a treacherous platform module (TPM) chip.
Solved problem: Hard locks
I installed tpm-tools to see if this version of Ubuntu can talk to the chip. After
sudo modprobe tpm sudo modprobe tpm_tis
the tpm_version command was enough to hardlock the system after printing out the following information:
The solution was to load the tpm_tis modules with the interrupts=0 parameter. Then tpm_version displayed the following information:
TPM 1.2 Version Info: Chip Version: 1.2.13.9 Spec Level: 2 Errata Revision: 1 TPM Vendor ID: ATML TPM Version: 01010000 Manufacturer Info: 41544d4c
Ref: https://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux
Fan
The machine started overheating. To fix this I created a file /etc/modprobe.d/thinkpad-acpi.conf with:
options thinkpad-acpi fan_control=1
and did
echo level 7 > /proc/acpi/ibm/fan
as suggested at How to control fan speed.