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.
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.
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.
"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
"Intel has already won"?
Let's see: you can currently buy a capable Atom based mini-ITX board with a dual core processor for under $70 - sufficient system for a small office network server, workstation, and pretty much any common task. It's got lower power use than the competitors in the same price range as well as more performance. (In fact, the Atom boards are a bit cheaper than the cheapest Via and AMD board/CPU combos - and mostly fanless.)
Now consider that the latest Atom has a TDP of 2 watts, and in-use power utilization about average for existing smartphone platforms. It might not immediately/seamlessly boot Windows 7, but I'd wager a bet that someone will figure out how to get it to work on account of it being an x86 chip. And a common Linux distro might very well be able to install without too much kludgery, too.
This is something that just a couple years ago (when Atom first came out, there about) everyone said was impossible: Intel would never have anything that would compete with ARM processors on power utilization and performance. Yet these Mooreland CPUs appear to have just as much (if not more) performance than the latest, greatest Snapdragon and the iPad's SoC. Also consider how incredibly fast Intel came to market with this CPU (vs. the much more linear progression we've seen in the ARM platforms over the past decade).
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
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.
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...