Sign in with
Sign up | Sign in

Booting Ubuntu on an 8-bit Chip: the Lowest-end Linux PC

By - Source: Dmitry Grinberg | B 41 comments

Developer Dmitry Grinberg may have come close to the minimum requirements of booting the Ubuntu Linux shell.

It appears that, with some effort, you do not need more than an 8-bit chip - despite the 32-bit requirement - 25-year old RAM and half a gigabyte of storage. It's not what you would call a particularly fast system, but it is astonishing that Grinberg got it to work at all.

He used an Atmel ATmega1284p RISC-based microcontroller with 128 KB ISP flash memory, 4 KB EEPROM, and 16 KB SRAM that runs at 20 MHz off-the shelf, but was overclocked to 24 MHz in Grinberg's case. The chip delivers a total of about 24 MIPS. To support the booting process and store Ubuntu, the developer added a 1 GB SD card as well as a 30-pin SDRAM SIMM that was common in 286-computers in the late 1980s and delivers a data throughput of about 300 KB/s.

Grinberg programmed an ARM emulator for the ATmega1284p to boot Linux (kernel 2.6.34), which decreased the effective emulated clock speed of the chip dramatically and ended up at about 6.5 KHz. The boot process took about two hours. the developer noted that the system is "somewhat usable". Typed commands deliver replies within a minute, he said. The overall result is the "cheapest, slowest, simplest to hand assemble, lowest part count, and lowest-end Linux PC," he wrote in a post detailing the system.

Linux on an 8-bit micro!

Display 41 Comments.
This thread is closed for comments
Top Comments
  • 19 Hide
    ta152h , April 2, 2012 7:05 AM
    t's kind of funny how the young twits have no idea how powerful these processors really are. 20 MIPs can do a lot. Heck, I remember running .894 MHz, and that thing could control appliances in the house. Tandy in the 60s ran their entire business on a 16K machine. People were running very effective business software on 64K machines in the late 70s, and early 80s.

    The reality is, there's nothing you can do on a computer now that you couldn't 30 years ago. You have bigger numbers, and things are prettier, and stuff like that, but you're running the same basic stuff. On the plus side, the cheap crap they sell today, forgetting about getting too hot, is unreliable, offensive in workmanship, not to mention poorly supported by people who don't quite speak English. If you were to take a "good" quality case back to 1985, people would laugh at that junk. A PC/AT would smash a modern Dell like a sledgehammer against a glass. If you brought a laughable keyboard from today back 30 years, people would think it was a bad joke. If you thought it was OK for your PC to be dead in five years, people would take your temperature.

    On the other hand, most of the saps here wouldn't be able to overclock, as you actually had to know what you were doing, and replace the clocks on the motherboard. And if you destroyed the motherboard with inept soldering, they were really expensive. And the old saying was "The computer you really want will always cost $5000". Plus, there was that dreadful interlacing that gave me, and others headaches. Ugggh.

    So, things are nicer in some ways, but fundamentally very little has changed. The amount a 20 MIPs processor can do with efficient code is enormous. It's just that human nature is such that it bloats up everything if there are the resources to do so, with grotesque inefficiency. Because it can done now. Programmers don't worry about an extra additional, or resetting the pointer unnecessarily, or asking for more memory than they need. When you had 3 MIPs to work with, you looked at every line of code, every routine, and made sure you weren't doing anything unnecessary.

    A lot of good stuff has happened, and a lot of bad. But, for the ignorant kids who scoff, don't think something with 1/1000 of the processing power did 1/1000 of the work of something modern. They did pretty much the same thing back then, maybe without a few bells and whistles, but essentially the same thing, because people work with what they have, and when you have less, you use it more efficiently.
  • 18 Hide
    aoneone , April 2, 2012 1:16 AM
    Can it run doom? because that's all I need really...
  • 11 Hide
    spentshells , April 2, 2012 1:39 AM
    tri forceThat's cool and all but the question is...can it run crysis?



    I don't know about crysis I bet it could automatically flush a urinal
