The definitive work on this was done years ago by the people at the WYSE Winterm hacking website who worked out what was what and then produced a general set of tools (bundle-tools) and make-nk to enable Linux kernels to be easily installed into the flash memory of Wyse-based thin clients. For further information download those tools and read the accompanying documentation.
For those interested there's also a loose specification for the Windows CE nk.bin format on the MSDN website.
Over time I have developed my own set of tools that I find simplifies the development process when dealing with Compaq/Wyse terminals where the operating system is WinCE and the reflashing tool is Netxfer. The first one was fwbuild but this was superceded by the current set described below.
The various Compaq/Wyse thin clients I have experimented with have been those with a limited amount of flash. With these thin clients the file 'bundle' contained within the system distribution files directly comprise the individual WinCE files. With the high-end systems with more flash the 'bundles' contain images of the individual flash chips (filesys0, filesys1...). Obviously these in turn contain the images of the individual files. Not having an example of a high-end system I have had (a) no incentive to write code to handle the extra level of file packing, or (b) the means to adequately test the result.....so makebootp (with the -f switch) currently only works with low-end clients.
The tool set comprises:
|makebootp||This is the main tool that will take a Linux kernel, initrd and kernel command line and package them up as a bootp.bin file ready to be downloaded onto the thin client via Netxfer. It will either build a file that will execute directly on the thin client, or one that that will program the code into the onboard flash and subsequently be run from flash every time the thin client is reset/powered on.|
|netboot||If a program is booted via Netxfer rather than from the onboard flash memory it runs under a different BIOS. netboot is a functional equivalent of Netxfer that can be programmed into the thin client's flash memory. With this in place you can run a repeated network based compile/test development cycle without having to wait while the latest version of your kernel is "flashed". Alternatively it could offer a permanent (sort of) PXE style booting for those models that don't support PXE.|
|display||When presented with a new thin client you need to discover various details about it. This small program, intended to be wrapped up as a bootp.bin file and executed under Netxfer, prints out various details about the hardware it finds itself running on. It can also be easily modified/extended with additional test code - for example to determine which GPIO line is controlling the power-on LEDs.|
|unpack||This program understands the bootp.bin/wyse bundle/nk.bin file formats and will split the files into their various components.|
|evo_eeprom||Allows you to modify the contents of the EEPROM on the Compaq Evo T20 or T30. For example a couple of bits in the EEPROM define how much memory is set aside for the display memory.|
A snapshot of my tools directory as of 16/01/12 (180KB tar.gz file) can be downloaded from here.
Any comments? email me. Last update January 2011