This project is dead

I am currently having problems with the pcmcia port I have a feeling the hard drive is crapping out and thus funkiness is escelating throughout. I might get a new hard drive (cf with ide adapter) if this fixes my problems the project will be rewived. But untill that time comes dont wait for updates.

The G2KHB486 projects.

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.

Software

Operating System

On most of my machines I use Debian GNU/Linux, and I made no exception for the handbook. It shouldn't be hard to install an older version DOS or Windows on this machine but none of them provide enough hardware/software support to be useful, thus Linux it is. As for the distro I chose Debian for 2 reasons; not only does it have the best package management system, but also, I have extensive experience with it. For the kernel I use the later versions of Linux 2.4 (so far I've used 2.4.29 and 2.4.30) reasoning is simple, older hardware is best with older software (I've had bad experience with 2.6 on PII).

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 CD I did a very basic Debian installation. Then I installed some packages like SSH, elinks, tk8.3, 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.

Kernel

There are many ways to compile a kernel but you must be especially masachistic if you want to compile a kernel on the handbook. Best bet is to either shove the harddisk onto a more powerfull machine and compile it there, or compile a package on another computer and transfer via floppy or ethernet to handbook and then install it. I will not go into great detail on either of these 2 processes but if you read this manual before you read my hints you should be set.

Start off with installing all the necessary packages to compile linux (tk8.3 make gcc bin86 libc6-dev kernel-package ncurses-base). Download your favourite version of the kernel from kernel.org (ie: 2.4.29 or 2.4.30) to /usr/src/. Unpack the tarball and a make a symbolic link which points /usr/src/linux to your kernel dir (/usr/src/linux-2.4.XX). cd to /usr/src/linux and configure your kernel using make menuconfig (to make your life easier you can download this file to /usr/src/.config before you configure your kernel). Once all of this is done you can take one of the 2 approaches. If you are going to compile the kernel on another machine by putting the harddrive in it the read the next paragraph and skip the one after, otherwise, if you are gonna make a package on another computer then transfer it to your handbook then skip next paragraph.

Compiling Kernel directly:This paragraph describes how to compile the kernel on the machine natively and can also be used to compile the kernel on another machine by transplating your handbook harddrive into it.

  1. cd /usr/src/linux
  2. make clean
  3. make dep make sure this is sucessfull
  4. make bzImage make sure this is sucessfull
  5. make modules make sure this is sucessfull
  6. make modules_install
  7. Put the compiled image /usr/src/linux/arch/i386/boot/bzImage into your /boot dir and configure your bootloader accordingly
I have a little script that does all most of this for you automatically so that you can run it and take a coffee break. Before you use this script read its comments at the top.

Making a kernel package:

Boot Loader LILO

Getting the bootloader was the most annoying thing on this machine to get working. Basically my setup is bound to be a more complex then needed for the size of disk I used BUT it is necessary for large hard-drives. Basically I have a boot partition which contains all the necessary boot files which are loaded through LILO. This is no big deal but for some reason when the MBR loads it prompts me to hit some keys, while its OK its annoying as heck because the machine need "interactive" boot.

Here are some files relevant to loading process:

MISC Software

I installed a lot of extra software which is pleasant to have here is a list of the packages I recommend

For a whole list of installed packages take a peak here.

Hardware

RAM

This should be the first upgrade you make. The handbook comes with a whopping 4MB of on-board RAM, while this might be enough for dos it is not cool in Linux. My handbook had an additional 4MB of ram installed for a total of 8MB, this is also not enough, CPU rarely ran at 100% when doing some complex tasks because dumping memory to swap took up a lot of time. So right now I've placed an order for 16MB stick. NOTE 16MB is the most you can put in this computer, it won't recognize larger sticks (I've tried).

Hard Drive

The handbook come with a crappy 100MB hard-drive (hdd), I higly recommend you swap this out for something of at-least one gig if you are planning on actually using this machine with a real operating system. Personally, I had an old IBM lappy laying around with a 2GB hdd so I used that. The solution I used is by no means the most elaborate, Jeff Blum uses a flash based (solid state) drive and mentions that one can also use a CF card with a CF to IDE adapter(Read about his adventures with the handbook here).

As far as partitioning goes, I made 3 partitions. The first ~30MB is a boot partition you don't really need to do this as it offers no advantages on hard-drives <1024 cylinders BUT if you are planning on putting a large harddrive in the handbook (>1024 cylinders) then you have to make a boot partition. The second partition is the root partition ~2GB. And finally we have the swap partition I made mine ~130MB and recommend you make one in the 100-200MB range. Here is output from relevant programs in regard to my disk partitioning:

Battery

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 15200mAh so it has 6 times the capacity. w00t w00t!

Networking POE

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.

Networking Wifi (I'm not kidding you)

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.