Archive for the ‘linaro’ Category

May 22, 2013

Linux on ARM Track at LinuxTag 2013

The 19th Annual LinuxTag event kicked off today at the Berlin Exhibition Grounds in Berlin, Germany where event planners are expecting over 10,000 visitors from all over Germany and the UK.

Andrea Gallo, Director Linaro Enterprise Group (LEG)

Andrea Gallo, Director Linaro Enterprise Group (LEG)

For Linaro though, it’s tomorrow, Thursday, 23 May that’s the big day at LinuxTag.  If you are in Berlin, interested in Linux on ARM and want to connect with developers from Linaro then you are in luck as Andrea Gallo, Director of the Linaro Enterprise Group (LEG) is set to open the Linux on ARM/Hardware in Action track. Gallo’s talk will explain how the governance works for both the core Linaro activities and the group specific ones, will describe the latest achievements in the various sub-teams, the mid-term roadmap and the resources available to all community developers to get involved and contribute.

Sessions given in English include:

Linaro Expands its open source collaboration model with the new Enterprise and networking groups – Andrea Gallo (Linaro)

Xen on ARM – Stefano Stabellini (Citrix)

Linux on ARM servers – André Przywara (Calxeda / Linaro)

Open- Source embedded GNU/Linux Plattformen – Benedikt Sauter (embedded projects GmbH)

OpenPhoenux Smartphone: Learnings from the past and ideas for next year – Nikolaus Schaller (Golden Delicious Computers GmbH&Co. KG), Lukas Märdian (OpenPhoenux.org), Christoph Mair (OpenPhoenux.org)

More Information

More information about the full program being offered to attendees of LinuxTag can be found at:  https://www.linuxtag.org/2013/en/program/programm-pdf.html

More information about Linaro can be found at: http://www.linaro.org/

Posted in Industry, linaro | No Comments »

May 11, 2013

Call for ALSA UCM profiles

When I bought Samsung ARM Chromebook few months ago I had no idea about UCM profiles and burnt speakers (left is dead, right is resting)…

This was good lesson. I learnt more about how UseCase Manager works, took profiles from ChromeOS and added them into Ubuntu so other users will be a bit more safe (due to lack of testers it took months to merge it into “precise” and “quantal” releases).

During last months I had discussions with some Debian, Ubuntu, Fedora developers about how to solve such problems and how to keep UCM profiles shared between distributions.

In meantime Liam Girdwood pointed me to (not used) UCM git tree at ALSA Project server. So finally I spent some time and sent Ubuntu ones for merging.

I also got newer profiles for OMAP4 devices and some updates for Chromebook ones.

The idea is to collect UCM profiles, keep them in one place and share in each distribution packages. So if your hardware has profiles created then join us to make users life easier.


All rights reserved © Marcin Juszkiewicz
Call for ALSA UCM profiles was originally posted on Marcin Juszkiewicz website

Posted in ALSA, arm, chromebook, default, fedora, linaro, ubuntu | No Comments »

May 10, 2013

pocl: ARM Chromebook: enable Khronos ICD Loader

.. so I assume some of you bravehearts would’ve tried the earlier post about getting pocl to work on an ARM chromebook. I mentioned there that initially, –disable-icd is a better option.

In this post, I’ll outline how to get Khronos ICD Loader working with pocl (thanks to [1])

[Assumptions: my pocl directory is ~/code/pocl; and I unpack khronos ICD loader into ~/code/icd - please adjust according to your environment]

  • Download and unpack the Khronos ICD Loader from here: http://www.khronos.org/registry/cl/
  • Connect CL headers from the include directory of your pocl working area (eg ~/code/pocl/include) [2], to the ‘inc’ directory in the location where you unpacked
    • Either copy:
      • cp -rf ~/code/pocl/include/CL ~/code/icd/inc
    • OR, you could create soft link as well, like this:
      • cd ~/code/icd/inc; ln -s ~/code/pocl/include/CL . 
  • CD to the icd loader directory [eg ~/code/icd], and apply a patch thus:
    • patch -p1 < ~/code/pocl/tools/patches/khronos-icd-loader.patch
  • Build it with ‘make’
  • Copy the loader to a library search path:
    • sudo cp bin/libOpenCL* /usr/lib

Now, you should be able to tell the pocl build system to allow overriding the ICD search path with OCL_ICD_VENDORS environment variable like this:

export OCL_ICD_VENDORS="PATH_TO_THE_POCL_BUILD_TREE/ocl-vendors"

Now you can adapt your pocl configure to –enable-icd :)

Happy pocl’ing!

[1]: http://pocl.sourceforge.net/docs/html/development.html#khronos-icd-loader

[2]: make sure you connect the pocl CL headers *only*; the others don’t seem to work for me


Posted in Khronos ICD, linaro, OpenCL, pocl | No Comments »

pocl: ported on ARM Chromebook

pocl [1], is a portable Open CL implementation.

During some fun-at-work last week, we [Tom and I] decided to play around with it a bit. We thought of using it over others, since it is a good community-driven project, and also because it was already running on another ARM platform (pandaboard).

Since we had recently started using Ubuntu on our ARM chromebooks, this seemed like the perfect dev platform to experiment on!

It soon turned out that there are some mismatches, so although we were able to build it, we had some trouble running most of the example tests.. – clCreateBuffer was failing!

Tom suggested that there might be flag-mismatch issues, for example with float-abi, etc between clang and C. Some more digging revealed that indeed, that seemed to be the issue: the target for llvm / clang was not being set correctly, and so clang / llvm would take defaults (I *really don’t understand* why llvm would default to an ARMv4 machine!!), which wouldn’t match up with the chromebook environment.

