That is seriously good work and an amazing DIY project!<p>I remember when I was a kid, trying to just get a pre-made Linux-image boot on my Amiga. I had a 68020 CPU, but due to no MMU and no FPU (neither being "normal" accessories at the time) I just couldn't get the thing to boot at all. Later, when I acquired a 68030 CPU, I at least had the MMU covered, but I was still a kid and didn't have a budget for a FPU. So I still couldn't get things booting.<p>Granted, back then I wouldn't know my way around Unix if I had been handed a booting system, but I was curious about this "Linux" thing which was supposed to be superior if you wanted to run BBSes, multitask and do stuff like that.<p>But despite all those resources I had, I couldn't get things going. And here this guy gets Linux running on a home-built 68008-based system of all things.<p>That is seriously cool!<p>Edit: I may be mixing up my 68k models. I also had a plain 68000 earlier, which was definitely not up for the task. If I'm mixing things up, please forgive me. It was a long time ago :)
Amazing, he did in 3 weeks and that seems like 3 weeks of part time work, that's amazing. It's amazing how much work we can put out in a small time if we are focused. I lost it during the video when he got tangled up in vi. In 1998, I got a Sun 3 workstation which has a 68000 cpu, the only thing I could get to run on it then was NetBSD. It's amazing that a single person can now build such a computer and run Unix on it within 3 weeks. Just amazing, how time changes things.
Great project! Good hustle with the multiple attempts...<p>I smile at the use of a 555 as an interrupt timer... I did the same thing in my 8088 senior project in 1996... Typically one wants the interrupts to be accurate and periodic (hence hardware dividers to adjust the rate), but the 555 is (typically) based on RC time constants and as such is subject to heat changes :)<p>So your operating system runs differently at different times of the day :)<p>Also, mine had potentiometers to control the two external interrupts (556), so you could change the interrupt rate in hardware and there was plenty of pot noise which was easily detectable in the output audio stream... tee hee memories.
Steve of BMOW has done several amazing hardware projects including a homemade CPU from logic chips and CLPDs, Mac floppy emulators, and more. Rather than link them here, browse the links on his sidebar and read the descriptions of each project.<p>>Schematics? Forget it. Everything was built incrementally, one wire at a time, while staring at chip datasheets. It’s an organic creation.<p>Yeah, that's real hardware hacking right there.
To clarify the article's text, uClinux is not (just) a distribution, but a version of the kernel that rus on MMU-less hardware.<p>The full Linux kernel does have m68k support, but it needs a 68020 or better CPU. This gets you real memory protection, VM etc.
"...hung at calibrating display loop. Aha, I needed a timer interrupt...."<p>He must be a true genius, to be able to infer the second from the first.
The article spoke about a suspected memory leak in setenv(), I assume it uses uClibc but it was a bit light on the details (no source code links in the article, that I could find).<p>I dug up this link: <a href="http://git.uclibc.org/uClibc/tree/libc/stdlib/setenv.c?id=308bd3f7988e13267b67c7a17c36ba2ad92b3c1c#n50" rel="nofollow">http://git.uclibc.org/uClibc/tree/libc/stdlib/setenv.c?id=30...</a> which I believe is the relevant function.<p>Unsurprisingly for this level of library code, it's not 100% super-obvious or easy to understand. Especially the details on the in-library memory management are unknown to me, but I thought it might be interesting.
I built a 68008 breadboard 'computer' as a student with 6522 VIA, an EPROM of 'code', some RAM and some LED lights to show if anyone was home. It took a lot of work to get that far. And that was a long time ago. The benefits of the 68008 were the same - minimal pins to wire up, more chance of it actually working.<p>Anyway I am impressed that someone can get a distro working on 68008, getting to the start line of that project is a big deal, going the extra miles - very impressive!
Kudos for wiring this (and also for the rest). I can't seem to succeed wiring much simpler circuits on the first attempt, and get mad going through all the connections to see what's wrong.
This is amazing! It's pretty surprising to me how little there is on the board. It looks comprehensible.<p>I wonder if you could do this with a modern CPU and RAM. What would it look like?