Installing Tiny Core Linux on a Wyse thin client

Posted at 2016-05-26.

I decided to try Tiny Core Linux on one of the Wyse thin clients I have and picked the middle ground with a Cx0.

Install Tiny Core

I downloaded CorePlus-7.1 ISO and put it on the same spare USB key I used to install Debian on the Igel. Booting the Wyse while tapping del, I used BIOS password Fireport and hiked the USB key up in the boot list. TCL booted right up and I spent some time looking around and getting used to thing.

I used dd to dump the drive over sshfs so I'd have a backup image and something to poke around in case I want to. I have a few whole spare units anyway. I would try to make this one to boot TCL directly.

I ran the frugal install as instructed and rebooted. The image fits quite well in the 128 MB nominal flash drive. There are less boot options than on the CorePlus image. I left in the firmware packages and some other stuff in as options, but eventually decided to remove anything I didn't think I'd immediately need. The installed size went from some 120 MB down to 40 or so, IIRC. Well enough free space to install some applications or little data.

Using Tiny Core

Everything runs very swiftly and seems to work.

I changed .Xdefaults for aterm to turn off transparency and set a bg colour instead. I also changed the keymap and some other boot options. I was hunting a font problem for a while before noticing that it's just Busybox that rejects certain characters, while even vi in the same terminal displays everything fine. I think I can live with that. Setting a timezone or other locale bits didn't seem to be worth the effort yet.

One annoying thing is, naturally, web browsing. Dillo works very very quickly, but has fairly limited abilities and behaves very oddly with some CSS sites. I tried Fifth as well, and it seems very slow despite the promises. Installing Chromium or Firefox would take up almost all the remaining space, and I don't expect them to work much smoother. Opera is surprisingly small and functional, but I still consider it to be evil. Uzbl and surf. aren't available, but could probably easily be pulled in from somewhere or built to a small executable.

Hardware tests and thoughts

Basically the box works, booting and shutting down (not by button though).

Graphics at 1920x1200x16, sound output, GbE networking, internal and USB storage. Cpufreq also seems to be happily switching between the two choices of 400 MHz and 1000 MHz with ondemand governor. There are messages about a crypto accelerator in dmesg, but I have no idea if that's doing anything.

# Check temperature
tc@box:~$ cat /sys/class/thermal/thermal_zone0/temp
59000
# After some time streaming audio and browsing docs:
tc@box:~$ cat /sys/class/thermal/thermal_zone0/temp
70000
# Pretty hot

tc@box:~$ df -h /mnt/sda1/
Filesystem                Size      Used Available Use% Mounted on
/dev/sda1               109.9M     68.2M     39.4M  63% /mnt/sda1
tc@box:~$ cpufreq-info -s -m
1000 MHz:40.25%, 400 MHz:59.75%  (46440)

I might test a wifi dongle at some point. There's also an available USB port and a few more could be freed by switching to (or using adapters in) PS/2 ports.

And there's the serial port as well. Actually, the kernel detects four. No picocom package, though.

I'm not exactly running out of RAM, but the two buster HP terminals would have 1 GB modules that I could swap in. The 2 GB PATA flash boards should also just drop in (after imaging).

I decided to drop in the bigger RAM chip. BIOS showed it fine. Changing the slice allocated to the display would probably allow me to free even more RAM. Linux is happy with the 750 MB or so that remains, though.

Compilers

TCC!

tc@box:~$ cat hello.c
#include <stdio.h>

int main(void){

        printf("Hello tiny core wyse!\n");

        return 0;
}
tc@box:~$ tcc hello.c
tc@box:~$ ./a.out
Hello tiny core wyse!
tc@box:~$ ldd a.out
        linux-gate.so.1 (0xb7752000)
        libc.so.6 => /lib/libc.so.6 (0xb7635000)
        /lib/ld-linux.so.2 (0x80016000)
tc@box:~$ tcc -run hello.c
Hello tiny core wyse!

So, picocom! It compiles out of the box after setting CC to tcc. It won't open my serial ports, though :(

tc@box:~/code/picocom-2.1$ ./picocom /dev/ttyS0
...
FATAL: failed to add device /dev/ttyS0: Filedes is not a tty
tc@box:~$ cat /dev/ttyS0
cat: read error: Input/output error

Something fishy there.

Edit: Actually, I've gotten these confused somehow. This model does not have any external serial or parallel ports. Oops. It's also not the middle one, but probably the newest Wyse I have.

Conclusions

It's quite usable as it is for any kind of computing except multimedia rich web browsing. A fast network interface gives it some interesting terminal potential.

I was planning, at one point, to make some kind of box that would have an attached Launchpad or something, logic analyzer, any other instruments I had at hand, and some software just to do data logging and graphing.

I finally grabbed a backup image that I should be able to use for cloning into other boxes if I want. At least one clone I'd probably like to do onto a bigger drive. The image should also Just Work on other hardware types as there's hardly any specific configuration done here.

Parts of this post were typed on the box in question over SSH.

Links