Leapdragon 2016 - Aron Hsiao Was Here

Hot-rodding an M200  §

Okay, it’s been a while since I did the “tech hack” thing even in the small way I’m about to describe, but it’s been fun this weekend to take my 1.8Ghz Toshiba M200 Tablet PC to 2.3Ghz. Here were the steps:

1) Swap out the 1.8Ghz Pentium M Dothan (400Mhz FSB) with a 2.1Ghz Pentium M Dothan (400MHz FSB).

2) Get ahold of a Toshiba M200 factory initialization floppy image that contains a utility to write the CPU characteristics to flash for proper support/initialization on boot.

3) Edit the CPU table on the floppy using a hex editor to contain an entry for the particular 2.1Ghz CPU involved.

4) Open the laptop, pop out the old CPU, pop in the new CPU.

5) Boot the floppy, write the new CPU characteristics to the BIOS, reboot, voila, 2.1Ghz.

6) Determine the clock chip (ICS 952618) and verify that I can take the speed higher using an SMBus utility like CPUFSB, ClockGen, or CPUCool. It’ll actually go as high as 2.6Ghz, but that takes the PCI clock too high for my liking. I also like stability.

7) Realize that FSB overclocks in Linux, apart from Asus eeePC, are not exactly easy to achieve.

8) Create a full Windows 98 install image on a bootable SD card and install CPUFSB there.

8a) Reconfigure my 2.6.27.8 kernel to have a minimally-sized image and to load anything possible dynamically as a module.

8b) Install LOADLIN on said bootable SD card along with the newly minimal 2.6.27.8 kernel (old, real-mode LOADLIN faints if you hand it an uncompressed kernel image over 2MB or so).

9) Switch from the slightly faster AGPGART to NVAGP to re-enable hibernate since sleep/resume won’t work with mismatched clocks.

10) Voila! Insert SD card, boot Windows 98 -> Linux with a higher FSB. Hibernate/restore the same way. For “regular speed” operation, simply pop out said SD card.

The speed difference from 1.8Ghz is noticeable; most specifically, I can now watch pretty much any video online, even very high quality/high resolution videos like the MSNBC feeds, without stuttering or problems of any kind, which was really what drove me to this in the first place.

But it’s also nice to be able to tell myself that I have upgraded to a 2.3Ghz Pentium M (equiv. to about a 3.5Ghz Pentium 4, or to single-core operation of a Core Duo) using an FSB overclock and an “illegal” CPU for this mainboard and that it’s working rock-solid in Linux. The M200 proves to be an awesome platform for “upgradeability.” Got it at 1.8Ghz/40GB/512MB and now running 2.3GHz/160GB/2GB and the NVidia GeForce5 series GPU inside it is just enough to make most things that I need to do doable.

Oddly enough, the hardest part of the whole thing was getting Windows 98 to install on an SD card with a bootable floppy image on it, given the way the BIOS sets the drives up and the fact that all of the MBR and boot stuff ends up in a read-only ramdisk (where the image lives) rather than on the SD card itself, meaning that I had to do some “by hand” work to reconstruct the boot image to match the Windows 98 expectations through each install step. That and the fact that Windows 98 punts cryptically with 2GB of installed memory, which confused the hell out of me for a while and prevented the installer from proceeding beyond a certain point. (A win.ini fix is required to make it work.)

Hopefully this upgrade helps us hold out for another year or two. At this point the biggest gripes are a gradually dimming backlight and slowly waning structural integrity.

Okay, end pitifully geeky-but-yet-embarrassingly-not-even-that-geeky blog post.