Brian's Website > Random Notes >

Hacking an Evo T30

Disclaimer: The instructions I provide below worked for me, but I take no responsibility for any damage that may be caused to you, your computing hardware, your pocketbook, or your ego if your use of the information below yields unsatisfactory or unexpected results. Use common sense, and make sure you understand the instructions before you even try following them and you should avoid most problems.

This page details the steps necessary to install Linux onto a Compaq Evo T30. In these instructions I am assuming you are reasonably adept at installing, configuring, and using Linux based operating systems. Furthermore I assume you are comfortable with tearing apart computers, reconfiguring their hardware, and reassembling them succesfully.

Background and Preparation

The following subsections describe what tools and components I used to install Linux on my Compaq EVO T30. Of course, there is probably more than one way to do it, but this was the dirt stupidest way I could think of to accomplish the task (and I like dirt stupid).

What is a Compaq EVO T30?

A Compaq EVO T30 is a small, but almost fully self-contained (the power supply is external) PC that is designed for lightweight, thin-client applications. These weren't sold to consumers, but were used in offices for telemarketers, data entry and other similar office tasks. Nonetheless, they show up on Ebay and at used computer stores all the time. They are also sold as HP (Hewlett-Packard) Evo T30's. In all cases, they are actually made by Wyse.

There are several flavors of the EVO T30; mine has a 300Mhz national semiconductor "Geode" CPU (intel compatible), 128M of laptop memory (upgradeable to 512M), and a 128MB internal flash card that holds the original operating system, Windows NTe. The Linux kernel reports 600 bogomips, and 124M of ram accessible (the rest is allocated for video memory). Externally, there is a cardbus slot, 10/100 ethernet, VGA, audio in/out, four USB slots, one RS232, one LPT, and one ps/2 port, useable for either keyboard or mouse. The machine is really intended for use with a USB keyboard and/or mouse.

