Wyse SX0: Tiny Core 




Tiny Core on the Sx0

As it is a neat thin client that I sometimes press into service I occasionally revisit the Sx0 and build an up-to-date Sx0 specific Tiny Core kernel for it. You will find the builds below. I must admit these haven't been extensively tested, but they do work for me. All you need to do is download the new kernel and add it to the boot directory on the Tiny Core USB pen drive (or whatever). You can either overwrite the existing vmlinuz file or add a new entry to the menu system to let you select the Wyse Sx0 specific kernel - an example of such a syslinux menu entry is below.

LABEL tcwyse
MENU LABEL TinyCore for the Wyse SX0 (on slow devices, waitusb=5)
Boot the Wyse Sx0 build of TinyCore with Embedded X/GUI extensions,
if using a slow device. Boot media is removable. Use TAB to edit
options for specific needs.
KERNEL /boot/vmlinuzSx0
INITRD /boot/core.gz
APPEND loglevel=3  kmap=qwerty/uk waitusb=5 vga=788

Currently the build involves:

  • Remove all IDE drivers other than CS5535 and CS5536 drivers.
  • Edit the file pata_cs5536.c to fix the timing issue and to re-enable the IDE interface.
  • Remove i4082 driver. (new!)

Tiny Core 9 & 10 (May 2019)

In a revisit to the Sx0 I found that the latest versions of Tiny Core using Linux kernels 4.14.10 (v9.0) and 4.19.10 (v10.x) did not run. With v9 the kernel crashed towards the end of the boot process, with v10 it was about half way through.

I tracked this down to the i8042 driver which is the legacy PS/2 port driver. The CS5535 and CS5336 do emulate the i8042 but the Sx0 itself does not have any PS/2 ports, so my solution was to remove the driver from the build.

Below are the replacement kernels (along with the .config files that created them) that you can use if you want to run Tiny Core 9.x or 10.x on the Wyse Sx0.

Download the kernel:vmlinuzSx0_10
Download the .config file:configSx0_10
Download the CS5536 file:pata_cs5336.c
Download the kernel:vmlinuzSx0_9
Download the .config file:configSx0_9
Download the CS5536 file:pata_cs5336.c

Custom kernel for Tiny Core 8.2.1 (Jan 2018)

This kernel includes the drivers for both -XX (CS5535) and -XXL (CS5536) versions. The timing problem during CS5536 initialisation appears to have returned so that mod is back in along with the one below to enable the IDE interface.

Towards the end of the startup sequence I'm seeing some delay with messages about floppy drives....

floppy0: no floppy controllers found
work still pending
Floppy drive(s): fd0 is 1.44M
floppy0: no floppy controllers found
work still pending
Floppy drive(s): fd0 is 1.44M
floppy0: no floppy controllers found

...repeated a number of times. I don't know why this happens and I haven't spent much time looking into it. It does increase the startup time but otherwise doesn't appear to affect the system.

Download the kernel:vmlinuzSX0_82
Download the .config file:configSX0_82

Custom kernel for Tiny Core 7.2 (Feb 2017)

As part of my revisit to the SX0 I built a new Tiny Core Linux kernel for the -02L version. The timing problem during initialisation that existed in the past no longer exists so all I ended up doing were two small modifications:

  1. Edited .config to remove all the IDE drivers other than the one for CS5536.
  2. Patched the pata_cs5536.c driver to enable the IDE interface.

To do (2) find the function cs5536_init_one() in the file drivers/ata/pata_cs5536.c and add the two lines shown:

        if (use_msr)
                printk(KERN_ERR DRV_NAME ": Using MSR regs instead of PCI\n");

        cs5536_read(dev, CFG, &cfg);
        cfg |= IDE_CFG_CHANEN;             <<---ADD
        cs5536_write(dev, CFG, cfg);       <<---ADD

        if ((cfg & IDE_CFG_CHANEN) == 0) {
                printk(KERN_ERR DRV_NAME ": disabled by BIOS\n");

Download the kernel:vmlinuzSX0_72
Download the .config file:configSX0_72

You could further optimise the kernel, but my experience is that the more you remove the more likely it is that something breaks so I ended up leaving the rest alone.

Custom kernel for Tiny Core 5.2 (March 2014)

I have a custom kernel for the old and new versions of the SX0. This is relatively straight forward to do and should you wish to do the same the approach I used to build the kernel is documented here.

The kernel was built for Tiny Core 5.2 and should be useable with subsequent minor upgrades that still use the 3.8.13 kernel.

Build details

The issues with the Wyse SX0 are:

  • The -xx models require the pata_cs5535 driver.
  • The -xxL models ignore the IDE interface.

The former is solved by including the pata_cs5535 driver, whilst the latter is solved by patching the pata_cs5536 driver as documented under the Linux tab.

So the Wyse SX0 kernel on offer has been stripped of all IDE drivers other than the pata_cs5535 and the modified pata_cs5536 driver.

You can always build your own version to match you target hardware. (Exclude the unwanted driver).


The relevant files are:

The kernel:vmlinuzSX0_52
The .config file:configSX0_52
The modified driver:pata_cs5536.c


Any comments? email me.    Last update May 2019