GRUB for ThinkPad 600E mods
Being a Linux user, I have not been satisfied with the existing solutions to enable the speedstep
mod. The kernel module by wmarcusm is great but has one problem. Since it does not change the
kernel's internal variables like loops_per_jiffies, time-related tasks can malfunction. If you do
'sleep(1)', it actually sleeps less than 1 second. I do a lot of timing-sensitive stuff, so it is a
real problem for me.
The tsc is not recalibrated either. To make everything work properly, the kernel source has to be
modified. But, if you have no problem giving up tsc, it is possible to add "clock=pit" to the
kernel boot options. Then you only need to update loops_per_jiffies or cpu_data.loops_per_jiffies,
which can be done in a kernel module.
But I wanted to use tsc as the time base and did not want to patch and recompile the kernel
everytime I install a new kernel. So I put them in the boot loader, GRUB.
I am not using Windows, but if you do, it will activate the mod and enable the cache before Windows
loads. It will also activate the mod/l2cache when waking up from WinXP hibernation. (If APM
hibernation is used, it won't work, as APM hibernation/wakeup is implemented in BIOS and bypasses
the bootloader. WinXP uses ACPI by default and implements its own hibernation method.)
Even with this version of GRUB, wmarcusm's programs will be still useful for re-enabling the
feautures after waking up from suspend or APM hibernation.
One thing to note is that the port address is hardcoded. Smile Yes, it sounds stupid, but all three
ThinPad 600E's that I have access to reports the same base i/o address for the south bridge. So far
I had no problem on any of the three. If you do, probe it using wmarcusm's code and put that number
in place of the existing hardcoded base address.
To use the feature, you just need to add "tpad" command to your boot configuration file. If you add
the "--nods" option, it will only enable the l2 cache and leave the speedstep mod alone.
One final note is that, if you only have NTFS partitions, you cannot use this version of GRUB, as
it lacks NTFS support. The stage2 images can be installed on linux or fat partitions. It will be
great if it is ported to WINGRUB or GRUB4DOS. If you have no idea what I am talking about, just
stay with your current configuration.
Source (tgz, 954KB) grub-0_97tpad.tgz
Installation Instruction
If you have Linux installed on your TP600E, just follow the regular installation method on Linux, configure, make, and make install. Then just modify /boot/grub/menu.lst.
For your convenience, I am also providing prebuilt binaries and the boot disk image.
BOOT.ZIP is the binary distribution of the modified GRUB bootloader
for ThinkPad 600E modifications
(P-III upgrades and the DeepSleep mod).
1. The first step is to create the grub boot disk. Download the
disk image.
If you have a running Linux or FreeBSD system, use the following
commands to create a boot disk.
dd if=grub.img of=/dev/fd0
For DOS/Windows users, use rawrite.exe to transfer the image
to the disk.
2. Decompress the boot.zip to a partition of the supported types.
An ideal choice will be ext2, ext3, or vfat. NTFS is not supported
in this version. The files must be in the path like "C:\boot\grub" or
"D:\boot\grub"
3. Boot the computer with the GRUB boot disk you created in the
first step. At the GRUB command prompt, chooe the root partition
where we stored the files in the step 2. The first partition of the
first drive will be (hd0,0) so type in "root (hd0,0)".
If you are not sure, you can use the "find" command to find out.
Try "find /boot/grub/stage2".
4. Install the boot loader to the MBR using the "setup" command.
Type in "setup (hd0)" for installing to the first disk.
5. Customize /boot/grub/menu.lst.