Other Comments
  • 18 Hide
    aoneone , April 2, 2012 1:16 AM
    Can it run doom? because that's all I need really...
  • 5 Hide
    charels88 , April 2, 2012 1:24 AM
    Ubuntu on a Arduino! Not what I would use my Arduinos for but if you have the time by all means....
  • 5 Hide
    madjimms , April 2, 2012 1:24 AM
    "decreased the effective emulated clock speed of the chip dramatically and ended up at about 6.5 KHz"


    That's where I started smiling. Happy April 1st guys!
  • 4 Hide
    AlienIsGOD , April 2, 2012 1:27 AM
    will it blend?
  • 6 Hide
    whyso , April 2, 2012 1:37 AM
    My toaster can do better
  • 11 Hide
    spentshells , April 2, 2012 1:39 AM
    tri forceThat's cool and all but the question is...can it run crysis?



    I don't know about crysis I bet it could automatically flush a urinal
  • 2 Hide
    memadmax , April 2, 2012 2:03 AM
    heh, anything can run anything with a bit of tweaking.

    But, why would you want to?????
  • 11 Hide
    obsama1 , April 2, 2012 2:11 AM
    But can it run 8-bit Google Maps?
  • 0 Hide
    memadmax , April 2, 2012 2:17 AM
    madjimms"decreased the effective emulated clock speed of the chip dramatically and ended up at about 6.5 KHz"That's where I started smiling. Happy April 1st guys!


    It could be a misspell for 6.5Mhz.
  • 9 Hide
    chumly , April 2, 2012 2:22 AM
    spentshellsI don't know about crysis I bet it could automatically flush a urinal

    ...in 2 hours.
  • 2 Hide
    arlandi , April 2, 2012 4:47 AM
    if Grinberg tweak the os, he may make the bootup faster. or just use a smaller/lighter distro. but this is good though, even just to show that if you put your mind into it, you can do almost anything.
  • 7 Hide
    mouse24 , April 2, 2012 5:48 AM
    frozonicWOW /Sarcasm

    Don't knock it, thats an almost 20% increase in clock speed.
  • 4 Hide
    PreferLinux , April 2, 2012 6:40 AM
    madjimms"decreased the effective emulated clock speed of the chip dramatically and ended up at about 6.5 KHz"That's where I started smiling. Happy April 1st guys!

    Did you bother to look at the source? There was an update on the 29 March...
  • 2 Hide
    teodoreh , April 2, 2012 6:48 AM
    I expected to hear about a Z80 or 6502. 24 MIPS is not a 8-bit performance - even the 16/32bit 68000 performed nearly 1 MIPS at 8MHz.
  • 19 Hide
    ta152h , April 2, 2012 7:05 AM
    t's kind of funny how the young twits have no idea how powerful these processors really are. 20 MIPs can do a lot. Heck, I remember running .894 MHz, and that thing could control appliances in the house. Tandy in the 60s ran their entire business on a 16K machine. People were running very effective business software on 64K machines in the late 70s, and early 80s.

    The reality is, there's nothing you can do on a computer now that you couldn't 30 years ago. You have bigger numbers, and things are prettier, and stuff like that, but you're running the same basic stuff. On the plus side, the cheap crap they sell today, forgetting about getting too hot, is unreliable, offensive in workmanship, not to mention poorly supported by people who don't quite speak English. If you were to take a "good" quality case back to 1985, people would laugh at that junk. A PC/AT would smash a modern Dell like a sledgehammer against a glass. If you brought a laughable keyboard from today back 30 years, people would think it was a bad joke. If you thought it was OK for your PC to be dead in five years, people would take your temperature.

    On the other hand, most of the saps here wouldn't be able to overclock, as you actually had to know what you were doing, and replace the clocks on the motherboard. And if you destroyed the motherboard with inept soldering, they were really expensive. And the old saying was "The computer you really want will always cost $5000". Plus, there was that dreadful interlacing that gave me, and others headaches. Ugggh.

    So, things are nicer in some ways, but fundamentally very little has changed. The amount a 20 MIPs processor can do with efficient code is enormous. It's just that human nature is such that it bloats up everything if there are the resources to do so, with grotesque inefficiency. Because it can done now. Programmers don't worry about an extra additional, or resetting the pointer unnecessarily, or asking for more memory than they need. When you had 3 MIPs to work with, you looked at every line of code, every routine, and made sure you weren't doing anything unnecessary.

    A lot of good stuff has happened, and a lot of bad. But, for the ignorant kids who scoff, don't think something with 1/1000 of the processing power did 1/1000 of the work of something modern. They did pretty much the same thing back then, maybe without a few bells and whistles, but essentially the same thing, because people work with what they have, and when you have less, you use it more efficiently.
  • 5 Hide
    ta152h , April 2, 2012 7:07 AM
    teodorehI expected to hear about a Z80 or 6502. 24 MIPS is not a 8-bit performance - even the 16/32bit 68000 performed nearly 1 MIPS at 8MHz.


    I was expecting to see a 6809. It was the first multi-tasking microprocessor (OS-9). 24 MIPs is a beast, definitely way out of the league of normal 8-bit processors.

  • 5 Hide
    mesab66 , April 2, 2012 7:21 AM
    TA152H.....Well said - couldn't agree more. I'm pretty familiar with 80's systems, also, having alot of experience of CBM64 and Amiga assembly programming, and your description of "grotesque inefficiency" does indeed apply to a great deal of today's code.
  • -5 Hide
    belardo , April 2, 2012 8:04 AM
    A - April Fools... but if real, there is nothing SIMPLE or CHEAP in doing this. Nowadays, we throw away 2000mhz single core CPUs (P4 / AMD 64) because they aren't worth a dollar.

    B - This is not a real 8bit CPU. (I'm not going to bother googling it) This maybe a military grade 8/16bit CPU that was made as a replacement part. The 286 was a 16bit computer with 16bit memory interface.
    For example, they still MAKE 68000 class CPUs for tiny appliances... but back in 1980, it was a 6~8mhz MINI-computer class CPU ($20,000+ computers). Even apple owns a CPU company that makes military grade PPC CPUs. We're talking 5watt 300~1000mhz CPUs.

    Even a 6502 has been "modernized" to about 20+ mhz. Runs old code perfectly... very fast... well, when you compare the original 6502 running at 1mhz.

    Run Linux on a 6502 at 1mhz, then I will be impressed.... of course I expect it would take 2-3 days to boot :) 

    @TA152H LOL... a bit off. 1/1000 the power? more like 1/4000+ the power. If you compare a 1mhz CPU to a quad core running 4000Mhz. And yeah, those OLD PCs (IBM, Mac, Amiga) are heavy... using real steal. My Amiga 3000 (which is small for its day with 4 slots) is easily twice as heavy as my desktop... and it only has 2 hard drives in it. Its complicate to open and add drives.

    Nowadays, you can get a C=64 emulator for free (Commodore forever) or buy an Amiga emulator for $25~50 and run these in a window (or full screen) on our desktops.
  • 2 Hide
    belardo , April 2, 2012 8:29 AM
    Oh... I remember the days of interlace displays. Sure its fine for watching movies or TV shows... but not reading text from 3 feet away.

    There was a time having a 60hz 640x480 13" screen costs ya $500. $280 for a 5.25" floppy drive (320k). $1000 for 2mb of RAM with expander unit. $800 for a 20MB hard drive.
    $600 / $1000 / $4000 for just the "computer" (No modem, hard-drives).
  • 3 Hide
    iamtheking123 , April 2, 2012 12:07 PM
    charels88Ubuntu on a Arduino! Not what I would use my Arduinos for but if you have the time by all means....

    This was done using a straight up microcontroller. None of that noob shit that makes up Arduino.
Display more comments