Microcontroller Linux 123
allanj writes "Have you seen the Clinux stuff running of the uCsimm modules? They are pretty little machines with a version of Linux that, with kernel and the entire filesystem needed to boot, comes in at only 900 Kb. The whole thing took 30 minutes from initial power-up to first boot. Some (quite basic) assembly of hardware required though. The best part? The entire computer fits in a 30 pin RAM socket, with 8 Megs RAM, 2 Megs Flash ROM and an ethernet controller chip. It's powered by a Motorola DragonBall, so it's not for too processor-intensive tasks, but most things run just fine. Oh, and it has a gcc cross-compiler pre-packaged to run off your host system, so development can start immediately."
Re:Just what my toaster and coffee maker need! (Score:1)
Re:GUI Telnet?? (Score:1)
--
Re:Just imagine... (Score:1)
Kevin Fox
Re:How hoggish :) (Score:2)
I've done a few product designs currently selling in volume, based on the Microchip PIC...
With 2K (instruction, 14 bits per) linear code address space, some chips using bank swapping for more, and a linear RAM space of only 128 bytes, again bank swapping on some larger parts.
Microchip now have some larger parts, but the popular 14 bit opcode parts have 11 bits for code addresses and 7 bits for ram addresses. Great for small projects coded in asm, of really small projects coded in C... but it ain't gonna run linux.
There's also a few issues with the instruction set that burn up that limited code space. You don't get conditional branches, only skips past jump instructions. There's no add or subtract with carry input, so you're going to use many extra cycles for 16 bit math, and it gets really ugly for 32 bit math. Kludged indirect addressing (FSR and INDIRECT memory locations) with only a single pointer for the entire chip also isn't so hot. Despite being labeled "RISC", the chips are a classical accumulator architecture, even if you call is "W" and "WREG" instead of "A" and "ACC". The only thing RISC about the chip is a very small number of instructions.
Of course, you do get low power, OTP eprom with in-circuit programming, lots of built-in peripherals, pretty low cost, some low-cost dev tools, and they tend to actually be available in small and large quantity... but there's no way it's gonna run linux.
bwahahahaha (Score:1)
What kind of submission is that, anyway? "Hey everyone! Have you geeks, 'leet haxors and script kiddies heard about [INSERT PRESS RELEASE HERE]? I don't know about you 'k001 d00d5', but I'd sure like to get my hands on one of THOSE. In fact, I even heard that you can get a early adopter version from MegaGloboCorp[tm] at this link here [INSERT LINK]. Visa and Mastercard Accepted!"
-jpowers
Re:Just what my toaster and coffee maker need! (Score:4)
Make is a general purpose program, and need not be used for only c programs.
In fact, make is an excellent choice, because it allows for dependcy checking. ie: there is a empty pot in place, water avaiable, and enough coffee beans/grounds. Sure you can do it with custom code, but make does a good job of that.
Re:GUI OS under 70 meg (Score:1)
MacOS doesn't count, since you need to ROM's to make it work, too.
George
Re:So what does linux on a microcontroller offer? (Score:2)
What I'm questioning is the use of linux in things that are an order of magnitude smaller. Like cell phones, handheld PDAs and personal location systems. The interfaces are generally dictated by the microcontroller and/or whatever ASIC might be in the system. Hard disks are out of the question.
Running traditional linux apps seems to be an unlikely goal - I'm not paying to run a webserver from my cell phone and X applications are not ideal for a 128x72 LCD screen.
Quite possibly, the need for a real filesystem might be a good dividing line. Where you need such a thing, linux gives you lots of goodies for providing and using the filesystem. In a system which has no such need, linux looks too much like an overwight dinosaur.
linux sucks for this application (Score:1)
Linux on a PIC -- it might be possible (Score:1)
That's the limiting factor. You're right; obviously, you couldn't fit Linux in 2K words of code. So you have to expand the available code space. This is of course impossible -- the PIC is only capable of executing instructions from its internal store.
But it's possible to hang external memory off a PIC, whether it be a Dallas iButton or a more traditional RAM or ROM chip; and if you tried, you could probably build an interpreter to fit in the PICs internal instruction space, to execute "instructions" stored in this off-chip memory.
So yes, you could build a machine that ran Linux using a PIC as the processor; but Linux wouldn't be actually on board the PIC itself. Still, there are some nice small SMT EEPROM chips around, and you could fit one of those plus an SMT PIC on a pretty damn small board...
Incidentally, some of the newer PICs (e.g. the PIC16C77, I think) are not OTP; they're flash. Sweet.
Re:So what does linux on a microcontroller offer? (Score:1)
Quite possibly, the need for a real filesystem might be a good dividing line. Where you need such a thing, linux gives you lots of goodies for providing and using the filesystem. In a system which has no such need, linux looks too much like an overwight dinosaur.
While linux isn't the smallest kernel available, it can be pretty small. The kernel used in ucLinux usually compiles to around 300k. One of the largest aspects of linux on desktops, though, is glibc. uclinux uses a stripped-down libc instead. This means that while it doesn't take much work to port most apps, not much will simply recompile for ucLinux. I have found busybox, the util suite used on the debian rescue disks, to work well in ucLinux.
ucLinux is definitely not designed to run desktop apps on small CPUs. It's more like a happy medium between the ultra-tiny kernels and the compatibility of the standard linux kernel.
Re:So what does linux on a microcontroller offer? (Score:2)
I don't think they make much sense today for mass consumer applications like cell phones, because at the kinds of volumes consumer devices are sold in you can afford more software development, but at the prices they are sold at you can't afford the per unit hardware costs. On the other hand, there are many kinds of high value industrial machinery and scientific instrumentation, which are produced singly or in only thousands of units per year. In that sort of device, this kind of unit makes a lot of sense. Ethernet makes this scenario extremely sweet -- you can control your devices through SSH over commodity network cable if you want, or embed a tiny web server giving you the machine's status and history.
I work in the public health arena. Lots of places are spraying pesticides for West Nile Virus. It would be nice to capture GPS data and machine telemetry for later transfer to a database and GIS for regulatory reporting and performance analysis. I could imagine coming in at the end of the day and removing a cartridge containing the device's brains, and connecting the device to an Ethernet hub. Kind of like synching your palm pilot. A few KLOCs of Python written for a Linux box would probably suffice to do everything needed.
The problem is that for my industry the economics of the unit don't quite work out. It needs a bit more memory and it'd have to come in at under $100 a piece, $50 would start to be the no-brainer level. If something like the ucSimm were produced on an industrial scale, it probably would cost much, much less. I suppose that higher production runs and a few years of cranking the Moore's law cycle, they might eventually shrink in size and cost to within an order of magnitude of today's PICs. That would be revolutionary.
Re:Another fun joke (Score:2)
Re:Just what my toaster and coffee maker need! (Score:1)
Ryan
Re:HTTPD on a PIC (Score:1)
Re:linux sucks for this application (Score:1)
Ryan
Re:A fun joke (Score:2)
I know what the University of California is. I know what the Greek letter mu is. But it will be a cold day in hell before I pronounce C-SIMM as anything but "U-C SIMM."
(Is it me, or is this whole karma freeze thing awesome? I could troll at Score 2 all day.)
Re:bwahahahaha (Score:1)
Even if you have no conflict of interest by sumbitting the story, I took the opportunity to point out how easily this process could be manipulated by someone who did.
-jpowers
Any ideas? (Score:1)
I'm trying to research a project which requires embedded technology. It must be very low power, and modular etc. What I really need is a low power compactpci cpu card. Everyone and their brother just makes 3e6 Ghz Pentium III Cpu modules (which you can use to economically heat your house by the way). I want _under a watt_. This means ARM, or m-core, or dragonball etc (drool.... NEC VR?). Does anybody make low power cpu modules for compactpci?? Geez, seems like there must be a market for it. Why hasn't anybody done it yet?
ARM makes a development platform which does compact pci, but it seems like nobody does a production platform. What gives? Are we poor bastards who can't afford to have PCBs made for us, or buy arm processors in lots of a thousand just out of luck? WTF? Are small powerful microprocessors just for consumer gadgets? Why must we use gigantomongous processors in all our embedded applicatons? SAVE THE ERGS!!!
Anybody know of any ultra low power compact pci boards?
Re:Automotive Chip Integration (Score:1)
Re:GUI OS under 70 meg (Score:1)
--
Re:Possible application (Score:1)
Consumer applications always go second. It's the industrial market that brings REAL money.
Re:Just what my toaster and coffee maker need! (Score:1)
Note to moderators: ":)" == attempt to be humorous, even if the joke is getting old
-- Sig (120 chars) --
Your friendly neighborhood mIRC scripter.
Re:More "informative" ucLinux info (Score:1)
Still, many people were confused about the boot time, and "It will be useless until it boots faster" posts modded up didn't help much.
Just trying to clarify things a bit.
Re:Just what my toaster and coffee maker need! (Score:1)
Wow, I can't believe you have to recompile your coffee every time you make a new pot. Things like coffee strength or number of cups should really be run-time (brew-time?) options that you could put in your .coffeerc file or something.
Re:SLASHDOT IS A BIG SCAM!!!! (Score:1)
So what does linux on a microcontroller offer? (Score:4)
The things I look for in a microcontroller OS are stuff like..
A small footprint
Lightweight realtime multitasking (if multitasking is required)
Rapid boot (millseconds)
Persistent state support
Will fit in a single flash chip with space for the application
Hosts whatever protocol stack is going in the product (stuff like GSM, IS95, TCP/IP, IS707 seem to be the usual suspects).
Most importantly.. A really really good remote debugger, cross target development environment and totally uncrashable kernel
So could someone clue me in as to why I should use something like this rather than say Nucleus?
Re:GUI Telnet?? (Score:1)
What do you need a GUI for a program emulating a terminal for?
Re:Just what my toaster and coffee maker need! (Score:1)
actually, I didn't mean SSH. I mean, the process should be :
ndfa$ telnet coffee
Trying 10.1.1.25
Connected
uClinux 2.0.38.1pre7
username: coffee
password:
$ su - root
Password:
# make_coffee -strength 10 -cups 3
Making coffee now
Of course, this still doesn't solve the problem of needing to be root to run the make_coffee program.
--
Re:Have you looked into C:\Windows lately? (Score:1)
Then after loading, thow away the "Online Services" folder and pitch IE 1.0 or whatever that browser is.
Install Arachne or IE 3.0, Telnet, and the FTP program of your choice.
If done right, this will easily be under 100 meg, which is the smallest size I've ever gotten any Linux distro with X-windows to.
If done even better, it should be under 80 meg as well.
Re:GUI OS under 70 meg (Score:1)
That proves nothing though, since such Operating systems resort to disk paging when ram is not sufficient.
No, that's fully loaded in RAM. No paging (VM turned off).
In fact, I've just installed a not-so-monimal install (with ethernet drivers, among others), and it installs under 19Megs disk space. That particular install ran under 12Megs of RAM.
Re:GUI Telnet?? (Score:1)
Re:Simple search? (Score:1)
So now we can have 2 OSes in one machine, right? (Score:1)
I post first, I get noticed.
I post first, I get seen
I post first, I get moderated
And my website is where every body's been.
http://iotaspace.net
Re:GUI Telnet?? (Score:1)
Re:GUI OS under 70 meg (Score:1)
Re:Just what my toaster and coffee maker need! (Score:1)
--
And use the -j switch (Score:1)
-j jobs Specifies the number of jobs (commands) to run simultaneously.
So if two dependencies are missing, say, no water available and not enough grounds, make will spawn a job to go to the well while another job is grinding the beans.
--
Automotive Chip Integration (Score:2)
Linux appears to be a good candidate for controlling hardware, robotics, etc, due to its management of hardware as files. Unfortunately I do not seem to find very many instances of it being used in such a capacity. Perhaps this could be one of the first implementations we'll see.
Some people are very adamant about restoring old pre-computer vehicles, and seem to be put off by the lack of customability incurred by electronic systems. Perhaps somewhat inexpensive fuel-injection systems with PC access to engine settings via linux (or BSD, etc) would make people more inclined to restore using modern technology.
Old tractors, boat engines, and older road-going vehicles could benefit from packages designed for their specific powertrains. Basically such systems could allow "legacy" vehicles to be compliant with modern fuel efficiency and emissions guidelines.
There are several systems available now that accomplish this same task with proprietary systems, however, it would be fascinating to see if Linux's continual improvement and development could be transferred to physical devices. Ex: As developers learn more of the failure points and successes of engines through viewing "event logs" steps could be made to inform engineers to as to what direction their engines should take in future iterations.
If any of you guys know if any work or projects being done similar to this please post some examples. I'm sure someone is or will try it before long if it is not already in the works. I'm curious as to where others see integration going in the future.
G. Waters
"Sigs Cause Cancer"
Re:New Linux Port (Score:1)
Re:How hoggish :) (Score:1)
Re:SLASHDOT IS A BIG SCAM!!!! (Score:2)
Re:900kb Linux ??!!! :) (Score:1)
Seti project (Score:1)
Re:Just what my toaster and coffee maker need! (Score:1)
If you allow root logins, anyone can attempt to brute-force the password, if you disallow root logins then someone needs to brute-force two passwords, or if it's a local user who is attempting to crack the password you have a log of which user it is if they're required to su.
What does one cost? (Score:2)
Re:Reactivating Old Stories (Score:1)
No, I don't want to read about something for a third time, simply because some new person is so thrilled by their discovery that they can't be bothered to find out whether it's already been reported
900kb Linux ??!!! :) (Score:1)
thirty minutes???? (Score:1)
New Linux Port (Score:1)
Ever wished you could take your computer wherever you go? PDAs got you down? Laptops too heavy? Don't look any longer.
Straight from CmdrTaco's underground Linux development megacenter underneath Lake Michigan comes Linux on a Fingernail(tm). With a kernel that fits on three transistors, you can now successfully install Linux on your fingernail. Run Apache, do some hardcore driver development, even play XBill all on your hand!
All I have to say is wow.
Re:Just what my toaster and coffee maker need! (Score:1)
Re:Just what my toaster and coffee maker need! (Score:2)
Segmentation Fault - Core Dumped
Hey! Who shit in my coffee cup!
Re:GUI OS under 70 meg (Score:1)
Just what my toaster and coffee maker need! (Score:4)
Trying 10.1.1.25
Connected
uClinux 2.0.38.1pre7
username: root
password:
# make coffee -strength 10 -cups 3
Making coffee now
ahhh.... geeks, turning coffee (caffine) into code for generations!
Re:Already seen this months back (Score:2)
Re:GUI OS under 70 meg (Score:1)
I will unfortunatelly bite on your flamebait.
My Mac OS 9.0.4 runs under 23Megs of RAM, fully loaded.
Please review your numbers, or at least dont associate Mac OS with Windose.
What "thing"? (Score:1)
To what does "the whole thing" refer? The port?
Oh and "woohoo! uClinux is back! now maybe I can run something besides lissajous on my Linux xcopilot!"
--
Re:GUI OS under 70 meg (Score:1)
Troll (Score:1)
--The knowledge that you are an idiot, is what distinguishes you from one.
Re:Just what my toaster and coffee maker need! (Score:1)
--
Re:Just what my toaster and coffee maker need! (Score:1)
--
Thank you! (Score:1)
I appreciate your help. I have been looking for something of this sort for over a year, and no one has been able to provide me any with any info about something of this nature.
I am impressed and I apologize if I upset you. You do not know how frusturating it is to be on a 486 with a 120 meg HD, and know that you can't fit Linux, "The OS for your 486" on it.
Especially when Lynx just doesn't cut it anymore.
Feeding time! (Score:1)
Little Linux (Score:2)
Imagine a beowulf cluster of those pins! Sorry I couldn't resist.
30 Minute Boot Time? (Score:1)
Re:Have you looked into C:\Windows lately? (Score:1)
I don't know how big one's modules directory is upon a fresh install of linux, but you have to take that into consideration (you don't want to have to insert the CD when you install a new piece of hardware so it can copy the module to your HD do you (although all the linux users I know compile their own kernels anyways)). Plus, which distro/version were you using... you would have to compare a linux distro from 1995 with Windows 95. Mac OS 7 fits on 6 diskettes, and one doesn't usually use everything that comes on those diskettes but it wouldn't be fair to compare this, since it was released in 1991 (I believe)
He who knows not, and knows he knows not is a wise man
Boot time... (Score:2)
The whole thing took 30 minutes from initial power-up to first boot. And they say Win98 takes too long to boot.
Foghorn Leghorn says, "That, I say, that's a joke, son!"
Re:How hoggish :) (Score:1)
http://www-ccs.cs.umass.edu/~shri/iPic.html [umass.edu]
More "informative" ucLinux info (Score:5)
To fill in some of the gaps in the /. story: ucLinux is a port of the 2.0 linux kernel to MMU-less architectures. It's mainly run on the Motorola 68000 series, but it is also used quite a bit on the (much faster) motorola coldfire chips.
The ucSimm is based on the motorola 68EZ328 Dragonball chip, with onboard memory controller
and LCD controller. It's the same chip used in
most Palm computers.
I haven't used the ucSimm, but I have first-hand uclinux experience with my own hardware. (kiwi.sourceforge.net [sourceforge.net]) It runs pretty nicely, and it definitely doesn't take 30 minutes to boot. Don't know where that came from. Because most of the time-consuming things like loadable modules usually aren't included in the boot process, it only takes seconds to boot. Most of the time is spent decompressing the initial filesystem into DRAM.
ucLinux has been used for many things, including industrial control (microcontroller replacement) and robotics. I have been working, slowly, to make some type of usable PDA based on ucLinux. The Kiwi [sourceforge.net] has been my crude but mostly operational attempt at hardware, and I've been working on a small and efficient GUI system, PicoGUI [sourceforge.net]
(sorry i haven't updated these pages in a while. Most of the fun stuff is taking place in the sourceforge CVS)
Re:A fun joke (Score:2)
In short, please remove yourself from Slashdot before posting any further "fun jokes." You're ruining my Internet experience.
Re:GUI OS under 70 meg (Score:1)
--
Re:Just what my toaster and coffee maker need! (Score:2)
make coffee strength=10 cups=3
there. shame on you for telnetting in as root tho.
Ruggedized Linux? (Score:1)
One of my clients is having us write apps on Teclogix and Intermec units which come in various flavors of M$. This is the only part of the app not on a *NIX.
Palm clones and PDA's are cool and all, but the real money is in ruggedized hardware. Hand helds that can be dropped from 6 ft onto a warehouse floor and have built in 802.11 and PCMCIA slots are what we deal with. This things are priced in the $3000-$5000 range. I would think that someone would be doing this with Linux.
I've searched most of the places on the Net and I only seem to come up with PDA style devices.
Already seen this months back (Score:2)
Though, that was an off-shoot from another website and might not have been seen by many people.
Regardless, the applications for devices such as these are clear. And those of you that have been wondering about GUIs and such, I just have to ask: Why would you want one??
The applications at the very most would require only console. Its not like you'll be playing Quake 3 on one of these things. And another person seemed to comment that it takes awhile to boot (30 minutes), that it might be using some slow process like floppy disks. Keep in mind that the install is about 900k, and the device has only flash rom (it says FLASH RAM on the webiste but I believe this to be a mistake), capable of 2MB, for storage. And a total of 8MB DRAM. When was the last time your swap space was that size?
I wouldn't be surprised if the website you view years from now might be hosted on one of these types of devices...
Wrong!!! It takes 3 seconds to boot! (Score:1)
Wrong!!! It takes 3 seconds! (Score:1)
Wow! (Score:1)
--
It takes 3 seconds, not 30 min. (Score:3)
Re:GUI OS under 70 meg (Score:1)
Re:GUI OS under 70 meg (Score:1)
Re:Automotive Chip Integration (Score:1)
How hoggish :) (Score:1)
Re:A fun joke (Score:1)
Slashdotted simms? (Score:3)
"Oops, I forgot to turn off httpd logging. The memory filled up in 1.8 seconds!"
Then again, a rack enclosure with 50 of these guys and a load balancer could be an interesting prospect. Forget tracking session variables by cookie. Each user could be diverted to their very own simm 'associate' for their custom eCommerce transaction!
Kevin Fox
Re:GUI OS under 70 meg (Score:1)
That proves nothing though, since such Operating systems resort to disk paging when ram is not sufficient.
Re:bwahahahaha (Score:1)
As you'll probably see from my name, I submitted the story. It has nothing to do with press releases - I have two of those babies running Clinux in my office (yes, I get paid to work with them :-).
In short, you're just plain wrong. I've been using them and they've been in production for, what, a year? Press releases and early adopters my a**
Re:Have you looked into C:\Windows lately? (Score:1)
Newer versions of 95/98 use FAT32, which is a slightly less horrible filesystem, so you're only losing maybe 100mb from slack space right now. Still, that more than makes up for the size of the OS.
If you want to make the most of your disk, you'd be best switching to an OS with a decent filesystem, like NT (using NTFS) or linux (ext2, reiserfs). They save space and are also much faster. Of course, that isn't possible if you use your system primarily for playing games ...
Re:Just what my toaster and coffee maker need! (Score:3)
should know better than that...
Chris Mattern
Clarification about boot-time (Score:2)
OK, I can see how it could be mistaken for a 30 minute boot-time. My mistake. Sorry. It is 30 minutes from the uCsimm comes out of its antistatic bag until it boots Clinux, which takes just 3 seconds (as andersen has been really busy pointing out - thanks man).
Does Every Employee Have To Post This Article? (Score:2)
Is there some sort of Slashdot office pool involving the number of times this one goes up on the site?
Re:GUI Telnet?? (Score:1)
Another thing is that the idiot admins at my school have set some flag in the registry that forbids executing any console application. Perhaps the authors of most of the telnet clients are aware of this problem. Ah, brain-dead school techs and their so-called "security". Anyway, it would be a pain if I had to mess around in the registry every time I wanted to telnet out from one of those boxes, so I'm happy that they are GUI apps :).
Re:Just what my toaster and coffee maker need! (Score:2)
not only that, he's telnetting in as root. shame on him. the coffeemaker should burn all of his coffee if he does that...
--
Reactivating Old Stories (Score:1)
Maybe slashdot should have a bubble-up feature where old stories that get re-posted "come back" from the archives, complete with reviewable comments. That way, all the discussion for a particular "story" (in this case, the uCsimm) can be archived or discussed in one place.
Of course, I'm not gonna write the perl to get it done, so I'm not holding my breath
Re:Does Every Employee Have To Post This Article? (Score:5)
So it would seem.
http://slashdot.org/search.pl?query=uClinux [slashdot.org]
Project Idea: self-contained Linux Spex (Score:2)
Plus the fact that they look like total BCG's (Birth Control Glasses) should only enhance the Geek appeal....
See the MIT Wearables page [mit.edu] for more ideas....
#include "disclaim.h"
"All the best people in life seem to like LINUX." - Steve Wozniak
Possible application (Score:3)
Re:What does one cost? (Score:3)
There's a .org for the OS and a .com for the hardware.
Re:Possible application (Score:2)
I resent that. I'm fully secure; my LAN's gateway (the one attached to the cable modem) is a Windows 98 Second Edition box. Anybody tries to exploit it, and it BSODs spectacularly, cutting off all attacks. On the other hand, those Linux boxes people use as firewalls keep running, giving the cracker a chance to overcome its security. What's the point of a firewall if it doesn't go down in flames?
(By God I hope people realize I'm not serious.)
Steven E. Ehrbar
uCLinux in Blow Up Dolls? (Score:2)
connected to pamela..69.69.69.69
(ssh) password :
pamela$ make love
Making love
pamela$
segmentation fault..Core dumped.
Moral : always use ssh for safe sex
Re:GUI OS under 70 meg (Score:2)
Fits in 16 MB, includes Netscape, telnet, ssh, and other such neccessities