Note that there are other similar models to the Evo T30, and even other Evo T30 models that have a different internal design or different installed software (later ones used newer windows versions, and some versions had different designs for their internal flash memory. My instructions below may very well not work for any other versions of the Evo T30 except for what I found. See the Resources section for some links to where I found some of the information I have.

What you need (at minimum)

  • A Compaq Evo T30, with a 4Mbit onboard BIOS chip of type W29C040P or similar. Information I have suggests that there are 2Mbit versions that will NOT work. You may have to peel the BIOS sticker off the top of the chip to see. Another giveaway of the 4Mbit version of the BIOS is that there are two UNPOPULATED memory chip pads on the motherboard just above the plug for the flash daughterboard.
  • A second PC, capable of booting from CDROM and running Linux, with a standard 40 pin IDE bus. This PC must be considered sacrificial, as it may be damaged if any errors are made. So find a cheap junk PC (anything Pentium II and up will work for this) to use for this task, do not use your regular desktop PC! You have been warned.
  • An install CD for a lightweight Linux distribution, such as DSL linux. The install must fit within about 120MB at the absolute maximum. DSL 4.2.5 (Damn Small Linux) which I used takes about 50MB.
  • the materials and (delicate) soldering skills necessary to build a 44-pin male 40-pin male IDE adapter for the onboard flash card of the EVO T30. It may be helpful to acquire a 44-pin female to 40-pin male IDE adapter, usually sold to allow installation of a 2.5 inch laptop hard drive into a 3.5 inch standard PC drive bay.

Resources

There isn't a whole lot of hacking information for the Evo T30 out there, but information at http://www.bastianello.it/en_evo_t30.php pointed me in the right direction. There is more stuff on hacking other winterm models at http://winterm.gaast.net/main.php/related.html.

Disassembly

taking the Evo T30 apart is easy enough, and is described in the following subsections. All you need is a phillips screwdriver and perhaps needle nosed pliers.

Removal of plastic case

To take off the plastic top lid, remove a single screw from the back of the unit, and slide the black portion of the case backwards. It will expose an access portal on the top of the unit. At this point, you can see the BIOS chip and identify if it is the 4MBit as I describe above, before going any further.

If you want to remove the rest of the annoying plastic case, you can remove a few more screws and unsnap the rest of the grey case. The metal lid can be removed from the black plastic section and reattached to the metal housing later for a more compact, embeddable CPU unit. Of course you can leave it intact if your plans are to have it sitting on a desk in plain view, instead of being installed into my Toyota MR2 EV as I am doing with mine.

Removal of Flash board

Once the plastic lid is off, you can easily remove the onboard flash. This is visible as a small daughterboard just behind the cardbus slot. Use a pair of pliers to break off or squeeze down the nylon locking post and pull the daughterboard off of the main board, being careful not to break anything. The plug on the motherboard. is a standard laptop-style 44 pin IDE bus. The flash daughterboard is electrically identical to a Compact Flash card, but it has a non-standard physical form factor, so the next step I did was making it possible to hook it up to a standard PC 40-pin IDE bus.

Preparing the Flash board

As mentioned above, the onboard flash from the Evo T30 is electrically, a standard 128MB CompactFlash card. Therefore my plan was to plug it into a standard PC in place of the regular hard drive, and then do a standard CDROM linux install onto the card. To do this, howerver I had to make an adapter to deal with the nonstandard form factor of the Evo's onboard flash.

Making an IDE bus adapter for the existing Flash card

This is the most complex part of the process, any error here can destroy your Evo T30 and/or your regular PC! Beware! The Compaq Evo T30's onboard flash has a female, 44-pin 2mm spacing connector that plugs directly onto the top of the standard 44-pin laptop IDE bus header on the Evo's motherboard. Since all laptop hard drives have a male 44-pin header as well, an adapter needs to be made to connect this card. To do this, you need to find a 44-pin (22x2, 2mm spaciing) male header (get a dead laptop drive and cut off or desolder it, or else order one from http://www.newark.com or http://www.digikey.com or some other electronics parts place). This can be plugged directly into the onboard flash card. Then you need to find a standard IDE, 40-pin, 0.1" male header (much more common) for the other side of the adapter. Solder wires across such that the female pin "1" from the flash card will line up with the male pin "1" on the 40-pin IDE bus ribbon cable of the PC, and so on up to pin 40. Keep the wires short, and be very careful to get this correct, or the flash card and/or the PC motherboard will be damaged or destroyed!! For pins 41 through 44, one needs to go to Ground, and the other to +5v, so route these to one of the PC's hard drive power plug's black and red wires respectively. Look at the traces on the onboard flash to tell which one is positive and negative.

Installing a standard CompactFlash card

Since the Evo's motherboard has a standard 44-pin IDE bus connector, it is tempting to try installing either a regular laptop hard drive, or an off-the shelf IDE to CF-card adapter board, all readily availalbe, and thus completely replacing the proprietary 128MB onboard flash. Succeeding in doing this would allow you to install a larger full-featured linux distro, or just remove the hassle of dealing with the nonstandard form factor of the original onboard flash.

This appears to be more challenging for a couple of reasons. If I use dd to directly dump the entire contents of the original flash drive (partition table and all) onto the larger flash drive, linux can read it, as can cfdisk, but the Evo gives me IDE device read errors after reading the CF card for a minute or two. If I use fdisk to build a new partition table that mirrors as closely as possible the original, then dd the contents of each original partition onto the new ones, then the Evo gives me a "operating system not present or device failure" error very quickly. So I know it is reading the disk, (it does different things based on what is on the disk) I just haven't been able to fool it yet. The only way to fix this might be to get ahold of the bios code, modify it to disable the crc, and re-flash the BIOS chip. But this is not necessary as long as you are willing to boot an OS that is small enough to fit on the original 128M flash card, and there are several options there.

Note that once the Evo is running under linux, you can install a larger flash device in the cardbus slot, and either just mount and use it as an expansion drive or (untried by me, but possibly the best solution) install a linux initrd image on the onboard flash, and point it at a flash drive installed in the cardbus slot as the root device.

Selecting an OS

You need to pick an OS that can be completely installed into less than 120MB of disk space. Ideally, much less. I have chosen to use version 4.2.5 of DSL (Damn Small Linux, http://damnsmalllinux.org/ ) which fits into 50MB, has X, and so far, has everything else I have needed (!!). I'm sure I will need to install more libraries and such as part of making it host the Battery Monitoring System of my Toyota MR2 EV, but that is beyond the scope of this page. I am sure there are other micro-linux distributions, as well as BSD variants and other OS's that can be made to run on this box. For what its worth, DSL seems to correctly identify and support all hardware on the Compaq Evo T30, so it is probably a good choice unless you have other preferences.

Installing the new OS

This is the easy part, really. It boils down to using a normal PC for the install, and installing the Evo T30's flash drive as the PC's primary hard drive, such that when you do your Linux install, it gets installed to the Evo's flash card.

Install the Evo flash card to the PC

  1. Turn off the your working PC, disconnect the power and remove the cover.
  2. Use the IDE adapter you made to connect the Evo T30's compact flash card to the ribbon cable and HD power plug in place of the the hard drive in your working PC. Unplug any other hard drives and remove any unneeded peripherials, just to reduce complexity and damage in the case of errors.
  3. Plug in and turn on the computer, and go into the BIOS to ensure that it recognizes the flash card as a 128MB hard drive. If it does not recognize it, make sure you created the IDE adapter right and that it is hooked in correctly.
  4. If the PC's Bios recognizes the flash drive, great! Make sure the boot order is CDROM, then the flash drive. Save settings and shut off the PC.

Backing up the original data

You may wish to boot your linux distro off the CDROM the first time, and use the dd program to make a full disk image of the original contents of the Evo's flash card. This can be saved to a USB stick, burnt to another CDROM, or whatever. But this way you have a backup if you mess it up. You can also hook a second IDE drive up as long as it is jumpered to be the slave drive, if it is hooked into the same IDE bus as the Evo's flash card. But don't do that til you know the Flash card is working in the PC.

Installing the OS to the flash card

Boot up the PC, with the install CD of your chosen OS in the CDROM drive. Follow your OS's instructions to install to the hard drive, which is what is sees the flash card as. When the install process prompts you for how you wish to partition the drive, DO NOT MODIFY THE PARTITION TABLE OF THE FLASH CARD except for the following exception: The type of the second partion must be changed to 0x83 (Linux) and the second partition must be bootable. Do not attempt to add more partitions, or change their sizes. The contents of the first partition are critical to the functioning of the Evo T30. You might need to use the fdisk for your partition table changes if the more-user-friendly cfdisk program fails to read the partition table, as was my experience. Later on during the install, when the OS ask to format partitions, DO NOT FORMAT THE FIRST PARTITION The second one must be formatted. So basically, other than making sure you handle the flash card partitioning and formatting right, it is a straightforward install. If the installer's bootloader configuration asks about the first partition, tell it there is nothing bootable there.

Boot the PC from the flash card

Just to make sure it all worked, the PC should now be able to boot your linux install from the Evo's flash card. If this works, you are home free. Shut the PC down, and remove the Evo's flash card.

Boot the Evo under Linux

Re-install the updated flash in the Evo T30, hook up a keyboard, mouse, and monitor, and plug the Evo T30 in. As soon as it is plugged in, The Evo's power button should turn amber, but the screen will stay blank. The Evo is performing a CRC check on the first partion of its flash drive. If everything is OK, after a few seconds the amber light will go out, and nothing will be displayed to the screen. At this point, push the power button. It will turn green, you will get a succession of bootup messages, and then you will see your OS starting to boot. Viola!