Topic: Fix for drifting clock
We've come up with a possible fix for the drifting clock problem, where Chumby starts losing time. You'll need to install a new kernel, which is just like installing an update, by following these steps:
1) Make sure you're running the latest firmware, 1.6.0.
2) Download http://files.chumby.com/resources/clock-skew-fix-02.zip
3) Extract it to the root of a USB drive that's formatted as FAT32. You should see a directory called "update2" on your USB drive.
4) Turn off your chumby.
5) Insert the drive into your Chumby, and make sure it's the only drive inserted.
6) While holding your finger on the screen, turn your Chumby back on.
7) Continue holding the screen until it says "Loading Special Options"
8) Once you get to the Special Options screen, select Install Updates, then Install From USB Flash Drive.
If you want to uninstall this fix, you'll want to perform a manual upgrade back to version 1.6.0. Steps to do that are located on the Firmware 1.6 upgrade page, but the steps are identical to those above, except you'll want to download http://files.chumby.com/resources/chumby_fw_1-6-0.zip
What seems to be happening is that the system timer, TIMER1, is sometimes firing while interrupts are disabled, or fires multiple times but only gets called once. In any case, I used a second timer (oddly enough TIMER3) to look for missed ticks, and call timer_tick(). If this fix does end up working, it'll be part of the next firmware build, but I've posted my modified time.c.
You can get a running count of how many missed ticks it's caught by looking at the file /proc/missed_ticks. This is also the only way to tell if a Chumby is running this modified kernel.
EDIT: I seem to get a much more stable clock if I don't subtract LATCH/2 from TIMER3. I've updated the link to point to a second version of the fix that doesn't do this. See if it turns out to be more accurate.