I fixed it! after some tinkering I resolved the problem with the PCMCIA port, it was not a hard-drive after all. It turns out all I needed to do was to update the bios. Since I have modified a good number of things I will start the description from scratch, but if you want you can take at the old page here.
The G2KHB486 is a marvel of a machine, its one of the first sub-laptops capable of real computing. This project is two fold; prove the power of Linux, and perhaps more importantly embrace old technology. While the final result will yield usable and unique product its task has not been set in concrete. This page will be slowly updated as I come up with new and nifty things. There are several pages (linked at bottom) which describe adventures with this machine but I am planning on improving slightly on many of the previous hacks.
To get the OS on the machine I used the same approach as described here. Basically I took the hard-drive out of the handbook and using a 2.5" to a 3.5" IDE adapter hooked it up to a working machine I had (the PII). Using the Debian net_install CD I did a very basic Debian installation. Then I installed some packages like SSH, elinks, make, gcc, bin86, libc6-dev, kernel-package, qt3-dev-tools and some other junk. I booted this installation on the PII and compiled a fresh kernel with some drivers for some PCMCIA hardware that I'll be using, you can take a look at the config here.
I have never really used default Debian kernels, not only are they bloated but also they allow less room for flexibility. I usually compile kernels using this method basically it involves making a debian package which you can then install using dpkg.
Making a kernel package:
There are many ways to compile a kernel but you must be especially masochistic if you want to compile a kernel on the handbook. Best bet is to either shove the hard-disk onto a more powerful machine and compile it there, or compile a package on another computer and transfer via floppy or Ethernet to handbook and then install it. There are many tutorials on how to do this so I will only give a very brief outline on the latter method.
- Download and unpack your favorite version of the kernel from kernel.org to /usr/src/ (tar -xvjf linux-2.#.##.tar.bz2)
- Make a symbolic link which points /usr/src/linux to your kernel Dir /usr/src/linux-2.#.## (ln -s /usr/src/linux-2.#.## linux)
- Install necessary packages (apt-get install make gcc bin86 libc6-dev kernel-package ncurses-base)
- cd /usr/src/linux
- configure your kernel using make menuconfig (You can copy this file to /usr/src/linux/.config and work from there)
- Clean up make-kpkg clean
- Make the package (make-kpkg --revision=786:##HandBook kernel_image)
- copy /usr/src/kernel-image-2.#.##_##HandBook_i386.deb to your handbooks /usr/src/ directory (use a floppy or if you have Ethernet PCMCIA you can use scp)
- Install your package on the HandBook (dpkg -i /usr/src/kernel-image-2.#.##_##HandBook_i386.deb)
Using my kernel packages:
If you don't wanna waste your time compiling your own kernel you can use my packages which are located here. The later the file the better it is (probably). If you are not sure on how to install these packages read below:
- copy /usr/src/kernel-image-2.#.##_##HandBook_i386.deb to your handbooks /usr/src/ directory (use a floppy or if you have Ethernet PCMCIA you can use wget)
- Install your package on the HandBook (dpkg -i /usr/src/kernel-image-2.4.31_##HandBook_i386.deb)
The bootloader install is not difficult if you follow one step, make a small (I made mine 30MB) partition. If you read my old handbook project page you will notice that I used to have lilo and it gave me useless prompt on start up, such is not the case with Grub.
Here are some files relevant to the booting process:
The handbook come with a crappy 100MB hard-drive (hdd), I highly recommend you swap this out for something of at-least 500MB if you are planning on actually using this machine with a real operating system. Initially I put a 2GB hard-drive into the handbook but after stumbling across Jeff Blums website I decided to shell out a little bit of cash for 1GB cf card and a CF to mini-IDE adapter. Unfortunately if you use the CF approach you wont be able to fasten your drive with screws. You can use some double sided tape or glue to secure it permanently, but if you want it to be removable you might want to secure it with Velcro (cough, static, cough) like I did.
As far as partitioning goes, I made 3 partitions. The first ~30MB is a boot partition if you are installing a large hard-drive (>1024 cylinders or >500MB (I think)) I highly recommend you do this. The second partition is the root partition ~700MB. And finally we have the swap partition I made mine ~190MB and recommend you make one in the 100-200MB range. Here is output from relevant programs in regard to my disk partitioning:
I replaced the CMOS battery with a lithium cell from another computer. Basically I unsoldered the old battery connector and soldered 2 leads to the new lithium and covered it in heat-shrink. Then I soldered the leads to the motherboard and glued the battery down with some double sided tape.
Here is a little trick: if you want to nicely seal your battery (make it look professional) pick up some of that SHINY heat-shrink, the radius of which is a tad bit smaller then the diameter of the battery. Cut of a piece of the heat-shrink so its about twice as long as the diameter of the cell and stretch out with needle nose pliers so you can push the battery inside. Shrink the heat-shrink with a heat gun or a lighter. Now you have a battery in heat shrink with 2 open ends. Grab a small spatula or a kitchen table knife, heat it up on a stove top and use to both cut the excess heat-shrink and seal (melt) the opening shut.
After you format your disk you should install the bios upgrade. This process involves booting a dos-type (I used windows98, if you don't have any laying around try freedos it might work) boot disk and from it running bios125. If you for some reason do not have the floppy drive you might want to consider making a fat partition and installing some form of dos on it and then running bios125. Just remember that anytime you format the disk the update magically disappears. When the update is done you will see "(Ver.1.25)" when bios starts
This bios update cleared up all the PCMCIA issues that I have been having. If you are not planning on using PCMCIA you probably don't need to run this upgrade at all
This computer was produced almost 10 years ago so I doubt any batteries for it are in good condition (even if you find new ones somewhere). The best solution that I see is to rebuild the pack, Jeff Blum did this using 4 "AA" batteries however I'm not too enthusiastic about this solution so I ordered 4 Sanyo HR-4/3AU (1.2 3800mAh) custom welded into 2 rolls which I will put in place of the old ones. NOTE this pack will be significantly better, the original pack is 4.8v and 2500mAh while the one I made is 4.8v and 3800mAh.
I often make use of the speaker (to let me know when shell scripts finish) but I noticed an annoying buzz coming from the speaker when the handbook is run on batteries. So I decided to add a small switch which I could use to turn on/off the speaker. Its nothing fancy but works well. Basically I put it on piece of breadboard and hot-glued it with a hole of the bread board over a screw hole (for stronger fastening). All of this is done in the "hard-drive area."
From the beginning of this project I wanted to add some form of networking to the G2KHB486 so that I could use it to SSH to my other machines from bed (YES, I'm that lazy at times [laptops in bed are cumbersome and get warm]). I had two conceptual approaches to accomplish this, one was to use a PCMCIA NIC and the other was to somehow network it through parallel/serial to another machine and do Ethernet emulation over that. While it is obvious that the first option is much more attractive, I had doubts about it. I couldn't get a NIC that I had laying around to work. Later after some reading I realized that not all PCMCIA-type cards are created equal. Yes, being new to PCMCIA devices I was trying to get a cardbus (32 bit PCMCIA) NIC to work in a 16Bit PCMCIA. Then I ordered a 3Com Megahertz 16bit PCMCIA 10Mbps NIC (Model 3CCE589ET) of eBay for $.98 and $9.00 shipping. This 3Com card worked flawlessly using the PCMCIA-cs package and the appropriate driver in the 2.4.X kernel.
I had an old Linksys 16Bit PCMCIA (WPC11) card laying around and one night I though, it'd be nice to make the handbook wireless. So I compiled a new kernel (as a package on another computer) with wifi support and drivers for the NIC, then I installed wireless-tools and voila it works! Right now this card will suffice but I am planning on getting something more powerful with an antenna port. Keep watching this space.
You might be wondering if this comp is has enough CPU power to drive the wifi NIC, and you might be surprised to hear that I have no problems even with WEP encryption. For those who are lazy I wrote a little shell-script which brings up the wifi interface with just one command. The shell script is located here after you adjust it to your network settings throw it in /usr/local/bin (or something similar) and you'll be able to just type wifi to bring up the interfaces.
$$$ Description Source 0 handbook Friend 34 16MB RAM (Lifetime warranty) 4allmemory.com 10 IDE to miniIDE adapter Computer fair 15 CD to miniIDE adapter ebay.com 60 1GB CF newegg.com 31 4 custom welded batteries (Sanyo HR-4/3AU, NiMH, 1.2V. 3800mAh) sabahoceanic.com 10 16bit PCMCIA 10MB/s NIC ebay.com 0 PCMCIA Friend ("You can use it for a while") 160 total
Please click here to browse all the file I keep for the project.