As a full-time professional Geek, one of my biggest pet peeves is when my own technology fails me and I am forced to futz with it to make it work. My computers have, unfortunately, taken great pleasure in finding odd little ways to fuck with me, and as such I have become less and less daring over the past couple of years with how I play with them. Case in point: I am no longer even trying to run Linux on Hyperion / Rodimus Prime anymore, because there are times when I work from home and I just can’t have the thing acting up on me when I need to work.
This month, I have tried two modifications to my electronics. One should have been dirt-simple and simply worked, the other had the chance of actually damaging (if not outright bricking) the target device.
We’ll start with what should have been the simplest: I bought a new keyboard / mouse combo for Hyperion, my home workstation. A Logitech MX3200 wireless kit, with a Laser multi-button mouse. The main purpose of this was to change things around for appearances’ sake (much like moving the furniture or getting new artwork.)
The second purpose was for a little improvement in usability – my old BTC LED backlit keyboard is cool, but the space bar is sunk a little below the frame and I tended to miss it whilst pecking away at emails. I have also gotten spoiled by my work mouse which has programmable extra buttons, and I have set one of these to trigger a double-click with a single press. This comes in handy during remote-control sessions where a standard double-click may not be sensed right by the remote-ed computer.
I hooked everything up fairly easily, only to discover that when I built the machine something apparently went wrong with the USB driver installation and it would not accept any USB mouse I tried – it was throwing me “the data is invalid” errors every time I tried to install the mouse. I was eventually forced to do a repair install of Windows after verifying with a Linux live CD that the hardware was kosher. Which also meant I was forced to re-install all of the security patches released since that particular install CD was pressed. Ugh.
Even after this was finished, though, shit didn’t work. Ok, the keyboard linked up just fine and I had access to all the special functions, and the mouse would install and function, but it would grab the stock Micro$haft driver instead of the Logitech one. A quick trip to the Logi site got me an updated driver, and in it went. To my horror, however, I lost all the advanced keyboard features and still couldn’t get the right mouse driver.
So I rolled back to the original driver set and regained full keyboard, then went looking through the user forums. Lo and behold, there is much ranting about how these drivers just DO NOT WORK AS PACKAGED. PERIOD.
There is hope, however: if you edit the .inf file for the mouse, it is possible to get it to install directly. So, I chop away at it, but it still refuses to install. (It fails at a different point, however.) Time to talk to Logi support then. Their answer was to do a “clean boot” of Windows and try again – use msconfig to turn off everything for the next boot. (You basically get the next best thing to “safe mode” with this method.)
I can understand turning off antivirus and firewall, but EVERYTHING? Surely this can’t work!
Sonovabitch – it worked. With my modified driver, I might add. Points to TS for finding the solution, but serious negatives to the driver engineers who released this batch of absolute horse shit driver package. You guys need to take up self-flagellation.
On to the second improvement: modifying the memory settings of my T-Mo Wing PDA/phone.
This one is scary.
Short story: cell phones use memory for program and file storage AND running programs. If you add a removable memory card you can gain program / file storage, but it doesn’t help the basic running program space – even when you have installed the program to the card and not internal memory.
So, while my phone was typically running with 12-15MB of free storage-side internal space, the running program side of things only had 4-8MB free on average – which meant that space-hogging applications would crash frequently and I would have to reboot the phone every day or so – or any time I wanted to take a picture.
My original thought was to try and find a way to alter the amount of internal space allocated to file storage and free up some of that room for running programs. From the complete lack of mention of any sort of method to do this, I must assume that this is encoded in the hardware and unchangeable.
There is hope, however: Paul at MoDaCo has researched this very same problem and discovered that the HTC Touch and the T-Mo Wing (also made by HTC) both share something in common: an overly-large pagepool.
Paul explained it best, so I’ll quote him:
Deep in the depths of the operating system of your device, there is something called the ‘PagePool’. Without going into too much detail (and as I understand it!), the PagePool is a special area of memory reserved for loading apps into from ROM. This PagePool is a lot faster than ROM, so when things are executed from this ‘cache’ instead, the performance of a device will be quicker. On the flipside, if you have a 8MB pagepool (HTC Touch) and you’re using, say, 4MB of the pagepool, then 4MB of space is wasted that could be program memory. Similarly if you have a 12MB pagepool (!) (T-Mobile Wing) in this instance you would we wasting 8MB of space!
Using serious amounts of Geek-Fu, Paul also discovered that it is possible to change this setting and reduce the size of the pagepool to free up space for running programs. The catch, however, is that this is not a setting or even a registry tweak: you must alter the ROM of the device.
This is a moderately tricky task involving downloading the ROM from your device, making the change, and loading it back in. When you reboot, the phone will read the new ROM and use those settings. If you make the wrong edit, however, you could screw things up badly or even completely brick the device.
Not for the faint of heart, obviously. But, being annoyed enough with the performance of my phone and needing to run a particular memory-hog of an app for work, I was left with little choice save for switching carriers and buying a new phone.
So I did some more reading and found a tool that reportedly will be able to restore the phone should the worst happen (this was released after Paul’s tutorial was written). Then I read the tutorial about 20 times to make sure I knew what I was doing and dove in.
I downloaded. I read the ROM into a hex editor and found the setting to change, changed it, saved it all, and crossed my fingers, toes and eyes as I depressed the LOAD key.
This is really scary here, because you load it from a command prompt, and it just sits there staring at you for about ten minutes doing nothing. You have no idea if it is doing anything at all, let alone working, and so you sit there drumming your fingers on the desk and waiting and watching and waiting and watching and…
The prompt is back and flashing at me.
The boot-cycle sound wave plays.
Time slows to a crawl as I watch the Today screen load piece by piece. Is it slower than usual? Has it speeded up any? I can’t tell.
Finally, some ten millenia later (subjective time) it finishes booting and it looks like everything has worked.
No way. It worked?!?
I tap away to get to the memory status page, and there is the result: 14Megs free.
Only time will tell, of course, but I have thrown everything I can think of at it tonight, and the darn thing just keeps running.
Paul, I bow to your expertise and daring in having figured this out before there was any way to fix it should you have screwed up.
Now do me a favor and get a job at Logitech, will you? they need your skills.