Canonical is suiting up for the coming microserver wars, confirming that Ubuntu Server 11.10 will run on ARM chips. Just under three years ago when ARM-based netbooks were taking the PC market by storm and iPad tablets were just a gleam in Steve Job's eye, Canonical, the commercial sponsor of the Ubuntu Linux distro, made ARM …
I hope they work on cross-compilation
FLOSS stuff will compile on damn near anything - once you have a working binutils, working GCC back end, GLIBC port, and working Linux kernel you can *compile* damn near anything.
But try cross-compiling - building for ARM on your nice fast i7 rather than on your slow OMAP - and you will find that many packages don't cross-compile worth a crap. Autoconf encourages people to assume that if they want to know how big a $foo is on the target, just build a test program to find out: which works if and only if the machine building the code is the same architecture is the same as the target.
And building a cross-compiling GCC/GLIBC? Douglas Adams preserve us - getting the Babel Fish is trivial compared to getting a successful cross compiler built. The GCC guys point fingers a GLIBC, and the GLIBC guys point fingers at the GCC guys, and each says "well, we don't do a lot of bootstrap compiles, let alone bootstrap cross compiles."
I can only hope that Canonical (and better still, Debian) start cracking some heads and making cross-compilation simpler. I don't want to have to build Apache on an ARM, just *run* it on an ARM. Make EVERY package be nothing more than "./configure --with-sysroot=foo --arch=arm", PLEASE!
Just for devilment
How does NetBSD compare?
@Timothy Morgan - three years ago ARM notebooks were unfortunately not taking the world by storm. There were some concept builds but nothing to buy. Maybe this time next year they'll finally be around.
google debian multiarch
"I don't want to have to build Apache on an ARM, just *run* it on an ARM."
Debian (and even more so, Canonical) are in the business of providing for users. So that'll be apt-get install apache
(having compiled apache - including lots of experimental stuff you won't find in apache tarballs, let alone debian/ubuntu packages - on ARM, I don't see the problem with the native platform).
But if you want to improve cross-compilation, I'm sure compiler folks out there would be receptive to patches.
You make a few good points, but things aren't anywhere nearly as bad as you are making them out to be. Trust me on this - I'm currently working on porting RHEL6 to ARM (since RH aren't doing it, and Fedora has way too short a shelf-live). Porting things isn't that hard, and you don't actually have to bootstrap things from scratch - most of the hard work has been done a long time ago. The vast majority of packages "just build" if you rebuild them from src.rpms. The things that didn't I got fixed in a few hours spread over a week (glibc, gcc and python were the show-stoppers, but it only took relatively few patches to make things build and work). And that's for distro porting - from the user poing of view it'll be a simple matter of "yum install <packagename>".
If you are worried about compile times, it depends on what you are trying to build. Full RHEL6 gcc package takes 3.5 days on SheevaPlug (1.2GHz Marvell Kirkwood, single core). OpenOffice probably about double that. But most other packages compile in minutes or hours. And there is also much faster hardware out there (e.g. TrimSlice with dual core Tegra2 (Cortex A9 sans NEON)).
Then there is distcc (you can get 1GHz/1GB Freescale Cortex A8 boards for ~ £80) so you can build things on a build farm.
And you can cheat a bit, too - you can use distcc to direct compiling jobs at your x86 iron with a cross compiler.
"Full RHEL6 gcc package takes 3.5 days on SheevaPlug"
You are a star !
Google it in a month or two, the distro is likely to be rolled and ready to go by then. :)
Reminds me about the time ..
I wrote a 6802 assembler in 6809 BASIC. Took ~2 hrs to assemble ~ 500 bytes
ARM cross compiling must have got worse then?
Care to say a bit more about what doesn't work for you?
'Cos I was doing the cross compilation thing quite happily a couple of years ago with an Intel (yes) Strongarm as target and a fairly standard Linux/x86 as host with a prebuilt set of tools supplied by the vendor of the (Intel IXP422) ARM-based comms box I was targeting. MontaVista was the underlying Linux on the target, building kernel, drivers, apps etc, was just fine. Fortunately someone else had already built Apache (and various other things) for me, which was really quite helpful. I was building something in the same kind of market sector as an upmarket SoHo router (kernel, drivers, busybox, apps), rather than a general purpose computer with a full Linux, but would it have changed things all that much?
Initially I had Windows as host too simply to keep IT happy but mingw soon got far too boring.
I guess the arrival of 64bit Linux hasn't exactly helped here, given the differing sizes of char * between host and target, but then who needs 64bit anyway (for most things).
At least one company I know does not only cross compilation but the three way variant - build a compiler on 64bit Linux/x86 for the plebs to use on 32bit Windows/x86 targeting a different OS on a different 32bit chip. Not great fun, and a bit of a waste of time, but it conforms to the corporate IT policy of not using anything that isn't Wintel.
There are plenty of other companies that can manage a basic two-way cross-compile, and for those that are struggling with it, there are plenty people out there who can help (maybe some of them want money?).
Would you like your ARM big endian or little endian this week?
Building the tools to build the tools to ....
If you buy a devel package from somebody, they've done the hard work of building the tool chain. Of course, it will be an older version.
Now, try building the latest binutils (easy), GCC and GLIBC (damn hard) from scratch, so that you can dig the product up 10 years from now, build the tool chain to run on what you are using then (rather than hoping to be able to dig up the machines and run-time you were using 10 years ago).
Add to that building J. Random FLOSSProject as cross compiling, such as trying to build up a non-trivial runtime environment. Example: ACE-TAO CORBA doesn't like to cross compile because it tries to determine structure alignment for the martialing code by building and executing programs.
Ten years? The problem is at least three decades old.
The same place above that's doing the three way cross is routinely supporting stuff with a twenty year service lifetime (gcc barely existed twenty years ago). They are building their own gcc, and a custom runtime from scratch, but it makes little attempt attempt at doing complex multiplatform stuff, perhaps wisely so.
Multiplatform software has been non-trivial for over three decades or more, e.g. back in the mid 1980s when things like ASN.1 were invented to solve the kind of data representation problem you mention, and largely did so, together with the stuff on top of the lower layers.
Three decades later, technology managers still seem to be struggling with this kind of thing (assuming what you say is true, and I can well believe it). Some stuff still really is rocket science.
Multiplatform stuff done right, and in particular distributed allegedly-realtime multiplatform software done right, isn't easy, whatever some of the vendors and academics may say.
I'd suggest that cross compilers themselves aren't necessarily the big issue. Just as big an issue is braindead architectures and implementations (such as reliance on stupidly complex and ultimately broken configure scripts to "determine structure alignment for the marshalling code by building and executing programs" - executing on the host rather than the target!).
Where's the dinosaur icon?
"...ARM-based netbooks were taking the PC market by storm..."
Either I'm very tired and missing something or this bit doesn't make sense. Googling for "ARM-based netbooks" results in several articles from two years ago saying they'll be here any minute now, and, er, this one.
I think the meant ATOM based netbooks. There is one ARM based from Toshiba, and a few other ones from small companies, but no company seems to have built one with a good enough spec that will run Linux with no issues.
Please will some company build a 10-11 inch netbook with a decent ARM/GPU, SSD, Wifi, 3G etc! I would buy one yesterday.
Was thinking much the same
Some of us were hotly anticipating said ARM based netbooks, but the very few that did arrive were two years after they were hyped and never really took off.
Also - how is any of this article news? Ubuntu have had ARM support on and off for ages. I don't get the impression it's that difficult for them to do, mostly because they build on debian which has more ports than you can shake a stick at.
Not quite a Netbook..
It may not exactly be a netbook, but the Asus Transformer port of Ubuntu by Lilstevie is humming along quite well. Once it's 100% complete it'll be a pretty decent Netbook / Tablet which runs on a Tegra2 (ARM based) chip.
Not exactly Netbook priced, but 16 hours of battery life, plus the ability to detech the keyboard & use it as only a tablet makes it pretty good in my book. 3G model coming soon as well..
ebay has 'em by the dozen
I was looking recently on ebay for a cheap netbook (a semi-disposable media player/games thing for the nipper), and had to wade through tons of ARM-based, WinCE-running netbooks.
So, not by storm, but there's certainly flotsam washing about those interwebs.
AC100 and Genesi Smartbook
Both have a decent enough GPU for HD playback. SSD is built in flash, but the performance is decent. Both have WiFi and 3G available.
I have a Smartbook
It's fun for fooling around on IRC and as an SSH terminal. You can also just barely use it for web browsing, if you install NoScript. The first thing I did was eliminate GNOME, though, and switch it over to running Xmonad, because cycles are precious.
According to Genesi, their GPU *can* do HD playback but I have been unable to play a video at full speed even in sub-HD resolutions. I don't think their X drivers are quite up to snuff yet.
Where I work
Would buy 40 yesterday (we need 2 class sets).
So Cobalt was just ahead of their time....
Too bad Sun killed them off.
Finally a server farm to compile natively on. Now if we can standardize the boot up we'll be going in the right direction. UEFI anyone?
Would the OpenWRT toolchain work at all in this scenario? For what little I've used it (so far) it was a very easy setup under Ubuntu 10.04 for building both x86 and ar71xx bits. As I understand it, the Cotrex is an ARMv7 chip. Should work then, no? Or am I missing something basic?
Canonicals lack of direction.
They seem to be making it up as they go along, as I clearly remember Canonical giving me the big FUCK YOU when they dropped ARM support for my Sheeveplug from Ubuntu 9.10(Karmic) ...
I have since moved to Debian anyway, who didn't leave me in the lurch with their knee-jerk decisions...
They are making it up
I've been trying for weeks to get a laptop stable on Ubuntu and the last straw was last week when i did an apt-get update on 10.04 and was able to login then lost the touchpad and the keyboard.
Catch 22, with no external mouse or keyboard available.
So i made some bootable discs including one for 11.04 and had the same problem after reinstalling.
It turns out that someone changed the Synaptics package and released it into every version and didn't bother to test it properly.
Check the forums! Add that to endless wireless problems and......toys out the pram.
Now i am running OpenSuse and life is much better!
"Now i am running OpenSuse"
Always has been for me !
Canonical, Ubuntu, SheevaPlug
*points you in the direction of Fedora for ARM* :)
OpenSuse for me too, but
the corporate IT types seemingly prefer RH (or Fedora for cheapskates), and the hip-trendy types have bought the Ubintu story, at least until recently. (And there's debian as well for the l33t geeks).
And then there's SusE. Even if I can't spell it or pronounce it, it just works (at least as far as 11.3; I see no reason to move to 11.4 yet).
I've got 6 machines running various version - very different hardware from dual-core atom to dual core AMD to mCeleron. All have installed/run flawlessly.
Makes sense somehow. We had the "microcomputer" after the mini, maybe the "microserver" is next. On another subject, perhaps the microserver will become the standard "always on" device in the home, replacing games boxes, media servers and the chunky servers enthusiasts have in their lofts. I have plenty-fast webserver at home, it takes only 4 watts. Plug computer, runs Debian.
bigger faster spelt right
That's surely Cortex-A9 not some margarine brand.
And it has 32 to 36 bit virtual/physical mapping to provide more than 4Gb RAM
- common name for trichilemmal cyst or pilar cyst"
... sounds about right.
Stop right there!
"Just under three years ago when ARM-based netbooks were taking the PC market by storm"
This is *just* an outright lie!
Lost at sea
"Just under three years ago when ARM-based netbooks were taking the PC market by storm"
I wanted one, but couldn't find anybody to sell me one, so the storm must have swept them out to sea.
Not lost at sea
Google AC100 (and google for instructions to put full fat Linux on it instead of Android - I have one and they are pretty awesome) or Genesi Efika Smartbook. They are very much available.
Really? I was hoping for the frankly more descriptive "Onanistic Ocelot"
You have to wonder....
Why did these ARM based netbooks never really appear? Anything to do with Microsoft by any chance since they would be running Android AND/OR Proper Linux?
'You sell any ARM based netbooks and we will cut your Win7 discount'
Microsoft AND Intel, I think Sherlock will find
Sell ARM netbooks and lose a chunk of whatever marketing support etc you get from Intel.
There was apparently something Intel-related and odd going on with respect to screen sizes and chipsets too which I only ever caught the fringes of.