Linux On a Motorola 68000 Solder-less Breadboard
New submitter lars_stefan_axelsson writes: When I was an undergrad in the eighties, "building" a computer meant that you got a bunch of chips and a soldering iron and went to work. The art is still alive today, but instead of a running BASIC interpreter as the ultimate proof of success, today the crowning achievement is getting Linux to run: "What does it take to build a little 68000-based protoboard computer, and get it running Linux? In my case, about three weeks of spare time, plenty of coffee, and a strong dose of stubbornness. After banging my head against the wall with problems ranging from the inductance of pushbutton switches to memory leaks in the C standard library, it finally works! (video)"
Beats playing Assassins Creed all day.
Harrison's Postulate - "For every action there is an equal and opposite criticism"
No, a Wang would be based on the older 8086 processor, this machine uses a 68000.
Hats off. The 68000 was the first CPU owned (Atari ST) and I had a good six years of assembly skills behind me when it was finally time to leave. Awesome CPU for the kind of magic demo tricks only hard core assembler coding could bring out.
Relevant discussion: http://compgroups.net/comp.os....
it's in my head
If Slashdot is going to drop one or the other, I'd much rather they drop the News aspect than the Nerds aspect.
About fifteen years ago I had a Macintosh Centris 660AV running Linux, just as an experiment. I kind of wish that I still had that computer; it had an AUI port so I could adapt to 10Base-T Ethernet, and could have redirected all incoming unsolicited network connections to it. Let 'em hack it; with no compiler, all binaries for m68K only, and 16.9 bogoMIPS it would have made for an entertaining honeypot.
Do not look into laser with remaining eye.
Comment removed based on user account deletion
Hi, Awesome and well done. You should think in create a tutorial for us that want to build something like that and have some fun in the weekend. I could learn a lot from this.
Kudos.
Uh, Linux geek since 1999.
You are standing at the end of a road before a small brick building.
Around you is a forest. A small stream flows out of the building and
down a gully...
xyzzy
Bah .. kids these days.
I smell a wumpus
I am Slashdot. Are you Slashdot as well?
You're just using the breadboard to connect a bunch of ICs. :-p
Bust out the designs for those IC's, wire the components up discretely, then I'll be impressed.
Granted, you'll likely have no room left in your house for your bed or furniture... but that's not my problem
(I'm just being snarky, well done man)
Thanks for all the comments! This "68 Katy" is my project. The video is a good overview, and lots more tech details are at http://bigmessowires.com/2014/... and the rest of the site. I've built a couple of other home-made CPU / computer projects in the past, including "Big Mess o' Wires" a few years ago, but this was the first time I tried to add a real OS. Cramming Linux into 512K was a challenge!
The CPU is a 68008, which is a low cost version of the familiar 68000 with an 8-bit bus and fewer external address pins. It has a max of 1 MB of total address space. It’s paired with a 512K 8-bit SRAM, and a 512K Flash ROM (of which 480K is addressable – the remaining 32K is memory-mapped I/O devices). My 68008 runs at 2 MHz (it was unstable when tested at 4 MHz), providing similar performance to a 1 MHz 68000. That’s pretty slow, even in comparison to 68000 systems from the early 1980s, which were typically 8 MHz or faster. So frame rates in the latest games aren't great...
Hell, we finally get an actual geek article on slashdot and this is the response? Take your penis envy somewhere else.
You are trolling the wrong site if you think that this isn't the kind of submission that belongs here. I suggest you look to your future and concentrate on doing something productive for the time that will come when your mother kicks you out of her basement.
I built a 68000 based single board computer using parts from Motorola's M68000 development kit (or whatever that was called - it included a M68000, M68010, M68008, a couple of other 68k family peripherals, and a ream of documentation) as part of my master's thesis. Did a two-sided PCB with photoresist boards and hand-drilled and wired vias. The big difference then and now is the size of memory you can get in a single device - I was using 16K or 32K EPROMs and static RAM devices because that was pretty much the largest device available at the time (at reasonable cost, anyway - like $25 per chip). In your case if you're going forward with the full M68000 plan then I'd push forward with a real PCB. Those solderless breadboards really have horrible pin-to-pin capacitance and the inductance of all your wiring is going to give you nightmares. Nowadays you can lay out a board using free or cheapware tools and get a local shop to fab it (or you can do your own etching for the true back-to-the-80's experience) and you'll have something that's robust and repeatable. Good luck!
Less is more.
Woe to ye that goeth about saying "Hello Sailor."
Ideally they could raise the standard for what constitutes "news", leaving more room for super-nerdy chit-chat where we actually get to learn something.
I too am glad to see more of the nerd and less of the news. I've been encouraging my boys using the book, 'From Transitors to Tetris' (don't have the exact title as the book isn't handy).
This is an important, fundamental skill - knowing how the technology works and not just picking up a game boy and playing for hours (back in my day that was the reward for building a system).
xyzzy
Great!! Have this guy come over and fixing the messaging system! It's totally broken.
You are stupid.
I am sure it will fly through through an emulator
http://saveie6.com/
n
You are in open forest, with a deep valley to one side.
CLI paste? paste.pr0.tips!
Now this is the kind of stuff I come to slashdot for. I'd love to see that honeypot in action...
The 68008 was discontinued 20 years ago, so this isn't really all that useful even as an educational exercise. Why not pick a current breadboardable, cheap microprocessor and get Linux to run on that? That way, other people can benefit.
Nothing happens...
This is exactly the sort of stuff I like to see, and you are exactly the type of cynical loser I'm sick and tired of around here which is why I switched to soylentnews.org.
Why not try emacs instead?
-- .... :w :q :wq :wq! ^d
:quitbye CtrlAltDel ~~q :~q logout save/quit :!QUIT
Disclaimer - These opiini^H^H damn! ^H^H ^Q ^[
exit X Q ^C ^?
man quit ^C ^c ?Quit ?q CtrlShftDel "Hey, what does this button d..."
Have gnu, will travel.
Getting it working on a breadboard is no small feat. Kudos. I'm sure it helps to only run at 2MHz.
Rather than, as has been suggested, spin a PCB for it, why not try wire-wrapping next time? Less capacitance than a breadboard and a bit more permanent.
Back at DeVry(haha) we built 7MHz 68k systems using wirewrap. Great times. I freaking love 68k assembly. We(well, the smart ones) also used 22V10 PALs for address decoding to save on 74 series logic chips.
Another next step - find a chip with an MMU so you can run real linux. I think a 68020 or '030 has one. Much higher clock speed too. The pin density is still low enough(I think it's 0.1 but in a grid) that you can work with it. Check old electronic stores' back shelves for sockets.
http://www.masturbateforpeace.com/
Haha!
For a long time I used to something similar. All ports that were not in use on my firewall would redirect to a port on an old Toshiba T4800CT: 486 with 8MB of RAM and 500mb disk, running linux kernel 2.0.
It would run nethack on that port, so anyone who would try a connect scan would end up in nethack. Probably confused a bunch of people, and if someone managed to break through that, would be interesting to see what they would make of it.
You are in a maze of twisty little subroutines, all alike.
Epic
The closest thing you'll get to a full Linux experience on M68K is NetBSD (I know it's not Linux) for Amiga. If you have your trusty old Amiga A1200 or similar with an accelerator board, then you can get pretty much the full deal running on it, video, audio, and everything.
nevermind. Very cool.
My first exposure toboth UNIX and 68K was with a Motorola VME/10 system: 68010, 2MBytes memory. I do not recall the version of Unix; but it _did_ run *IX. Linux might be too bloated today to run in 2MBytes of memory.
You just managed to get my interest in slashdot back to normal levels. This is the kind of hero story we need here!
A hollow voice says... "Fool!".
I cut my teeth programming the 68k on the original Mac - well, did 8086/8008/4004/z80 and 6502 long before. Loved programming the 68K.
No easy task getting the home brew hardware to work. The capacitance and inductance of the breadboard and wires is limiting performance. Always fun to write the loader and make it come to life.
its nice reading real 'nerd' stories. Anyone here belittling your work likely has no understanding of the effort and skill required to build an operational computer from scratch. Great job!
The original 68000 was almost there for running a real multi-tasking OS. But, it didn't save enough state on the stack during an interrupt. You couldn't guarantee restoring a process's exact state when returning from an interrupt. I heard stories of designs that used two 68000s where one was running one step behind the other. I don't know how true they were. I see on the wikipedia that Motorola fixed that with the 68010 in 1982 and that's when the 68008 came out. So maybe the 68008 doesn't have that problem.
In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
Most modern OSes require a MMU, which the original 68000s don't have. How can Linux be running?
I have a Turtle Beach Multisound Classic, an ancient but very capable ISA-16 sound card, which has 4MB RAM, Motorola 68k CPU and 56k DSP and EMU Proteus 1/XR soundbank onboard, for amazing MIDI. However, ISA bus support has been lost in the post-Windows XP world and in modern Linux as well. So I wonder if this card could now run Linux in and itself, with only power arriving via the ISA comb? Maybe then use it as a self-contained rack with an attached MIDI keyboard?
In fact this is not the 68000 but its crippled little brother the 68008, which uses an 8-bit external data bus (as the 8088 is to the 8086). That was also used in the Sinclair QL, which was Linus's first computer before he bought a 386 PC and got into Minix. Could Linux now be ported to run on the QL?
-- Ed Avis ed@membled.com
I love to see someone doing this stuff, Gratz!
There was an unknown error in the submission.
Not to mention, I'd be impressed with a 2-inch Wang; I've got one virtualized (so it could probably run under emulation on a 2-inch device), but shrinking the actual hardware to that size would be a neat accomplishment in itself!
This comeback reply could not have come from someone with a better username for this topic.
Get free satoshi (Bitcoin) and Dogecoins
As long as it isn't a HornWumpus, this thread will be safe.
So please, Mr. Genius, could you link us to YOUR super awesome project? Didn't think so. Don't be jelly. Being jelly isn't cool, ummmmkay?
Congratulations, you are now in a rare group indeed. But I gotta say, you haven't lived until you've programmed a 6502 directly in machine code. No assembler :-)
One of my telemetry systems which I built and designed 25+ years ago used the 68000 running at around 10 MHz (with a jumper for 20 MHz, which it could actually do though I didn't deploy it at those speeds). The coolest thing about it was that I had built a rudimentary memory protection unit using a static ram and an 8:2 selector. Any user mode accesses pumped the high address bits into the ram with 2 address bits going to the selector along with the R/~W bit. The result was gated into the bus error logic. The top three bits of the static ram were directly controlled by the kernel which allowed the kernel to 'cache' up to 8 process's worth of protection data in the ram at any given moment, so context switches were still very fast.
Before the 68030 and 68040 came out, Sun (I think) was running two 68000's in lockstep, one one cycle behind the other, in order to implement their own MMU. When a fault would occur, they bus-errored the lead chip and paused the second 'behind' chip so they could take the bus fault, resolve the mapping issue, and then resume the behind chip. Then the 68010 came along and fixed the bus error interrupt stacking bugs in the 68000, and the 68020 came along after that.
The 68030 could hold short loops in its chip logic with some tricks, despite not really having a cache. Unfortunately, the 68040's on-chip cache implementation was horrible and created all sorts of problems for implementers, and by then Intel chips were running much much faster.
When Motorola retired the 68K series some of their larger embedded users asked motorola to re-test the 68000 chip specs at a higher clock, since by then the HCMOS process could obviously run the chip much faster than the ~10-12 MHz that was speced. Motorola tested the HCMOS version of the chip to around 50-70 MHz or so. Such a nice 32-bit chip, I was really sorry to see Moto lose to Intel (mostly because Moto gave up).
-Matt
Unfortunately, there is not a woman on the planet who will be impressed with a 2-inch Wang. They all want at least 6 inches, and the bigger the better!
Fantastic, I've been working on an Arduino / RaspberryPi project, and it's crossed my mind to do something like this for the heck of it. Street Cred and all that. Very cool.
About fifteen years ago I had a Macintosh Centris 660AV running Linux, just as an experiment.
I had netbsd on a IIci with a cache card. Oh, the novelty! Then I binned it. Because it was just uselessly slow. Hilarity: My first Sun machine was a 3/260, which had a slower CPU and graphics than the IIci. Had more RAM though (24MB instead of 8)
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
We're expected to talk about computers from the 80s and bring up or wangs?
No no no
This is slashdot. We expect thinly disguised advertisements or nonsense editorials from Bennet Haselton (frequent contributor), not interesting stuff about building computers from scratch. Your article sounds like it might actually be news for nerds: stuff that matters, and slashdot jumped that particular shark a long time ago.
Not an interesting project.
the MC68000 has no way to restart an instruction and no MMU.
Both of these are critical to running a Linux kernel today!
You could emulate a 68000 on a Beaglebone Black and have
it run faster.
*nix like OS have been built and run on a 68000 Idris is one
historic port of Unix. Little or no protection to keep processes
from running over memory and I/O and doing bad things but a
worthy *nix all in all for its day.
Step up a little to the MC68010 add an external TLB/MMU built
from modest size fast static RAM and Bob's yer Uncle... A
68010 does have the ability to restart instructions so you can recover
from a page fault. An external TLB/MMU is easy and designs
abound in 25+ year old paper documents.
When you are done a Raspberry-Pi or Beaglebone Black will still
run circles around it.
If you want to have fun build yourself a machine like the "magic 1"
and you will learn what all the buzz be about.
Truth is stranger than fiction, but it is because Fiction is obliged to stick to possibilities; Truth isn't. Mark Twain.
You are standing at the end of a road before a small brick building.
Around you is a forest. A small stream flows out of the building and
down a gully...
xyzzy
https://www.flickr.com/photos/stevenm_61/2271781767/
Dyslexic
Linux is a good platform and I don't understand why the machine don't be configurated for working with it. But I love all of the points you have made. shopping sports
Wow.
At the time I was into seti@home. I had a 486 Microchannel box running it, it took a very, very long time to do packets. If there even was a seti@home client that could run on that IIci I wonder how long it would have taken to do a single packet...
Do not look into laser with remaining eye.
They're remaking Hunt the Wumpus. It's called Evolve.
Nice to know that the one I built back in 2012 was your inspiration. :)
Anyway, I think mine is much more impressive
https://www.youtube.com/watch?v=GJmPS3jMwD4
You could at least give some credits to the original one... (done back in 2012) Anyway, its much more impressive what I've done... (also because I did most of the work for the linux kernel) https://www.youtube.com/watch?...