1. About My IBM Thinkpad T43 (2668-HH5) ToyI bought this powerful toy in the "HKUST Notebook/Desktop Ownership Program" sponsored by PCCW and IBM, in August 12, 2005. The module number of my T43 is 2668-HH5. There is no big difference with other modules except the ABSENCE of the Fingerprint Reader and the Bluetooth. The hardware spec is listed as follows: ThinkPad T43 / 1.86GHz Processor: Intel Pentium M 750 1.86GHz L2 Cache: 2MB L2 cache / Intel 915PM OS: Win XP Pro. (English) Memory: 512MB DDR2 RAM Hard Disk: 60GB disk (5400 rpm) Optical: 24X/24X/24X/8X CDRW/DVD Combo Display: 14.1" TFT SXGA+ (1400 x 1050) Graphics: ATI Radeon X300 (64MB) Communication: Modem, LAN, 802.11b/g Media: 2 x USB 2.0, S-video out, parallel, IR, VGA Weight: 4.5 lbs (4.9 lbs) Dimensions: 12.2" x 10" x 1" Battery Life: 4.0 hrs* Warranty: 3-year international warranty[You can get the output of "lspci -vv" here. Note: the output of lspci was generated after ran "update-pciids".] My beginning experience of this laptop was kind of nightmare since there was a GREEN subpixel on the center of the LCD screen. It's too distinct to omit so that I ever wanted to sell it since I have another old laptop (Dell Inspiron 4150) on hand. Fortunately, the trading was not smooth enough that I kept it in the box until the end of September. Eventually, I decided to own it by myself whatever it is good or not. So you get the chance to see this memo. :) By the way, during my experiment of installing Debian On this box, the LCD screen was defaced by a straight white line from the left to right on the upper side. Well, I thought I got a good chance to change a stainless new LCD from IBM service center, **BUT**, what I got is the same, a new LCD screen with a RED subpixel. :( 2. Why Ubuntu?Yes, I know there are a lot of distributions on the market. But why Ubuntu? To be honest, I never heard about Ubuntu until I searched "Debian On IBM T43" on google. You see, I am a big fan of Debian. And sure, Debian is my favorite GNU/Linux distribution, but the reasons I chose Ubuntu other than the original Debian are: A. The infamous problem of the SATA harddisk driver exists in current Debian release (3.1r0a) as many of others. The Debian installation CD doesn't support the SATA harddisk and can just treat it as an ATA device without DMA enabled. So the copying procedure would be very slow. Although, after installation, I could download and recompile the newest kernel to support SATA, the time spending on recompiling the new kernel and transporting the /dev/hdx to /dev/sdx should be considerable and the operation should be easily to get in trouble without particular care. B. The Ubuntu, IMHO, is a FRESH {clone|fork} of Debian GNU/Linux equipping the most up-to-date packages based on Debian. The version I downloaded is Ubuntu-5.10-preview (AKA. Breedy Badger) which, certainly, supports SATA. It also delivers the newest X.org version 6.8.2 that recognizes the ATI Radeon X300 graphic card well, GNOME 2.12.1, OpenOffice.org 2.0 beta 2 and so on. These advantages really encouraged me to have a try. So, for saving my time from "A" and getting the powerful and still Debian-based GNU/Linux, Ubuntu is a better choice for me at this moment. Note: I returned to Debian. For more information, please check the section of 9. Return to Debian. Actually, Ubuntu is good enough for most of us, but I perfer Debian anyway. If you still wonder why, the reason is that: I always like to use the net-install CD to install a slim system with the minimal package collection that I REALLY want & need, but Ubuntu doesn't meet my needs, since it always trys to install quite a number of drivers/modules/packages to support as many hardware and systems as possible. So, inevitably, that makes your system a bit fat. :) 3. Installation of UbuntuI should say sorry that I don't have many words in this section since the installation was quite easy and really painless if you have ever installed Debian/{RedHat|Fedora} or the like before. Maybe my tactic of the hard disk partitioning could give you some information: joseph@PeT43:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda7 714M 79M 597M 12% / /dev/sda2 97M 8.0M 84M 9% /boot /dev/sda10 7.5G 499M 6.6G 7% /home /dev/sda6 9.2G 732M 8.0G 9% /tank /dev/sda9 6.5G 2.3G 3.9G 38% /usr /dev/sda8 1.8G 156M 1.5G 10% /var /dev/sda5 14G 496M 14G 4% /mnt/WinD[ I have reserved the Windows OS on the box in case I will be required to lend my PeT43 to some Windows' guys. ] A kind reminder is when you are prompted to decide which kernel image to be installed on your box, please choose the version of 2.6.12-8. I admit that I was really amazed when I first entered the Ubuntu world after I finished the installation. What surprised me was not the brilliant desktop but that almost all of the features it provided works well. It sounds like a load of craps, but, you know, this T43 box is kind of pretty *NEW* module in the market. The XWindows server, GNOME Desktop, wired/wireless network interface card, sound card, synaptic touch-board, ACPI(suspend to memory/suspend to disk/lock screen) and even the specified FN functions of IBM ThinkVantage such as Think Light works well. What else do {I|You} want? The first words I said after I logout was "Ubuntu Rocks!". Well, if you are a normal user looking for a workable GNU/Linux distirbution on your T43, just stop here, close this page, and get an Ubuntu installation CD to install it on your box. It's all enough for you. Please do **NOT** waste your time on the following sections, which will, to some extends, drive you a bit crazy. :) 4. Kernel Customization & PatchingBefore I continue the kernel customization and patching, I would like to recommend you 3 sites about how to compile the kernel in "Debian Way" if you are not quite familiar with this "new" favor. The reason why I wanted to customize the kernel is that there are too many useless modules/features preinstalled by Ubuntu installation CD. Like other GNU/Linux distributions, Ubuntu tries to support as more different hardware as it can. So, if you like a neat but full featured kernel, you must DIY. But as I mentioned above, almost all of the hardware are well supported in Ubuntu's 2.6.12-8 kernel image, that means Ubuntu has patched almost all of the available patches in it. That also means, if you decide to tweak the new kerenl by your hands, you should manually grab those kernel patches from the Internet. Don't worry about that, the patches will be easily found by thoese URLs I listed below. Here we go. 4.1 Grab the kernel tarballJust connect http://www.kernel.org to get the newest kernel. On the time of writing this memo, the lastest stable version of the GNU/Linux kernel is 2.6.13.3, and the latest prepatch for the stable GNU/Linux kernel tree is 2.6.14-rc3. I selected the former one for a "stable" kernel. So the patches discussed in the coming part perhaps can be *ONLY* applied to kernel 2.6.13.x. 4.2 Patching the kernelThe most time-consuming patching work is caused by the Probelems with SATA and Linux. I'd like to strongly suggest you to have a look at the previous link before you patch your own kernel. The kernel patches I patched in my PeT43 are illustrated below. 4.2.1 to support suspending to RAMI grabbed the kernel diff file from here. It was patched successfully in the 2.6.13.3 version. (I didn't remember if there were some HUNK problems or not, but it won't be matter.) 4.2.2 to support the S.M.A.R.T.This single patch mentioned in www.thinkwiki.org has been upgraded to a patch package on this site. There are 6 patches in the directory and, as the README mentioned, they should be patched one by one according to the prefix number. I only applied the first 5 patches since I want to install the newest IPW2200 WLAN adapter driver and IEEE80211 sub-system later on. I have met a conflict problem when I was patching the "04_libata_suspend.patch" in line 116 of the file "/usr/src/linux-2.6.13.3/include/linux/libata.h". After I checked the source file and the diff file, I found that the patch done in 4.2.1 had already added a line like: ATA_FLAG_SUSPENDED = (1 << 9), /* port is suspended */But the current patch wanted to add another line like: ATA_FLAG_SUSPENDED = (1 << 10), /* port is suspended */
After looked into the source codes, I believed the later one was right. So I
just modified the line 116 of "libata.h" to conform to current
patch. To support Fast IrDA in current Linux kernel, I downloaded a kernel patch from here. I choose the nsc-ircc-pnp.2.6.12-rc6.diff to patch in my kernel source tree, and followed the detailed guide by Wolfgang Karall then everything's okey. (Note: you need first make sure if you have installed a tool named "setserial" before you follow Wolfgang's guide, otherwise, you will get error message as "nsc_ircc_open(), can't get iobase of 0x2f8".) Note: Since there is no BlueTooth chipset in this(2668-HH5) module, if you are also in this case, it's better to unload the blue-tootch kenerl module to avoid the conflict of I/O resource. 4.2.4 to enable advanced trackpoint configurationPlease refer to Patch to enable advanced trackpoint configuration at first to know details about it. The related patch for kernel 2.6.13 can be downloaded from here. Also, I downloaded the configure-trackpoint tools to configure the trackpoint in GNOME from here. [By the way, the "Synaptics TouchPad driver for XOrg/XFree86" has been included in the kernel, so no needs to patch it again.] 4.2.5 to add software-suspend2Again, please refer to How to Make ACPI Work for detailed information. The project home is http://www.suspend2.net/, and I downloaded the patch for kernel 2.6.13 from this URL. 4.2.6 to upgrade the ibm-acpi driverFor getting better performance and more functions, I downloaded the newest version of ibm-acpi (Ver: 0.11) from it's official homepage and overrided the old one (Ver: 0.8) in the kernel tree. But during the recompiling kernel, the new version generated an compilation error of redeclaration of function "device_add". After read the source codes and just changed the function name "device_add" in line 1755 and 1773 of "ibm-acpi.c" to "acpi_ibm_device_add" to smooth this complaint. 4.2.7 to bring Wireless LAN upThe driver source code of the Intel Corporation PRO/Wireless 2200BG doesn't exist in current Linux kernel, so I must added it in manually. I got the freshest ipw-2200 driver (Ver: 1.0.6) from its Homepage. And also, according to the requirements mentioned in the "INSTALL" in ipw2200 source code tree, I downloaded the IEEE80211 sub-system (Ver: 1.0.3) from the Project's Homepage. It's smooth to compile the IEEE80211 subsystem at first, but, oops, I met a problem when compiling the ipw2200-1.0.6, like: ipw2200/ipw2200-1.0.6/ipw2200.c:10150:48: error: macro "create_workqueue" passed 2 arguments, but takes just 1 ipw2200/ipw2200-1.0.6/ipw2200.c: In function 'ipw_setup_deferred_work': ipw2200/ipw2200-1.0.6/ipw2200.c:10150: error: 'create_workqueue' undeclared (first use in this function) ipw2200/ipw2200-1.0.6/ipw2200.c:10150: error: (Each undeclared identifier is reported only once ipw2200/ipw2200-1.0.6/ipw2200.c:10150: error: for each function it appears in.) This error was caused by the software-suspend2 patches that changed the macro definition of "create_workqueue". After I tracked the source code in ipw2200.c and ss2's patch, I just changed the line 10149-10154 of "ipw2200.c" from 10149 #ifdef PF_SYNCTHREAD 10150 priv->workqueue = create_workqueue(DRV_NAME, 0); 10151 #else 10152 priv->workqueue = create_workqueue(DRV_NAME); 10153 #endifto ONE line: 10149 priv->workqueue = create_workqueue(DRV_NAME); Eventually, the ipw2200 module was compiled successfully and functions normally. 4.2.8 HDAPS (Hard Disk Active Protection System)I think the HDAPS technology is really useful for a laptop system and fortunately, I found a driver to enable this feature in GNU/Linux world. I downloaded the amazing driver (Ver: 0.06) from HDAPS Homepage on sf.net. The hdaps works well after loaded as a system module, and it's very funny to verify by using a GNOME-applet "tilt" and a GL-based 3D model "hdaps-gl" mentioned in the README file of the source code. 4.2.9 the kernel ".config" fileI skipped to show related system configurations which are needed to enable some functions mentioned above, but, you can download my kernel .config file here to vimdiff. :) 5. Fun of my PeT43Here I want to introduce you some wonderful tools and tips to make your T43 more comfortable. 5.1 Gaim-ThinkLightThis is a GAIM plug-in to add a feature that it will blink the ThinkLight when I get a message from a friend in GAIM. It has been in Debian's unstable packages directory. Interested in? Just download it from Deiban. 5.2 Remapping F1 to ESC in VIMIf you never used IBM T-series laptops before like me, you will be annoyed by the layout of the "Esc" key since it's not on the left of "F1" key but on the upper side. Inevitably, I always make mistake by pressing "F1" to get a unwanted "Help Dialogue" instead of the "Esc" to escape from the insert mode. It could be overcomed by adding the following lines in my ~/.vimrc file: " remap the F1 to ESC, That helps a lot when you use the IBM laptop. :) Joseph WU " http://www.vim.org/tips/tip.php?tip_id=1007 " Paul Bolle 5.3 Reactivate the Access IBM, Forward/Backward keys in GNOmeThe blue "Access IBM" button and the Forward/Backward keys on the arrow key area have no any response even if you press them a million times. But when I press the blue "Access IBM", it will give me a terminal, and the "Foward/Backward" key brings me to the previous/next desktop of current working one, respectively. Well, it's not kind of magic, just do it as follows: 5.3.1 Reactivate the Access IBM keyAt first, I downloaded and installed the Debian package of tpb (ThinkPad Button) tool from here. You can also download the source code of tpb here. To enable the Access IBM key, what I did was just uncommenting and modifying a line in KEYBINDINGS AND CALLBACK section of /etc/tpbrc as follows: ### KEYBINDINGS AND CALLBACK ## THINKPAD # String with command and options that should be executed when ThinkPad # button is pressed. It is possible to execute any program. # By default no command is executed. # #THINKPAD /usr/bin/X11/xterm -T ntpctl -e ntpctl #THINKPAD /usr/bin/firefox http://www.thinkwiki.org THINKPAD /usr/bin/gnome-terminal --working-directory=%f After I restart the tpb, the Access IBM button gets its rebirth.
Other things about tpb: At first, I created a file named .Xmodmap in my home directory with following lines: keycode 234 = F19 keycode 233 = F20 Then, I ran the Keyboard Shortcuts program from System|Preferences and modified the shortcuts of "Switch to workspace on the left" and "Switch to workspace on the right" to F19 and F20 respectively. After I logout current GNOME session and re-logon, the Forward/Backward keys work well as what I expected. 6. BenchmarkI have done the benchmark of my IBM T43 toy based on, hdparm, Bonnie++ and dbench/tbench. Here is the result. The output of hdparm:root@PeT43:/home/joseph# hdparm -tT /dev/sda /dev/sda: Timing cached reads: 3316 MB in 2.00 seconds = 1658.25 MB/sec Timing buffered disk reads: 96 MB in 3.02 seconds = 31.80 MB/sec root@PeT43:/home/joseph# hdparm -tT /dev/sda /dev/sda: Timing cached reads: 3376 MB in 2.00 seconds = 1686.57 MB/sec Timing buffered disk reads: 102 MB in 3.02 seconds = 33.76 MB/sec root@PeT43:/home/joseph# hdparm -tT /dev/sda /dev/sda: Timing cached reads: 3356 MB in 2.04 seconds = 1642.13 MB/sec Timing buffered disk reads: 96 MB in 3.01 seconds = 31.87 MB/secThe output of Bonnie++:
root@PeT43:/tank# !bonnie++
bonnie++ -u root
Using uid:0, gid:0.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
PeT43 1G 23460 66 26389 13 11792 6 22458 61 28163 7 112.8 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 2366 92 +++++ +++ +++++ +++ 2598 87 +++++ +++ 12889 96
PeT43,1G,23460,66,26389,13,11792,6,22458,61,28163,7,112.8,0,16,2366,92,+++++,+++,+++++,+++,2598,87,+++++,+++,12889,96
The output of dbench:
root@PeT43#dbench 2 Throughput 277.361 MB/sec 2 procs root@PeT43#dbench 10 Throughput 237.392 MB/sec 10 procsThe output of tbench: root@PeT43#(tbench_srv &); tbench 2 Throughput 162.553 MB/sec 2 procs Thanks for Alex Lau's suggestion. :) Actually, I have *NO* much impression about how [good|bad] the performance is, without comparison. So, if you happened to do the benchmark on your T43 box, please email me the result. Thank you. 7. ToDo7.1 to enable DMA on the DVD driveThere is a workaround in ThinkWiki, but I am waiting for a safer one. [Solved. Please refer 8. Return to Debian for details.] 8. Return to Debian [updated: 12-18-2005]As mentioned before, I returned to Debian recently. Here are some new stuff sharing with you. 1) The ibm_acpi & trackpoint modules are equipped with the newest version in the kernel, and the hdaps (Hard Disk Active Protection) is included too. So I needn't patch them again. But, the ipw2200 & ieee802.11 drivers have been updated, I used the new ones from their official homepages. 2) The hard disk SATA problem still remains. Since the patches I introduced above are mainly applied for kernel-2.6.13, I downloaded new patches under the guide of Gina Haeussge's Work of How to Install Debian on the IBM Thinkpad T43. 3) Gina didn't patch the Software-Suspend2, but it's highly recommended by me since the "Hibernate (suspend to disk) can be done flawlessly with its help. The project's homepage has provided the patch for kernel 2.6.14. 4) The most useful (new) thing is the SMAPI (System Management Application Program Interface) which can define the threshold of when the battery starts/stops charging, in order to make the battery lifetime longer. I wrote a script (ibm-spec.sh) to setup the SMAPI system automatically druing the system init. You can download it into /etc/init.d/, and make it executable and then "cd /etc/rc2.d/; ln -s ../init.d/ibm-spec.sh .". 5) The issue of playing DVD without DMA now can be easily worked out by adding two parameters (ide1=noprobe libata.atapi_enabled=1) in the kernel line of /boot/grub/menu.lst. Looks like: title Debian GNU/Linux, kernel 2.6.14.4-20051217 root (hd0,1) kernel /vmlinuz-2.6.14.4-20051217 root=/dev/sda7 ro vga=791 ide1=noprobe libata.atapi_enabled=1 resume2=swap:/dev/sda11 savedefault boot 9. X.Org 7Recently, X.Org 7 has been updated in Debian testing. Since the modular X.Org 7 is quite different from 6.x , during my own update, some problems occured. The open source ati driver in X.Org 7 made my Thinkpad T43 hanging, so I have to turn to the closed fglrx driver supported by ATI. To install the fglrx driver is really easy because Debian has packed the related components in several packages in "unstable" pool. I downloaded and then installed the "fglrx-control", "fglrx-driver" and "fglrx-kernel-src". The previous 2 packages are must-haves in order to use the fglrx driver, and the last one is optional for 3D hardware accelerating. "dpkg -i fglrx-kernel-src" will only install the fglrx-kernel-mode source code "flgrx.tar.bz2" in "/usr/src", you are encouraged to refer to the document in "/usr/share/doc/fglrx-kernel-src/README.Debian.gz" for the information how to build the kernel module without recompiling your kernel. [I recommend the "module-assistant" way mentioned in the document.] My workable xorg.conf can be found below, and hopefully, you can get some useful tips from my comments inside.
Update: The workaround is to add a line ProcSetting extra_pages_allowance 3000in hibernate.conf to overcome the hang on "doing atomic copy". Please check hibernate.conf in My Config Files for details.
Some informative links: 10. My Config FilesSome of my configuration files:
11. Useful linksThis is one of the most great sites for the ThinkPad user who wanna use GNU/Linux on his/her laptop. Almost every ThinkPad-specified problems and solutions I learned were found and contributed by the warmhearted users there. Thanks a lot! Well, its website seems out, but there is a very active mail-list that will help you out when you're in trouble unluckily. The best site dedicated to GNU/Linux and Mobile Computers. You can find other guys' experiences of how to install various GNU/Linux favors on their ThinkPad laptops.
|