Project is dead, sorry!2013-11-10 14:15 UTC

Every now and then (though not often) I get e-mails about this project. Sadly, I have no time to respond to them anymore, nor is there anything meaningful I can say about it by now. To be honest once I had Linux working properly the project got boring already because once that part worked, the Winterms were just plain old boring PCs. :-)

As you can see the project started nearly ten years ago. It was a lot of fun at the time, but you have to realise that these are very old useless power-hungry PCs by now. A Raspberry Pi is smaller, more powerful, has better support and likely consumes much less power.

I'll leave the site up, there's no reason I should take it down, but I won't post any more updates. Also, not sure whether I've mentioned this before but unfortunately I lost the dslinterm image years ago. I did run into a slightly newer version of bundle-tools (which includes a Linux port of the parallell-port firmware flasher tool) which I copied to the downloads directory.

That's all. Now please, go buy that Raspberry Pi. Or Cubieboard. Or ODROID, or Wandboard.. Or a Fit-PC if you don't like ARM stuff. Plenty of choice. Have fun!

Website back2009-02-09 16:11 UTC

Sorry for having it down for so long. Some bad stuff happened to the NFS server hosting the content of this website, so the Winterm was unable to serve it for a while.

For now this website is hosted on a normal PC instead of a Winterm. The DSL images are down for a long time by now and won't come back any time soon since the higher-bandwidth machine I hosted them on died.

Writing this in a news item because I received many e-mails about this and I don't have time to respond to them all individually.

Project frozen, mostly2007-08-20 09:28 UTC

Hi all.. People who sent me e-mail lately probably noticed that I'm not very responsive anymore. I finally realized that being a student really is the best thing for someone doing OSS work. :-) I'll definitely try to find more time for this project, but I don't know when.

I do still want to respond to some mails, but only serious questions. Asking me "Yo I downloaded everything but I don't understand the README files so pls tell me what to do next kthxbye" is a waste of my time, so please try to read the docs. With enough generic Linux knowledge, they really should tell everything else you need to know. And no, I do not send premade image files, simply because they contain WYSE-copyrighted BIOSes.

I hope many more people will have fun with these tools, and if there's a real problem that's actually in the tools, do feel free to inform me and I'll certainly try to be helpful.

For the people with WinCE-based Evo T20 devices, there's a nice Winterm-Linux HOWTO written by Grzegorz Swit.

New version of bundle-tools on-line2006-08-07 17:33 UTC

The new version of bundle-tools is on-line! The most important change is that it handles NetXfer images a little bit better and contains some documentation about them. Many people asked for it, so here it is, finally!

DSLinterm builder finally fixed2006-06-08 12:08 UTC

At last I took some time to fix the DSLinterm fwbuilder script, which so far always tried to rebuild the initrd. This always failed because of some missing files. Now it correctly uses the shipped initrd, so the script should work perfectly. Also, it has better support for non-Midway platforms.

And yes, the website is still running on a real Winterm!

winterm~# uptime
 14:07:22 up 44 days, 20:44, load average: 0.08, 0.01, 0.00

Newsflash2006-03-18 10:15 UTC

For almost a month already, this website is running on a Winterm 3320SE! It's behind an Apache proxy right now. It has a <3MByte (uncompressed) initrd with shell utilities, an SSH daemon, a web server and PHP, thanks to uClibc. It's running pretty well, and at least now we eat our own dogfood! :-)

In other news, we tested our stuff on some more devices. The 3125SE is a tough one, we're almost starting to wonder if it has an interrupt controller at all. Plus we got a 3200LE, alas not yet with a usable power supply. Anyway, with all these new devices, we got a pretty nice update for bundle-tools, with easier handling of NetXfer. If it survives the beta testing this week, there should be a release soon.

Also, I managed to write a driver to access the on-board NAND flash memory on some of the older devices. Thanks to the Linux MTD subsystem this isn't really that hard. Great work, guys!

Back online!2006-01-12 15:45 UTC

Just a day before I went on vacation, the site went down! I'm back for a couple of days, and finally found time to move it to a different server. Hopefully it'll run well again now. And let's see how long it takes for Google to find it back... :-(

NetXfer success!2005-12-11 18:09 UTC

The Chalmers Tekniska Högskola in Sweden was kind enough to donate me a Compaq Evo T20! Thanks to this and also certainly thanks to Kristoffer Johansson, I managed to create correct images for this device too! It's certainly time to create a hardware compatibility list by now, because there's certainly a lot more on this list than just the 3320SE!