Also, it seems since some time Ubuntu on ARM has started using the gnueabihf (hard float) toolchain by default, so the flags had to be adjusted. Not just that, if the CL kernel compilation was broken down into multiple steps, we had to make sure all steps had same (or similar, eg in case of ld) flags to ensure compatibility.

I, being a comparative n00b on most things userspace, took some time to figure out the changes that were required to get pocl working on the chromebook, but in the end, some success, and a merge-request to the pocl upstream community followed :)

So, here are the current steps needed to build pocl on ARM chromebook:

[my environment: pocl from trunk + my changes [2]: 0.8-pre; ubuntu 13.04, running on ARM chromebook; llvm/clang: 3.3svn version, taken from trunk last week of April, 2013]

1. Export the symbols required:

export POCL_BUILDING=1
export CLFLAGS="-mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon"
export TARGET_CLANG_FLAGS="-mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon"
export HOST_CLANG_FLAGS="-mcpu=cortex-a9 -mfloat-abi=hard -mfpu=neon"

* If you’re using a released tarball of the pocl source and not the trunk version from bazaar, exporting POCL_BUILDING is not needed.

2. configure, thus:

./configure --host=armv7l-unknown-linux-gnueabihf --disable-icd --enable-debug
 --enable-testsuites=all

you could potentially leave out –enable-debug, but –enable-testsuites is recommended; –disable-icd makes it easier to debug in case of any issues. (another post coming up on setting a dummy ICD)

3. make:

make check

‘check’ will make make create and execute the testsuite as well.

That’s all! Go ahead, and Enjoy!

Oh, and by the way, if you’re interested in similar work on things like general purpose computing on GPUs on ARM SoC devices, you could also join the linaro-gpgpu list[3].

Cheers!

~me.

[1]: https://launchpad.net/pocl

[2]: https://code.launchpad.net/pocl-linaro-eval

[3]: The list can be found at http://lists.linaro.org/mailman/listinfo/linaro-gpgpu


Posted in chromebook, linaro, OpenCL, pocl | No Comments »

May 9, 2013

Renato Golin on EuroLLVM, Linaro Toolchain Team and More

Renato Golin, Linaro Toolchain Engineer

Renato Golin, Linaro Toolchain Engineer

Linaro developers and engineers can be found at various events across the globe.  This week we catch up with Renato Golin of the Linaro Toolchain Team who recently attended the 3rd Annual EuroLLVM event which took place in Paris, France on April 29th and 30th, 2013.  Curious about EuroLLVM, I asked Golin for a few more details about this event and more.

Question: What is EuroLLVM and what was your role in this event?

EuroLLVM is the European version of the LLVM Developers Meeting, in US, where we gather to exchange ideas, present the progress of our projects and discuss the future of the toolchain. This time we had many people from the US, including in the speaker list, which is a good indication that this event is making its mark on the LLVM world.

Back in 2011, I organized the first EuroLLVM in London and, following the success we had a 2012 version was organized by ARM. This year, a team of volunteers in Paris got the lead. I was more on the sidelines than organizing the event, helping with lessons learned, getting the badges, taking the pictures, running around solving last minute problems, etc. The credit this year goes to the core team in Paris, they’ve done an amazing job.

Question: For those who may not know why this event is important can you tell people a little bit about LLVM?

LLVM is an open source toolchain, much like GCC, but with a permissive license, a modern C++ codebase and the possibility of using JIT compilation, which seems to be getting a lot of traction in the graphics community. Another crucial feature, in comparison to GCC, is the ease to add new functionality, even if you keep them private, which makes it very desirable for prototyping or commercializing products on top of it. LLVM has support for a number of architectures, from ARM to SystemZ, and can produce pretty decent code when compared to most modern compilers.

Most people, when talking about why they have chosen LLVM for their personal project, commercial product or academic research, mention how easier it is to get along with the LLVM community. LLVM is young, but it’s moving at a faster pace than possibly any other compiler and part of that comes from how the community works. There is very little protectionism on legacy code, and people are generally welcome to submit patches, which get reviewed quickly and constructive reviews are done. I’ve been following the list since 2009 and don’t remember any major flame or aggressive emails through the list, even when people had horribly messed up the code.

Question: Can you tell readers a little about your role at Linaro?

My current role is to understand how LLVM fits around the ARM ecosystem and what we can do about it. For now, we’re mainly interested in understanding what LLVM can and cannot do, so that we can create a TODO list and present to the community. It’s only when we know that the issues are, how easy it is to implement them and how important it is for the community that we can correctly prioritize and work on it.

Our main focus will be around the Cortex-A* platform, mainly A9 and A15, paying special attention to automatic vectorization (NEON), ABI and cross-compilation issues, as well finding relevant benchmarks for ARM platforms. We want LLVM to perform well where people will use it, not just to look good in the paper.

Question: With Linaro Connect Europe happening in July what can attendees expect to see on the LLVM front?

The Linaro LLVM team has just started, so I can’t promise much. I’m working on the 3.3 release now and will run some benchmarks after that, hopefully before LCE, so that we can get at least some numbers out to share with the other Linaro teams, members and the general ARM community, so that we can focus on the right things up from the start.

The only thing I can promise now is that we’ll listen very carefully to all suggestions, so if anyone has any special requests, please make sure you get them to us, or we’ll never know how important it is for you.

Question: What else would you like people to know about you, EuroLLVM, or your work at Linaro?

That’s about it. ;)

More information about the Linaro Toolchain Team can be found at: https://wiki.linaro.org/WorkingGroups/ToolChain

More information about LLVM can be found at: http://llvm.org/

More information on Linaro Connect Europe 2013 can be found at: http://www.linaro.org/connect

Posted in Community, linaro | No Comments »