Building the worst Linux PC ever

Linux is generally considered the go-to OS for under powered computers. Wanting to challenge the preconceived notion that Linux requires ‘a computer made in the last 20 years,’ [Dmitry] built the worst Linux PC ever around a simple 8-bit microcontroller.

The ATMega1284p [Dmitry] used doesn’t have a lot to offer as far as RAM and storage goes; just 16 kilobytes of SRAM and a paltry 128 kilobytes of Flash storage. While this may be voluminous in the embedded world, it’s peanuts compared to the gigabytes of RAM and hard drive space on even a low-end netbook. To solve this problem, [Dmitry] threw an antique 30-pin RAM SIMM at the problem. It’s wired up directly to the microcontroller, as is the 1 Gigabyte SD card that serves as the PC’s hard drive.

Linux requires a 32-bit CPU and a memory management unit, something the puny microcontroller doesn’t have. For [Dmitry], the best course of action was emulating an ARM processor on an AVR. We’re not sure if we’re dealing with genius or madness here, but it did prove to be a valuable learning exercise in writing a modular ARM emulator.

How fast is it? [Dmitry] tells us it takes two hours to boot up to a bash prompt, and four more to load up Ubuntu and login. If you want a Megahertz rating, good luck; the effective clock speed is about 6.5 kilohertz. While the worst Linux PC ever won’t win any races, its simple construction puts it within the reach of even the klutziest of hardware builders; the entire device is just a microcontroller, RAM, SD card, a few resistors, and some wire.

If you’d like to build your own worst Linux PC, [Dmitry] has the firmware and disk image available to download. If you want to watch the time-lapse of this thing booting, check out the video after the break.

112 thoughts on “Building the worst Linux PC ever

  1. Congratulations on your awesome effort Dimitry – no doubt this would have been an awful lot of fun for you!!! :)

    Most that I could achieve with my own 8-bit micro project (in this case, using a 150-MIPS 8052 to emulate an entire 16-bit x86 system) was getting it to boot minix 2.0.2 ..

    Link to my own ‘Flea86′ project:

    http://www.armchairarcade.com/neo/node/3810

    Regards,
    Valentin Angelovski

  2. This nothing! I did this with 3 transistors, a relay, 8 diodes and some toothpaste.

    But really, this is an awesome project. I think I’ve seen you’re name quite a few times on here before Dmitry. Actually just searched it. You’ve been on here LOTS of times.

  3. “genius or madness?”

    having known dima for a while now, I can definitively say “both” :-P

    good stuff as always, you crazy sonnofagun.

  4. haha beautiful..

    this is one of those “dont ask” because you can things..

    except… he took it too far ;)

    /lamer

    1. If this could do tcp/ip it would multiply the awesomeness. I actually need a dirt ass cheap processor that does tcp/ip, for a custom cheap ddns client, and uses a Linux tool chain (it’s what I know).

  5. This is the most amazing hack I’ve ever seen. I thought the relay-logic computers were the coolest, but this actually has GUI and everything. If you ever needed a benchmark for your competence, this is probably the best one you could manage. We are not worthy.

  6. See… Linux IS made for small devices ;)

    Now let’s wait for him to port Windows 7 (the 64 bit edition, of course ;) to the AVR…

  7. Part of the reason that this build is taking forever to boot and running like garbage (forgive me for saying so) is because you’re trying to run Ubuntu Jaunty on it.

    Maybe see what kind of mileage you could get with your 8-bit ARM microprocessor and, say, BasLin/DSL/TCL or something to that effect.

    Now, I’ve seen some just plain ridiculously refactored code done in assembler (like, absolutely SILLY amounts of graphics rendering in under 64kb) so I’m thinking it might be possible to actually code an entire Linux distro in asm and come up with something that actually RUNS on this tiny computer.

    If we do THAT, I have a feeling it would have a significant impact on computing in general. We have these beasts of machines and tap barely 1% of their potential by stacking clumsy and kludgy code on top of even clumsier code.

  8. I don’t know if it’s been mentioned, but there is actually a port of Linux that runs on embedded devices without an MMU, μClinux. There isn’t a port for this particular chip, but I wonder what the relative difficulty of getting μClinux up and running on an 8 bit MCU would be vs writing a simulation of a 32-bit ARM chip. Still really impressive stuff :)

  9. YA the site is slow. I dont know y. The VERONICA and LAZARUS64 have vram but no ram. I wonder..do we tap the ram bus for VRAM? With 3 shift registers on the VRAM inverter we might be able to pull off a 3 ATMEGA core computer.(with resonable amount of VRAM+RAM.) Yeah agree.Problem is nobody homebrews and Linux turning into shit these days. There r several RTOS out there. If a guy can put a cdrom +HD onto a C64, like the Performa series did..certainly this is not impossible. Those machines were responsive. NOT so these days.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s