ARM architecture going more to desktop style applications had been in press frequently during the last weeks. On top of were press releases of ARM and canonical officially announcing an ubuntu port in one of the next releases for the ARM architecture. Applications are more of type nettop or advanced PDA like the nokia n810, than what is currently known as traditional embedded applications (just to name a few examples).
This has been due to the fact that licensees of the ARM architecture, big semiconductor companies from the Top 10 list, have begun shipping a new generation of “mobile PC in the pocket” of System on a Chip semiconductors. They include now a really high clocked ARM core, DSPs for Video/Audio processing that can even decode HDTV streams, and OpenGL 2.0 capable HW engine and the peripherials included to build PDAs, mobile phones or nettops. All that within the energy budget of a mobile phone, and not of a Desktop PC. The google G1 phone had been one of the first products of this generation, although its software uses these features only in the beginnings.
What now does this all have to do with the openSUSE Buildservice and openSUSE distribution? As you might already guess it, we haven’t been sleeping either. And I am not a advocate of ubuntu on an .opensuse.org website. So read further what we have done so far.
Here is the latest update on supporting Cross Development for other architectures than the usual x86 and powerpc 32/64 bit architectures currently supported in the OBS and the openSUSE distribution. You should be aware that we put together an updated roadmap for OBS development, which now also mentions Cross Development. Other places like the main OBS wiki page have also been updated accordingly. To sum it up, we are now able to handle a number of preexisting linux distributions in the best spirit of the current OBS now also for ARM. There is ongoing work so OBS Imaging and zypper are also working for ARM targets. For quite a while now, there have been packages for Cross Development in build.o.o in the openSUSE:Tools:Devel development snapshots project.
The nokia sponsored Mojo project had been also been there (e.g. with similiar ideas wrt. to what will be embedded in the future) for quite a while now, first unnoticed from us, been approaching the cross development issue quite similiar to us. But not with the power of the openSUSE Buildservice and all its capabilities. They had been porting, beginning with Debian @ ARM, a complete ubuntu desktop distribution. That involved more “handy work” like we need to do with OBS according to the conference slides published by the project. So here comes to my mind the following joke: What is this? Answer: the new Nokia HAL9000 Buildserver for ARM linux distributions! But read next why we might not end up like this.
In order to implement old and current ARM processor types, I had to put in another processor type into the OBS. There was the old armv4l type, that is used for ARMv4 generation of instructions on the OABI (old ABI), little endian. With ARMv5 instruction set, also a new ABI had been introduced called EABI. To sum it up, armv5el denotes ARMv5 EABI little endian with softfloat, whereas armv4l denotes ARMv4 OABI little endian with softfloat. This had to be introduced, because these two formats are not compatible and thus not combinable. armv5el was introduced to support multiprocessing, ntpl and mixture of thumb and non thumb modes. A kernel compiled sufficiently can execute both types of executables, although this would require to run the system like a biarchitecture, where all shared libraries need to be kept twice.
Debian had been tradionally supporting an ARM version, so it was the usual start for testing (also it provides a long history of package versions from “quite old” to “very new” i needed for testing the QEMU). Currently working in OBS, and using a patched QEMU, are:
Fedora (as provided by Fedora on the Linux UK ftp server). Currently working in OBS are:
Ubuntu (as ported by the Mojo Project – there seems to be an official arm port with one of the next ubuntu releases). Currently working in OBS are:
The developments are already going so far that one of the manufacturers of ARM based chips, Texas Instruments, is using a community approach to help but also to gain from the community. They created a development board of the current chip generation called “beagle board”, that is suited for everbodies use. The community for it is located at beagleboard.org. Texas Instruments now have also a youtube based marketing, so you can see this baby in action.
But now to the delicate question to you, the openSUSE and openSUSE Buildservice user. You might have noticed that two things are missing in what I am writing:
The latter can now be implemented with the OBS, since OBS is already capable of building the complete openSUSE distribution. When openSUSE 11.1 is released, there is a good time to lean back and consider what we should do next.
Do you have a use for this and should we support this officially?
Both comments and pings are currently closed.
With all the arm boards emerging into the market there is definitely a need for an arm port of OpenSuse. Not only for devices from Nokia and the like but for hobby and commercial boards like the gumstix and beagleboard. There is to be a wave of embedded devices in the coming months/years that will probably end up with every toaster, fridge and car in the world being on the internet, simply because it has become easy with these boards, and it will only become easier.
Thats right, world domination of the embedded arm board is on the horizon.
I for one welcome our new, tiny yet powerful overlords.
errrr…. Maybe I got caught up in the moment but still I think they’ll get used a lot. 🙂
Sure! I have multiple Linksys NSLU2 (ARM) running Debian/ARM, but I would prefer openSUSE.
Toradex have wonderful DIMM-size ARM/XScale boards. If this goes offiacialy I could try get them supported out of the box :P.
When can we start ?!
I really would like to see openSUSE as a versatile Distro also on the next generation ARM cores!
The Pandora is an example of an ultra-portable ARM-based computer (it’s about the size of a Nintendo DS). Its main design goal is to emulate old computer systems like Amiga and PSX, but it has WiFi and a keyboard so it can be used as a good mobile internet device as well. I think openSUSE would need some tuning to fit well in 256MB of RAM and on a 800×480 screen, but having all packages available from the build service would certainly be a good start.
I like it! While you’re at it, could you add in the Mojo 8.04 arm5el, arm5elvfp, and arm6elvfp distributions? They are a lot more stable than 7.10; we only built that one as a stepping stone to get to 8.04.
before we do that we need to fix some QEMU issues. I am discussing that with QEMU people. It seems there is a problem with arm6 in general. Also, we optimize by using QEMU “User Mode” if possible. To be honest, I have already all these versions put im my OBS here, but published on those targets that are working. And I have a resource shortcome in my local OBS here => need RAM and worker nodes.
being a die-hard zaurus fan I look forward to putting openSuse on my SL-C3100! We’ve already got
– original Sharp
– debian & ubuntu
so oS would be great!
do you know what arm processor the SL-C3100 got inside?
I’m a developer for an embedded OS called pdaXrom. We’ve been looking around to find a supported OS to port to ARM. If this gets anywhere im willing to assist in the project.
MIPS support? There are new netbooks coming out using the Longsoon processor: http://www.linuxdevices.com/news/NS2928309621.html
I wanted to give a status of cross development, especially what is currently working. We are trying to get also sh4, powerpc, mips running. But currently, the QEMU emulator is under heavy rework in the code generators, so I can’t get the OBS worker or the build script running for these target environments. I give from time to time status to QEMU developers for that.
You can try to get feedback from QEMU developers on that, try to motivate them to work faster or you can yourself fix QEMU. I any case, it is not an easy effort…
Yes I develop for embedded systems i.MX27 ArmV5E EABI Currently I use openSuSE 11.0/Eclipse for all my cross development but I run this thing with ATA interface 2Gig Flash USB 256Mbytes DDR. I have a keyboard and VGA LCD on my units. As you see we got put into the Kernel as of 2.6.27 /arch/mx2. So you are talking about walking up my development tree.
Nothing could please me more than to help see openSuSE go native on my platform.
Could you give me a link to “your platform”? What eclipse plugins are you using for embedded development? Is it a system with embedded java inside?
http://www.lufkinautomation.com/sam1.asp (Next Platform.)
Eclipse 3.1 and up SVN CPP plug in’s etc. But the i.MX27 is as useful as the beagle board except it has direct LCD drive not DVI.
General update on openSUSE on ARM and OBS for ARM:
OBS for ARM:
We have merged this week the code for Cross Development in to the OBS Subversion repository. After all the dust of the combined OBS 1.5 and openSUSE 11.1 comes down, we will make an official OBS 1.6. For the build.opensuse.org OBS, we need to solve the issues of running QEMU User Mode in XEN. When this is solved, we are ready for ARM support in the official OBS.
openSUSE on ARM:
As from openSUSE 11.1 on, openSUSE distros will be build and released with the OBS. The same should hold true for the ARM versions of openSUSE. As a preparation, I will set up a testbase of existing ARM capable packages, since Debian, Ubuntu and Fedora have already working ports for ARM. Our goal should be to integrate changes into the Factory.
We will set up some wiki pages on the whole thing.
Help would be appreciated to improve QEMU quality for the Linux User Mode emulation. Currently, QEMU is under heavy rewrite, with the new code generators beeing added to it. Apart from ARM, QEMU is not very usable with the new things. That is also the reason why I did not talk about other Architectures like MIPS, sh4. If you have a solution here, please tell me. The packages for all that are in the OBS already. I build 2 versions of QEMU: one with the old gcc 3 compilers with old code generator in QEMU, and one for the new tcg that can be build with gcc 4.
One final remark: we have done it. Cross Development is now official part of OBS, and also in a first version included in OBS 1.5: http://lists.opensuse.org/opensuse-buildservice/2008-12/msg00011.html