Linux: Linux's DisplayLink Drivers Turns Routers into Functional PCs
If your fingers are just itching to make a cheap and basic PC, here's a pretty geeky hack that'll help you transforms a OpenWRT router into a working PC.
You'll need a Linux based router with USB ports that you can load firmware onto, a USB keyboard and DisplayLink—this one is a Samsung U70—Linux open source code, and a solid understanding in geekspeak. Running on 300mhz, this PC will probably slow as hell—but from the photo of the finished product, it looks like it'll teach you how to make a mean Kamikaze, which you'll probably need after this hack
o A Linux based PC/router/NAS with USB ports (e.g. Asus WL-500g Premium)
o USB keyboard (e.g. Keysonic ACK-3400 U)
o DisplayLink device (e.g. Samsung U70)
+ OpenWRT 8.09 brcm-2.4 (extract to /)
+ gcc 4.1.2 as OpenWRT 8.09 compiler (with libboost, gcc 3.4.6 and OpenWRT 7.09 I got defined in discarded section while linking, with gcc 4.2.4 and OpenWRT trunk can't resolve symbol '_Unwind_GetIPInfo' at runtime if an exception happens; the OpenWRT package gave some error, too.)
+ packages: libstdcpp_4.1.2, libusb, libfreetype
+ modules: 2.4: input.o, evdev.o, hid.o; 2.6: input-core.ko, evdev.ko, usbhid.ko (for brcm-2.4 a patch is necessary, but even then hid.o doesn't get built for me.)
+ libboost_program_options-gcc41-mt-1_34_1.so.1.34.1, libboost_thread-gcc41-mt-1_34_1.so.1.34.1 from the Boost C++ library package from BTG
+ SlugTerm and my modifications (based on DisplayLink Wiki)
+ font: I recommend FNTs (FON2FNT). PCFs don't have line drawing characters and are slow; no cache yet. Scalable fonts are not layed out correctly yet.