I'll try to release the updated version of bundle-tools together with NetXfer instructions soon. Just to let you know, you don't need Windows at all! (Well, except for unpacking the .exe images from Compaq that unfortunately aren't just self-extracting ZIPs...)

DamnSmallLinterm, sound driver2005-12-01 13:08 UTC

A version of DamnSmallLinux that runs on the Winterm is now available. Also, I put code for the sound driver on-line. See the downloads section for more information.

Also, it's interesting to see that the bootloader is online for more than a week, with a couple of downloads a day already, and so far we didn't receive any success/problem reports, even though we asked for them. Remember that we also put this stuff on-line to improve our stuff. If we don't hear anything, we can as well keep everything for ourself...

More releases2005-11-22 22:14 UTC

Since make-nk is pretty usable already, I decided to release it now. Didn't work on it for too long already, so then it's always a waste to keep stuff unreleased.

You can find it with the downloads. Also included are an example kernel configuration and a kernel patch for the framebuffer device. More stuff will come later, including a full system running from USB disk. I want to bring the boot time down to less than a minute first. ;-)

Have fun!

More hardware support!2005-11-01 17:04 UTC

We got positive reports from someone who owns a WT3200LE device! It's comparable to the 3320SE, but with 2 USB ports, no PS/2 connectors, 16 MB RAM by default (if I understand correctly), but extended to 64 MB. Everything seems to work like a charm!

Only problem for now is flashing, this device works with NetXfer instead of the parallel-cable Xfer tool. Those images are in a slightly different format, we have to figure out how to create them.

DirectFB stability2005-10-23 18:23 UTC

So far we had some stability issues with X. With hardware acceleration, it crashes as soon as something is painted on the screen. Hangs the whole machine. Without acceleration things work, but is not very comfortable. Also, somehow local applications seem to trigger kernel oopses more often than we'd like. (As long as everything is remote, everything seems fine though. Maybe some problem with X-SHM?)

However, DirectFB seems to work like a charm. Obviously not lightning-fast, but certainly acceptable for a machine with these specs. See for yourself if you're interested. As you can see it puts some pretty heavy load on the machine. Note that Mozilla Firefox is running on a remote machine, but Opera is a local application. This all happens through the X layer, we wonder if it's easy to get a browser working straight in DirectFB...

Sound!2005-10-22 00:20 UTC

After a few changes to the sound driver, the Winterm now plays music! Not sure about the sound quality yet. There's some noise sometimes, and distortion if you're not careful with the mixer settings. WYSE probably never intended these sound ports to be used for anything really serious. We'll see during the next few days how good or bad it really is.

bundle-tools released2005-10-20 13:40 UTC

The tools we used to distribute as extract.c and cs.c are now put together with a new tool called fwpack, and the official name is now bundle-tools. You can get it from the downloads section.

More hardware support2005-10-17 23:12 UTC

We bought some other Winterm-like machines! A Compaq T1010 and a T1000. T1010 is pretty much the same as the WT3360SE, but with a different machine code in the firmware images. After fixing this in our images, Linux booted without a problem.

We'll try the same on the T1000 soon. This will be slightly more interesting, since this is a Leo platform machine, instead of the Midway platform, which the 3320SE and 3360SE are a member of.

RSS feed available now2005-10-15 17:02 UTC

Since things are actually happening in our project these days, it would be nice to add a news-page. Also, we stole the code from the BitlBee page to generate an RSS-feed from it.

No real news yet though. There is a better tool for generating firmware images from scratch, instead of the extract tool that couldn't insert files bigger than the original. This means we can finally use the full flash space for a bigger RAM-disk, so we can put more on it than a static shell! :-)

Because there is no real news yet, we'll convert the old progress page to separate news items.

A framebuffer!2005-10-13 18:00 UTC

We went back to kernel 2.4 since 2.6 was too troublesome at some parts, and old kernels are often better suitable for old hardware. Same here, we finally found a framebuffer driver that works with this hardware! You can see proof on the right. Good, because seeing nothing but the bootlogo on screen all the time was getting boring. ;-)

XFree86 with the fbdev driver worked too, but unfortunately we got a SegFault and a kernel oops when closing X. But until then, everything worked!

And since the natsemi NIC driver is also rock solid with 2.4 kernels, the only thing we still need now is a working sound driver!

Update2005-10-09 10:00 UTC

We went back to kernel 2.4 for now, mainly because 2.6 had problems with the NIC, as you can see. Also, we hoped that it would accept our initrd, but it seems to ignore it, just like 2.6, as you can see above. So it can't work in stand-alone yet, but we hope to figure out something to fix that too!

Meanwhile, some of the first things every geek does when he sets foot on a new platform:

linterm:/proc# cat cpuinfo 
processor       : 0
vendor_id       : CyrixInstead
cpu family      : 5
model           : 7
model name      : Cyrix MediaGXtm MMXtm Enhanced
stepping        : 4
cpu MHz         : 167.047
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
bogomips        : 333.41
linterm:/proc# lspci 
0000:00:00.0 Host bridge: Cyrix Corporation PCI Master
0000:00:0f.0 Ethernet controller: National Semiconductor Corporation DP83815 (MacPhyter) Ethernet Controller
0000:00:12.0 ISA bridge: Cyrix Corporation 5530 Legacy [Kahlua]
0000:00:12.1 Bridge: Cyrix Corporation 5530 SMI [Kahlua]
0000:00:12.2 IDE interface: Cyrix Corporation 5530 IDE [Kahlua]
0000:00:12.3 Multimedia audio controller: Cyrix Corporation 5530 Audio [Kahlua]
0000:00:12.4 VGA compatible controller: Cyrix Corporation 5530 Video [Kahlua]
0000:00:13.0 USB Controller: Compaq Computer Corporation ZFMicro Chipset USB (rev 06)

Probably the most surprising part is the USB part. There isn't any USB port on the device, so it seems WYSE put more into the device than they wanted to tell. Too bad they (probably) didn't wire it...

First contact!2005-10-08 21:00 UTC

We're not quite finished yet, but we got the Winterm to tell us the following over the serial port:

WYSE-Winterm
Linux 2.6.13.1-WYSE
Linux version 2.6.13.1-WYSE (wilmer@ruby) (gcc version 4.0.2 (Debian 4.0.2-2)) #2 Sun Oct 9 01:41:27 CEST 2005
BIOS-provided physical RAM map:
 BIOS-88: 0000000000000000 - 000000000009f000 (usable)
 BIOS-88: 0000000000100000 - 0000000001519800 (usable)
21MB LOWMEM available.
DMI not present.
Allocating PCI resources starting at 01600000 (gap: 01519800:feae6800)
Built 1 zonelists
Kernel command line: console=ttyS0,38400N8 root=/dev/ram0 rw  reboot=bios
Initializing CPU#0
PID hash table entries: 128 (order: 7, 2048 bytes)
Detected 167.051 MHz processor.
Using tsc for high-res timesource
Console: colour dummy device 80x25
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 18668k/21604k available (1357k kernel code, 2508k reserved, 657k data, 132k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 334.69 BogoMIPS (lpj=1673453)
Mount-cache hash table entries: 512
Working around Cyrix MediaGX virtual DMA bugs.
Enable Memory-Write-back mode on Cyrix/NSC processor.
Enable Memory access reorder on Cyrix/NSC processor.
Enable Incrementor on Cyrix/NSC processor.
CPU: Cyrix MediaGXtm MMXtm Enhanced stepping 04
Checking 'hlt' instruction... OK.
NET: Registered protocol family 16
PCI: Using configuration type 1
Linux Plug and Play Support v0.97 (c) Adam Belay
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Ignore bogus resource 6 [0:0] of 0000:00:12.4
Initializing Cryptographic API
PCI: Fixup for MediaGX/Geode Slave Disconnect Boundary (0x41=0x9c)
GX1: gx1fb_map_video_memory() failed
PNP: No PS/2 controller found. Probing ports directly.
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
io scheduler noop registered
io scheduler deadline registered
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
natsemi dp8381x driver, version 1.07+LK1.0.17, Sep 27, 2002
  originally by Donald Becker 
  http://www.scyld.com/network/natsemi.html
  2.4.x kernel port by Jeff Garzik, Tjeerd Mulder
natsemi 0000:00:0f.0: EEPROM did not reload in 20000 usec.
eth%d: reset did not complete in 2000 usec.
natsemi eth0: NatSemi DP8381[56] at 0x1610000 (0000:00:0f.0), 00:00:00:00:00:00, IRQ 10, port TP.
Intel ISA PCIC probe:
  Cirrus PD6710 ISA-to-PCMCIA at port 0x3e0 ofs 0x00, 1 socket
    host opts [0]: [ring] [65/6/0] [1/15/0]
    ISA irqs (default) = 3,4,5,7,9,10,11,12,14 polling interval = 1000 ms
NET: Registered protocol family 2
input: AT Translated Set 2 keyboard on isa0060/serio0
IP route cache hash table entries: 256 (order: -2, 1024 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Using IPI Shortcut mode
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)

Firmware upgrades over parallel cable work!2005-10-06 09:49 UTC

We finally managed to upgrade the firmware using the xfer tool and a parallel cable! This is a huge step forward, since this allows us to replace the firmare, even if the current one is broken, as long as the BIOS still works. Previously, we could only do upgrades over the network, which isn't possible anymore when WinCE is gone.

Problem wasn't the cable, it was the machine. Apparently not all machines are suitable to perform firmware upgrades. We don't know what's the problem exactly, only thing we know is that all machines that worked so far were clocked under 1 GHz. So if xfer doesn't seem to do anything besides halting the Winterm boot process, try to find a different machine.