This post is long overdue following the teaser back in January but unfortunately I have been swamped with work so the following instructions are not as thorough as I would have liked and come with a ‘some assembly required’ sticker.
Is it worth it?
Coreboot support of this board is far from perfect. The following stuff does not work:
- early VGA (VGA ROM) (?)
- serial port IRQ may or may not conflict with EHCI IRQ
- power button, LED and beeper
Lack of ACPI means that there is no S5 and as such you can’t turn off (soft off) the device but merely halt it. Without early VGA support you are left with a blank screen until the kernel takes over from coreboot/SeaBIOS (assuming you put gxfb module in your initramfs or compiled it in).
However, Coreboot does fix problems encountered with the original manufacturer’s BIOS:
- booting from USB and virtually anything else supported by Coreboot/SeaBIOS payloads
- large USB drives work
- no PCI subsystem hangs on boot
- normal ATA access with pata_cs5536 kernel module when booted from USB
Still interested? Very well…
What am I going to need?
- Wyse S30/S50 Revision 02L. Rev. 02 (with soldered-on RAM) is not tested.
- Linux installation capable of booting with the original WYSE BIOS
- SST49LF080A PLCC flash memory chip (about 4 euros in your corner electronics store or free if sampled from Microchip)
- flashrom >= 0.9.5
- coreboot around commit eb84f6a978147fbe543fbe15af254632f215098a (I can’t vouch for current trunk to be working)
- GX2 VSA binary blob
- (optionally) a null modem cable for rs-232 debugging
- (optionally) PLCC extractor or a steady hand
GX2 VSA (Virtual System Architecture) is a low-level system library that needs to be compiled with an antediluvian and esoteric toolchain from sources that are almost nowhere to be found and embedded within the coreboot image (and before you ask, OpenVSA never took off and is now defunct). A fearless person under the name of Nils Jacobs from the coreboot mailing list hacked together a working VSA binary for me but asked me not to distribute it as it was a bit buggy. His intention was to get it into a working shape and contribute to the coreboot upstream but I have not seen him post on the mailing list in a while. I recommend jumping straight to the mailing list and asking about his progress. Don’t even try building coreboot without the VSA code as it won’t work.
Are you still reading? Got everything? Okay…
Let’s do this.
Disclaimer: the following instructions are general and require understanding of what you actually do. Don’t begin before you are entirely familiar with the topic at hand.
- Build the coreboot image. Select S50 as the mainboard model (S50 and S30 are identical), 1MB for ROM size, add a VSA binary image (make sure the path is correct), enable serial console, add a SeaBIOS payload and it might just work.
- Open up your Wyse thin client (you need to remove the feet first).
- Boot Linux on the client and install flashrom.
- Back up the original BIOS with flashrom.
- Hot-swap the Wyse BIOS with a blank SST49LF080A chip. This is safe as BIOS is only read during the boot time and immediately saved to RAM. The flash chip is not accessed during normal operation. If you don’t have a PLCC extractor consider super-gluing a push pin to the chip.
- Write your coreboot image to the blank chip with flashrom.
- Optionally: modify your bootloader and Linux installation to enable a serial console. Attach a null-modem cable and open a console on the second PC.
- Cross your fingers and reboot.
If you did everything right you will see something like this on your serial console. Good luck!