Aldara
Home arrow General Content arrow Thinclient To ThinServer
Thinclient To ThinServer E-mail Print
Written by Administrator  
Wednesday, 27 June 2007
Grand Idea

Turn the Evo T20 into a usable mini computer that consumes very little power but also offers rock solid stability and heaps of features.

Hardware Limitations

[System]

  • Only Supports USB 1.1.
  • No PS2, parallel, or serial ports.
  • No motherboard expansion slots (no PCI, ISA, AGP, etc).
  • No internal clock (can be set but is lost the minute the PC is rebooted)

 

[Bios]

  • Doesn’t support USB devices natively (USB keyboard, mouse or mass storage).
  • Won’t boot from anything other than the flash memory.
  • Bios settings appear to be hard coded, hence no interface to change the settings.

 

Materials

  • 1 Evo T20 unit with no power supply.

 

[Extra Materials purchased]

  • 1 power supply (5 volts 6 amps).
  • 1 2GB Memory stick.
  • 1 laptop IDE drive.
  • 1 External laptop HDD enclosure.
[Spare Materials]
  • 1 Ethernet cable.

Installing

[Power Supply]

During the testing of the units, they were being run from the 5v rail off an old ATX PSU, mainly becuase it was the only source I was able to get that had 5V and >5amps. Thats was until this on ebay;

With 5v and 6amps; its got more then enough juice. Also, when using the molex connectors for the inter-connectors I was able to touch the 12v rail to +5v rail of another Evo T20 and killed it... Lesson learnt.

[Modifying the flash memory and uploading it]

The Evo T20 needed more storage for the new OS (Etch); it has USB ports but only boots from the internal flash memory. To get around this problem we can place a small program in the flash memory that will load the rest of the operating system off a USB storage drive. For you to do this you need:

  • An old copy of the firmware
  • Grub source (boot loader)
  • The boot kernel and initrd of the chosen Linux distro.

 

The firmware is required because it contains the file system that’s going to be overridden then uploaded to the flash. The grub source needs to be patched it doesn’t support USB keyboards and neither does the bios. The boot kernel and initrd can be obtained from any already installed Linux distro: /boot or directly from some of the Live distro CD's (Knoppix, etc.)

To make it easier the kernel must support USB devices and some of the newer initrd's have scripts that automatically search for and add USB mass storage drives to the /dev, E.g.: Etch will automatically add the first found device to /dev/sda, then /dev/sdb, etc.

All of this can be done by following the clear instructions given here: http://mowson.org/karl/evo_t20/. Even though this tutorial only shows how to use DSL (Damn Small Linux), it can be adjusted to use with just about any Linux distro.

Basic setup

  • Download a copy of the original firmware from the HP website.
  • Edit it and patch it as listed in the above article.
  • change the network card settings on the computer you have hooked up to the EVO's ethernet card to 10.0.0.1 (this isnt very well documented but worked for me).
  • Start the windows program Netxfer (downloadable from the HP website).
  • Turn on the EVO and continue to press 'P', until you see a screen that's displaying Netxfer at the top.
  • The firmware will then be downloaded and flashed to the internal memory and it'll be rebooted to try the new firmware.
  • At this stage you should be able to load the Kernel and the Initrd up until the stage where it says something similar to this: "Kernel Panic VFS... no root found". This is good because we havent setup a USB storage device yet.
[Preparing the USB stick]

After the boot process has been installed into the firmware and the firmware has been uploaded you now need to install Linux on to the preferred USB thumb drive. To do this you'll need a PC that supports USB mass storage devices natively. Remove the SATA/IDE/SCSI cables from any of the hard drives and allow the PC to boot the install CD Just like a normal installation. When it comes to asking where you'd like to install the file system, make sure you pick the USB drive. When it asks you to install GRUB into the MBR, it's recommended you pick yes, that way you’ll be able to test it and edit it before installing the USB into the Evo.

NOTE: Some Linux distros only need to load a CD image which gets loaded into the ramdisk, so you can get away with just copying the image file from the CD to the thumb drive (formatted using FAT32). With these types of installs you'll find they take way more time edit and install new applications on to them due to the fact you have to expand the image chroot into them add the app and then compress the image again (significantly longer than a simple apt-get install....)

Setup Rather than write how to setup the machine, I'm displaying the key configuration that'll help:

