Installing Linux On ARM-Based Netbooks?
An anonymous reader writes "I am sure that many other Slashdotters have noticed an increase in ARM-based netbooks over the past several months. For example, the Augen E-Go. It is a widely touted theory that it is impossible to install Linux on one of these notebooks, replacing the commonly installed Windows CE operating system. The sub-$100 netbooks carry decent specs, including 533MHz ARM processor; 128MB DDR RAM; and a 2GB Flash drive, as well as most expected netbook components (USB, Wi-Fi, etc.). I find it hard to believe that a computer with these specs is impossible to hack and install Linux to, but Google searches have been largely unsuccessful in finding proper information. Do any Slashdot readers have experience in installing ARM Linux distros to these cheap netbooks like this? If so, what distros do they recommend?"
(In particular, I wonder if anyone can comment on Ubuntu on ARM.)
Debian GNU/Linux on ARM
512 MB RAM, 20 GB disk, 200 GB transfer, five datacenters. $19.95/month.
Angstrom Linux
I don't even get why these arm based machines come with windows ce, that's just setting the user up for disappointment... Sure it looks like windows, but won't run any of the apps people would expect to run on it....
Linux at least doesn't create such a false impression, and has a much wider array of applications readily available for it.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
With Linux on ARM is that ARM devices are substantially less standardized that x86s are when it comes to such niceties as the preboot/early stage of boot process.
Because of the decades-long Wintel monopoly, pretty much any x86 board(with the exception of a few oddball embedded things and OLPCs), boots in almost the same way. Worst case, the ACPI implementation is so shot that you have to boot with -noacpi in order to get the kernel up and running.
ARM devices, though, have had considerable freedom to do their own thing, so long as the vendor provided a BSP that papered over the weirdness enough to run the OS of the customer's choice(historically WinCe/VXworks, more recently this has included Linux). On the plus side, this has meant some fairly interesting capabilities in some of the bootloaders. On the minus side, this has meant a multitude of bootloaders(a few OSS, redboot, u-boot), some fairly common, and some horrid oddball crap that even Google has only heard mentioned a few times.
If you can get the kernel booted, userland is not such a big deal. Debian has had a pretty decent one for a while, and the Ubuntu guys have recently been doing some "suitable for low-rez screens" type polishing. The issue will be figuring out the bootloader. And, of course, there is absolutely no assurance that the drivers for whatever oddball devices are crammed into the cheapo SoiCs in these things exist, or work properly.
If you get to the stage of "what distro do I want", you are ahead of the game.
Sure, Linux runs on lots of CPUs, and would have no problem on ARM, and probably even supports all the devices on the systems in question. The trick is finding a way to install it, and that's where the hacking comes in. How does the system boot? Can you modify the boot image to install Linux? Does the BIOS (or whatever equivalent) insist on only booting digitally-signed boot images like video game consoles do? Those questions may have different answers for each device.
In most cases, I would think it shouldn't be too hard, as they aren't likely to bother with digital signatures, and they probably have some mechanism for installing an upgraded or patched operating system (for bug fixes, if nothing else). Someone has to buy one and figure out how to do it.
Is more a tablet or a cellphone than a netbook, but the N900 runs it, and is ARM based. And probably will be a Meego version for it too soon. Anyway, the N900 have twice that RAM, completes to 1gb counting the swap, and several times that flash on storage, you could feel a bit stretched with it.
There are also several mini linux distributions specially targetted to low ram/hardware (i.e. damn small linux), but not sure if there are ARM ports of them.
Check out Slackware on ARM
http://www.armedslack.org/
This is is a port of 12.2 packages (slackware is almost complete with 13 rc1).
Yet, that does not actually solve the problem. If you think it does, you don't understand the problem.
These devices only have 128M of RAM. That's not much: you won't be running X terribly well, nevermind a modern desktop. And the available packages for 'lightweight' stuff is woefully unequipped for something like this.
What the OP really should be looking at is MeeGo/Moblin or Maemo - though with only 128M of RAM, they might be a bit under powered for even that.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
Perhaps. But consider that if the user hadn't submitted the story there would have been other effects lost. For instance, by reading this article I found out about the E-Go, which I'd never heard of before. I also found out about Angstrom for the ARM architecture.
If we all kept as quiet as you appear to want then the spread of ideas and information might happen at a much slower pace.
http://www.rootstrikers.org/
I've already posted in this thread elsewhere, but I just thought I might add: Google is likely part of your problem (inability to find anything useful).
I've noticed lately that Google has become much less of a useful resource when looking up technical information. You're more likely to find a useful link with "stupid" queries, but any level of complexity results in two out of three being only-sorta related. It's a mess, and historically useful search formatting (quoting, -, +, etc.) no longer really help.
I really hope a better alternative comes along soon (or google releases "geek.google.com" or some such thing - with the old indexing). The lack of good search results (nay, worse results) has really made my life more difficult.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
Debian with IceWM was perfectly usable on a p200 with 64 megs of RAM back in the late 90's, it should do very well on an arm533 with 128 megs of RAM.
Mod parent up. The biggest limitation is the amount of RAM. Sure, 128MB may be fine for certain limited applications, but it'll be the bottleneck for any decent web browsing or any kind of multitasking. I think 256MB may be the bare minimum for comfortable web browsing, mostly based on the fact that any device I've used with only 128MB seemed to just fall a bit short of being really usable. Perhaps someone with a 192MB device (T-Mobile G1?) can chime in with their experience.
Looking at the specs given by the OP, I am wondering why you would go to the trouble of installing Linux on one of these machines (other than geek cred) when you could just get a MIPS based netbook with similar specs that comes with Linux, e.g. the CnMbook. I got one for £90 last year, it's slow as hell but does the job for basic web access etc when I don't want to carry around a full sized laptop.
I might add that putting a full-featured Linux distro (e.g. replacing the basic Linux install it ships with with Debian or the like) on the CnMbook doesn't seem too plausible at the moment, there's just too much tweaking necessary, and this is a machine that ships with a Linux variant installed. Trying to put Linux on one of the ARM machines mentioned by the OP when it isn't even supported by the manufacturer seems like more pain than it's worth to me...
https://alephnull.uk/
Or OpenBSD.
Plenty useable.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
If it's a bottleneck on Puppy or basic Debian, it's going to be a bottleneck on MSWinxxx.
The RAM is not the problem. The problem is the wetware of engineers who deliberately throw up roadblocks to using a decent OS.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
The Simpad is an ARM-based tablet computer made by Siemens some years back. It came with WIN CE but people have created a Linux distro called OESF that runs on it and it will run many Sharp Zaurus applications unmodified even though it has a much larger screen than a PDA.
I would expect that people would have to do some boot loader hacking similar to what was done with Simpad, but if you could get that Simpad distro booted on one of these netbooks then you will be past the biggest hurdle in making Ubuntu Netbook remix run on them.
"Should" work?
Yeah, I've got a MobilePro 780 - it has 32MB RAM; I've got X running on it with ion3 under NetBSD. NetBSD 2.0. It barely runs - and this is an old TinyX (nanox? I can't recall) X server.
I had a P133 with 16MB of RAM, too. That ran icewm well.
The problem is that this isn't 1997, and X implementations are significantly bloated these days compared to back then. There have been a lot of changes - many have which have been acceptable improvements (memory use for performance improvements, support, etc.). Even the 'tiny' X implementations have this problem.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
semi-intelleigent sounding stuff that presumes INTEL has already won.
Shoot. Why not just give in to the BORG entirely?
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
It comes from the "ZOMG, you want to run Linux, therefore you want to run a server/are a sysadmin/are a programmer" mindset. Of course, if they didn't include Apache, sendmail, bind, etc by default, you'd have all those programmers/sysadmins saying how Distro-foo is dumbed down for the masses.
Take it from someone who admins RedHat/Centos boxes for a living, install debian instead.
You're on the wrong site. Go back to digg or where ever you should be.
Well, then you'll be stuck on static pages, and will be impossible to render and navigate through "modern" pages.
-- --
Perhaps. But consider that if the user hadn't submitted the story there would have been other effects lost. For instance, by reading this article I found out about the E-Go, which I'd never heard of before. I also found out about Angstrom for the ARM architecture.
If we all kept as quiet as you appear to want then the spread of ideas and information might happen at a much slower pace.
I am the AC who wrote that post that you replied to.
Thank you for taking the time to say that. Sometimes people say things that makes me reconsider my position and you Sir did me that favor today. I was hasty and didn't think about what you might call the positive externalities. Still, I think having independence and being able to find your own answers is a very important skill. It is something that separates the helpless and needlessly dependent sheep from those who have some guts and are willing to put effort into a thing before it crosses their minds to seek help. I'd rather the Ask Slashdot be more like "I did research on this topic and I found solutions X, Y, and Z but all of them involve various trade-offs. What would you the community do if faced with the same situation?"
I think that's reasonable and it shows that the inquirer is serious enough to have at least tried. Maybe they found the answers and maybe they didn't but either way it gets the community involved in a more meaningful discussion, rather than so many one-liner posts containing a link or saying obvious things like "full-blown X with a desktop environment requires more memory than that device has."
Thank you again though for providing me with real, non-inflammatory constructive feedback. It makes quite a difference. Perhaps I am too disenchanted with the sheeple who are so convinced of their own helplessness and so convinced of their inability to educate themselves using the finest information network that has ever appeared in all of history (the Internet) that these things might as well be true even though they are false. I don't know which is more worthy of blame, the public schools that teach (train) them to be this way or the people themselves for failing to question it and failing to push their own boundaries and see for themselves how real they are. Still, I should be more constructive about how I point this out and you did well by making that clear.
I have installed Linux on an HP iPAQ hx4700 PDA (624MHz XScale PXA270, 64Mb RAM, 128Mb flash, 480x640 screen). As others have pointed out the main problems are finding (1) a boot loader and (2) drivers for your device. In the case of the hx4700 these problems were already solved for Familiar Linux (familiar.handhelds.org); SDG Systems produced a boot loader and others produced the kernel patches and drivers. A more generic boot loader is HaRET (Handheld Reverse Engineering Tool), a Linux bootloader which works from the Windows CE environment. I haven't used it myself because I wiped WinCE off my iPAQ years ago. Drivers and platforms for ARM devices are being developed for the Linux kernel all the time; check out the source code under ./arch/arm. But you may not find exactly the right combination for your device. Being a kernel hacker helps!
As for a Linux distro, I first used Familiar Linux. But that is no longer actively developed. So I switched to Angstrom Linux (www.angstrom-distribution.org). But that doesn't offer the latest version of the Mozilla Fennec browser. And in both cases I found the desktop environment (e.g. GPE) to be too resource hungry.
So I have now rolled my own distro from the latest software sources. In particular I am using a window manager called PAWM (Puto Amo Window Manager), which is small and perfect for a device without a keyboard, and fennec-2.0a1pre built from bleeding edge sources. Yes, they do actually work in 64Mb of RAM! It does take some effort to port, configure, debug and fix the software, but it's fun to do.
I've got SeaMonkey running just fine (if a bit slowly) on almost anything besides Flash content. This is on PuppyLinux 4.0, on a Pentium 1 with 64 Mib of RAM (2 used up by integrated graphics.) Although this is an older version of SeaMonkey from before it used XUL.
The problem with portable computing devices -- at least the ones that aren't tied to an expensive cell plan -- is that they are such narrow margin markets that few manufacturers are interested in them. Let's say that you want a lightweight, long battery life, portable computer with a full-sized keyboard to do actual work on: word processor, spreadsheet, or for the more technically inclined, a text editor and a copy of gcc, and you don't give a shit about watching video or browsing Flash-heavy sites.
Good luck with that.
It's not that there's any technical barrier involved here. You could do all of that just fine on a 90MHz Pentium fifteen years ago, or even a 50MHz 80486 twenty years ago. Odds are that the processor and memory in a third-rate cell phone could blow those specs away. Add a real screen and a keyboard, and you've got a device that could retail under $100. Of course, that means that it would probably wholesale for around $40, and the manufacturer's profit would likely be a couple of bucks, but only for the month or two it would take every factory in Taiwan to rush out clones. And that's provided it wasn't stillborn because every clueless tech "journalist" started bitching about how you couldn't watch video or play the latest games on it. Frankly, you can't really blame the manufacturers for not wanting to jump on that wagon.
So instead, we get the overpriced toys of the netbook world which, while capable computing platforms in the abstract, are so crippled by their toy keyboards that they're basically DVD viewers with built-in web browsers. It's like the final, terrifying revenge of WebTV.
I suspect that if you want something else, you're going to have to find an otherwise suitable netbook and substantially modify the hardware yourself. Personally, I've been giving serious thought to stuffing the guts of a netbook inside of a vintage IBM Model M keyboard and building a custom cover for it.
Proud member of the Weirdo-American community.
is because ARM systems so far are embedded systems.
PCs are easy because their behavior is very simple and effectively, hasn't changed much since the beginning. But ARMs are a dime a dozen and used in various things from lightweight controllers to cellphones. Your PC might very well have several ARM processors inside it.
As a result, every ARM system is different - the memory map is different, the interrupt controller is different between SoC vendors, peripherals are located at different spots, etc. The only real constant is that ARMs boot at 0x0, but many SoCs have boot ROMs that are mapped at that area, which load a bootloader off storage at some arbitrary memory location and jumps there. End result, on ARM, you need to build a kernel/bootloader that's specific to your hardware.
On a PC, it's pretty much a monoculture and you know where things are in physical memory space. Things are located at well known addresses. On a PC, then, it's effectively the same architecture. That's why there's so many OSes available because the basic kernel needs are all the same across every PC, ranging from low power embedded systems to super 128-core behemoths - you know where RAM starts, how the BIOS will load you and where, how the interrupt controller, timer hardware, etc., work, and how to talk to more advanced peripherals via interfaces like ACPI. Hell, about the biggest change in PCs is the slow move to EFI based firmware, but they implement a BIOS compatibility module for backwards compatibility.
Try writing a program where you don't know where you're going to be located in memory, hardware you don't know where it might be located, interrupt controllers that can change wildly, etc without requiring reconfiguration and recompilation, and it's impossible. That's the current state of ARM systems...
"should" is a weasel-word having no place in specs...
Evidently you've not read too many specifications, then, because it is absolutely nothing of the sort.
I think you'll find many, many specs not only use "should", "may", and other such words, they actually go to some lengths to provide precise (and useful) definitions for them before doing so.
(For those of you playing along at home: I've noticed that use of the term "weasel-word" is usually a cover for "I can't be arsed to do my homework, so I'll just parrot something I read on Wikipedia".)
Il n'y a pas de Planet B.
The problem with changing what an arm device runs is in the bootloader that arm devices run. What most arm devices have is firmware that not only configures the CPU and other devices but loads the OS. Unlike a PC where it loads some code off the first sector of the drive most arm devices actually have the code to load the file system, put a file in memory, and execute it. This is great except there is no standard on how to do this and can be configured from very easy to change(i.e just change the file it loads) to very hard(i.e the firmware checks the file checksum). Your best bet is to do some googling on the device and see who makes the CPU. Then google and CPU and you should find what the standard firmware the manufacture uses. Next you need to hook a serial device(most devices have these just no serial port on the board, you need to sodier it on). Then you can start hacking away. Marvell based devices are great since the OpenRD and Netplug devices have plenty of documentation and they all use the same boot loader and such.
So here's a little more background for those who haven't followed development of it closely:
MeeGo is the arranged marriage of Intel's Moblin + Nokia's Maemo.
MeeGo is still under heavy development, and although source and builds are available, everything is still experimental.
The steering group is "planning [a] release of MeeGo version 1 in the second quarter of 2010", according to the FAQ. It'll be here soon; don't start making plans to run it as your daily OS until v1.0 is actually released.
To give a taste of how raw development of the OS is right now, even basic tutorials on how to write a "Hello, World" application aren't useful to the community yet as most tutorials depend upon the MeeGo SDK, a component that hasn't yet been released by Intel.
But what you care about most is: "Will it run on my hardware?"
The best place to determine that is on the Devices page on the MeeGo Wiki. If you find that you can run the current development images on a different piece of hardware, please make a note of it on that page.
coding is life
I haven't tried with 128MB, but Etch + E17 runs dandy on a Pentium 2 with 192MB of RAM.
look! it's a bird, it's a plane, it's....a girl? yes, a girl browsing Slashdot on Linux
At the Ubuntu Developer Summit last November, one of the Ubuntu ARM guys did a plenary presentation where the machine hooked to the projector was an ARM machine running Ubuntu. I also saw Jonathan Riddell looking for a USB mouse so he could install Kubuntu on an ARM machine he'd been handed.
look! it's a bird, it's a plane, it's....a girl? yes, a girl browsing Slashdot on Linux