[Grub - menu.lst]

default 0
timeout 0

title EvoT20
root (hd0)
kernel /vmlinuz root=/dev/sda1 ro
initrd /initrd.img

[Kernel Version Used In Stable Version]

The default Etch (Debian R4) Kernel: 2.6.18-4-686

USB Laptop HDD Speed Test

[/dev/sdb1]

Sequential OutputSequential InputRandom
-Per Chr---Block---Rewrite-
K/sec %CPK/sec %CPK/sec %CP
9508493183867
Sequential Create
-Create----Read----Delete--
/sec%CP/sec%CP/sec%CP
150882543099627799
-Per Chr---Block--
K/sec%CPK/sec%CP
745678039
Random Create
-Create----Read----Delete--
/sec%CP/sec%CP/sec%CP
177983128210076799
--Seeks--
/sec %CP
52.54

 

Maintenance

Nothing long term is required for this computer to continue running and performing it's duties. Current longest uptime was about 10 days, which was interupted by a module induced Kernel Panic: I used USB webcam drivers built from a different Kernel.

Objectives Completed

Currently the EVO has been able to run Debian's Etch at a reasonable speed, but requires more ram (which is on it's way). If it's given too many high impact jobs at once to perform, it will no longer respond to pings and doesnt automatically detect when a USB keyboard is plugged back into it (Etch problem).

So far the lil trooper has been able to do the following:

  • Run 7 different graphs for MRTG - It was desired to use Cacti but the over heads were too high, and getting it to support SQLite was a pain.
  • Torrentflux - This little gem was great for downloading other Linux distros, and with it's feature set it could happily run without noticing a drop in speed across the network (Thanks to QOS)
  • Having a security camera at home can always give peace of mind, which is why I also installed a very cheap, generic USB camera. The frame rate at 320x240 was about 2 FPS, and at 640x480 is was 1 frame for about 10 seconds, which isnt that great but I also didnt stop any of the processes or try to tune it's performance.
  • Standard Linux shell is always good for doing MTR's, Dig's, etc..
  • If you used the Damn Small Linux installation HERE then you would have been able to use a GUI with heaps of other features, but I found having an X desktop load was unnecessary load and I'd never use it.

Future Objectives

  • I'd Like to use the USB camera in conjunction with my Sniper project so the camera could be rotated left-right, up and down.
  • I graphical USB LCD on the side displaying current memory usage and CPU usage would be great, but both are already being logged via MRTG, so it wouldn't realy be of any benifit.
  • I'll be adding a USB WiFi device to the modem with an extended range antenna to do some sniffing.
  • General all round preformance needs to be looked at. The CPU cant be upgraded but I have been able to purchase a 256MB SODIMM for it which will arrive soon, and hopefully that will enhance the performance enough to make it more usable.

Quick Useless Info

cat /proc/cpuinfo

processor 0
vendor_id Geode by NSC
cpu family 5
model 9
model name Geode(TM ) Integrated Processor by National Semi
stepping 2
cpu MHz 300.698
cache size 16 KB
fdiv_bug no
hlt_bug no
f00f_bug no
coma_bug no
fpu yes
fpu_exception yes
cpuid level 2
wp yes
flags fpu tsc msr cx8 cmov mmx cxmmx up
bogomips 606.75

lspci

00:00.0Host bridge: Cyrix Corporation PCI Master
00:0f.0Ethernet controller: National Semiconductor Corporation DP83815 (Mac Phyter) Ethernet Controller
00:12.0ISA bridge: Cyrix Corporation 5530 Legacy [Kahlua] (rev 30)
00:12.1Bridge: Cyrix Corporation 5530 SMI [Kahlua]
00:12.2IDE interface: Cyrix Corporation 5530 IDE [Kahlua]
00:12.3Multimedia audio controller: Cyrix Corporation 5530 Audio [Kahlua]
00:12.4VGA compatible controller: Cyrix Corporation 5530 Video [Kahlua]
00:13.0USB Controller: Compaq Computer Corporation ZFMicro Chipset USB (rev06)

[Update - 10-7-07]

I've been able to get a 256MB 133Mhz SDRAM stick, it's improved speed by atleast 50%. USB speeds still havent increased, but not it can handle more memory hogging apps.

Sources

 

 

 

 

Last Updated ( Saturday, 23 August 2008 )