Canonical Voices

Posts tagged with 'armv8'

Marcin Juszkiewicz

As I will leave Linaro at the end of May I would like to write a summary of current state of Linaro layers for OpenEmbedded.

At Linaro we have 3 layers:

  1. meta-aarch64
  2. meta-linaro
  3. meta-linaro-toolchain

First one is BSP kind. I know that it had some issues which affected each build which had it in BBLAYERS but I fixed those issues. I would like to thank Khem Raj for pointing me at those.

We have git version of binutils there due to some changes which were not present in 2.23 line. But use of this version is not required as builds are fine with OE Core one.

We have “tune-armv8.inc” in this layer as well. There was attempt to merge that into OE Core but “/lib or /lib64″ discussion started and at that time I decided to skip it. There are similar discussions at GCC and Glibc mailing lists. Once they sort that out OE tune file will be adapted by someone (I hope).

Rest of recipes can be split into 2-3 types. Few (like sysprof, emacs) just disable recipes for AArch64. Other have extra patches to add missing functionality or defines. And we have Linaro kernel for AArch64 there.

Second layer has ARMv7a(b) machine definitions used for our machine independent builds and some recipes.

There are no patches for OE recipes here. The only exception is busybox where we enable “dpkg(-deb)” command which we need for our tools used to merge rootfs with hardware support.

We have “recipes-extra” where we keep new recipes which may not be in a nicest state so are not yet merged into OpenEmbedded (or have no use there like “meta-toolchain-hhvm” one).

“recipes-linaro” is for our stuff. Images, automatic root shell on serial port etc.

And finally is toolchain layer. Everything here is related to gcc-linaro and Linaro binary cross toolchains (armv7a and aarch64 ones). GCC 4.6 and 4.7 is there but 4.6 one will be removed when 4.8 will be added into OE Core.

Who will maintain those layers after my leave? This was not decided yet. There are few guys at Linaro who know how to use OpenEmbedded but I think that most of them is outside of Builds and Baselines team.

If you have any questions then better ask now.


All rights reserved © Marcin Juszkiewicz
State of Linaro layers for OpenEmbedded was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Second day in a row I managed to get 8 hours of sleep like I was not able at Linaro Connect Asia 2013. There was no time for sleeping as so many things had happened.

This time I decided to go to Hong Kong on Friday to have whole Sunday for shopping or sight seeing etc. Also to make things different I went though Helsinki (was Istanbul in 2012). It was interesting experience to hear English language with Finnish accent. There were moments when during in-flight announcements I was not able to recognize when they ended Finnish part and started English one ;D

HEL was cold but only outside so once I got to terminal it was fine. Rushed though, passed biometric passport gate and got a seat with electricity to charge my Chromebook and phone. Flight was “fine” as usual but as it was during night I tried to catch some sleep.

Finnair’s crew had some problems getting in-flight entertainment system working so we could watch how Linux booted on those NSC Geode GX2 based devices. Due to copyright note in bootloader (redboot) I assumed that it is not older than 9 years. Very slow boot anyway with lot of text printed. They should show some splash + potential progress bar instead. But finally it started working. Provided in-ear headphones are much better than ones on Lufthansa flights.

Landed, got prepaid sim from “3″ network, met Andrea Gallo and we went to hotel. I had plans to go to the city center but was too tired for it. I also lacked HKD due to other layout of keypad in ATM :D

ATM keypad in Hong Kong

On Sunday we grouped and went to Shim Shui Po to do some electronics related shopping. Prices in Hong Kong are similar/worse than in Europe so I bought only few things which I had problems finding in low price at home: mini-ITX case (16€), Nexus 4 back cover (6.5€), case for Samsung Chromebook (7.5€) and some cables. There are still no USB 3.0 cables in wide selection ;( I also bought crappy dual sim phone for 10€ as I needed one to get my Polish sim on network.

I also did some shopping on Tuesday — this time on Ladies’ Market. It is one long street with lot of sellers with clothes, wallets, toys, phone covers, headphones and other gift like things of unknown quality. I left there all money I had but got gifts for everyone I wanted. Haggling there is a must as 40% of starting price is easy to get. And you do not even need to tell anything to get price lowered…

We also went to Shenzen, China for one afternoon but that’s story for separate post.

But I went there for connecting with people. And to discuss/present our work done in last cycle and to be done in next ones.

Each day started with keynote (Friday one had Linaro awards). And we got speakers from outside of Linaro:

  • Jon Corbet (LWN)
  • Lars Kurth (Citrix)
  • Jason Taylor (Facebook)
  • Greg Kroah-Hartman

Each talk was interesting. Jon shown Linaro developers that Big.Little switcher should be taken for community review earlier, Lars presented Xen on ARM (v7, v8), Jason told about how Facebook handles servers and where is a space for ARM ones. Greg’s talk was best — he told why he does not want our code, what kind of mistakes people do in sent patches and gave us story how one code submission can break whole set of devices due to lack of testing. I wonder how Linaro Kernel WG will handle Greg’s new requirement of having all Linaro patches signed by senior kernel developer.

This was also first conference where I was fully ARMed. I left my x86 laptop at home and took Samsung Chromebook instead. Ubuntu runs fine on it, speed is comparable but size (13.3″ contra 11.6″) and weight differ. This also gave me few more occasions to talk with other developers.

I spoke with Citrix guys about Chromebook kernel changes and their Xen backport will probably be merged into “linux-chromebook 3.4″ package. Also had some discussions with ARM Mali developers which resulted in removal of OpenGLES packages from Chromebook support PPA due to licence issues (I do not have redistribution permission).

We also had meeting about hacking Samsung Chromebook where ChromeOS, Debian, Linaro, OpenSUSE, Ubuntu developers had discussion about what we can expect, where we are, how to get some things fixed etc. After that Nicolas ‘Charbax’ Charbonnier from armdevices.net shot video about it:

Direct link to video

I remember that Charbax tried to make interview with me at one of earlier Linaro Connects but I always rejected that idea. This time he went for help… And I could not refuse to Zack Pfeffer :) How it went? You tell me:

Direct link to video

Hong Kong was great. Weather was perfect with +25°C, sun and no rain. Someone told me March is the last moment for being there :)

At a beach near hotel in Hong Kong

But then I had to leave. Problem with return flights is that they usually are around midnight. Add lack of sleep during previous nights and result is not nice mix. So we spent some time in airport lounge to charge batteries (our and devices) and then squeezed in economy class for 11 hours. Took a nap, watched movie in English with Finnish subtitles (learnt new word even) and read “Amiga, the future was here” book.

Imagine weather change when we landed in Helsinki… -13°C and snow. As I left my spring jacket in checked-in baggage (but I had sweater) those few minutes from airport -> bus -> plane were cold ones. Similar few hours later in Berlin. But I had some time for shopping. Skipped salmiakki cause it is hard to know which ones will be hardcore just enough but got some other things.

Helsinki with snow

Szczecin was nice on Saturday. Cold, but spring was visible. Winter came during night:

Szczecin next day

Next Linaro Connect will be in Dublin, Ireland. See you there!


All rights reserved © Marcin Juszkiewicz
Linaro Connect Asia 2013 was fun was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

That day had to come. It was just a matter of time. Debian bootstrapped new architecture port using just own tools and packages…

It was long trip. During last few years we saw bigger amount of work spent in Debian/Ubuntu on cross building packages. Then were Google Summer of Code projects on bootstrapping Debian and one for multiarch cross toolchains. And we had Wookey with his ideas, knowledge and abilities to get one thing to work on for months in a way that managers were agreeding that it needs another month and another ;)

And today I found an email from Wookey about AArch64 port. I suggest you to read it as it has a lot of information. You can find ready to use rootfs there which (connected with kernel from OpenEmbedded) boots to fresh Ubuntu 13.04:

Ubuntu Raring Ringtail (development branch) localhost ttyAMA0

localhost login: root
Last login: Thu Jan  1 00:07:37 UTC 1970 on ttyAMA0
Welcome to Ubuntu Raring Ringtail (development branch) (GNU/Linux 3.8.0 aarch64)

 * Documentation:  https://help.ubuntu.com/
root@localhost:~# uname -a
Linux localhost 3.8.0 #1 SMP Wed Feb 20 14:31:07 CET 2013 aarch64 aarch64 aarch64 GNU/Linux

You need to have patience as Upstart needs to run lot of stuff before it gives login prompt.

Still lot of work required as there are many patches to packaging waiting for being merged but I think that it is a big day for Debian and all distributions derived from it.


All rights reserved © Marcin Juszkiewicz
AArch64 port of Debian/Ubuntu is alive! was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Year ago we had Linaro Connect right after FOSDEM so I decided to skip and walk to Golden Gate instead. But this year there were no conflicts!

Months before we had discussion on SzLUUG mailing list about who goes for FOSDEM. There were about 9 people wanting and we ended with five. So on Friday morning friends arrived near my house, I jumped into car, we grabbed 4th one (Tomek was in London at that time) and went to Berlin Schönefeld airport for 07:00 Easyjet flight.

And we missed it… 5-10 minutes late we were ;( 75€ per person and 10 hours later he took off from SXF airport.

But that 10h was not wasted. Berlin has very nice Technical Museum with many trains, cars, planes and other exhibitions. And they had Trabant 601 as well:

My first time in Trabant

Then trip to shops (Saturn, Media Markt) in search for HTC Desire X case (Magda) and LG Nexus 4 (me). Avoid Saturn — they do not handle credit card payments at Alexanderplatz so I had to walk to the ATM. Two S-Bahns later we passed security check and went to the gate early enough to fly.

BRU airport… I think that (with exception of SXF/TXL) it is my most visited airport as it was my 5th FOSDEM and there was UDS-M around as well. But this time we took a bus instead of a train. 14€ ticket works for 72 hours so cover all trips perfectly. Few hours later we were joking that this multi country journey was exhausting as we were in Berlin, Brussels, went though Geneve (bus stop) to Luxembourg (square) and passed near London (restaurant) ;D

Hotel, drop stuff, connect chargers, went for beer event. Crowdy as usual it was. But I managed to meet some friends (but also missed lot of them) and grabbed few beers. Good spent time. Too bad that I was so tired that went back to hotel just right after midnight.

Saturday

Breakfast in St. Nicolas hotel maybe is not the best but provides enough energy to survive a day. Met several guys there, Philip gave me Kindle Paperwhite which I bought few days before (with delivery to his house to lower price) and his famous Belgium/Holland/Luxembourg guidebook. I also got Beagle pendrive from Koen.

24-01-13 - 1

Then overcrowded bus 71 and FOSDEM! I told Bartek where things are (but at that time I had no idea of K building) and we split. In AW building I met friends manning OpenEmbedded stand just right in front of building entry.

OpenEmbedded stand

Circuitco had Beaglebone stand right to it:

Beaglebone robot

That robot was great example what you can do with enough signals available to drive all those motors. And what you can do with 3D printers ;D

I do not know is it due to crisis or something but AW building had just half of a space for stands used…

Then I went for talks:

  • “Embedded distro shootout: buildroot vs. Debian” — wasted time. Long discussion about Emdebian + short info that Buildroot works in other way. Could be nice talk if done in other way.
  • “Porting Fedora to 64-bit ARM systems” — talk done by Jon Masters and his clone. As usual first “what the hell is 64-bit ARM” and then how Fedora bootstraps itself. Nice talk, got some new stuff. Have to dig for Cavium SDK.
  • “Porting OpenJDK to AArch64″ — interesting it was. Two speakers, lot of technical details.
  • “ARMv8, ARM’s new architecture including 64-bit” by Andrew Wafaa. Mostly to catch speaker in easy way ;D
  • “Bootstrapping Debian-based distributions for new architectures” – I was lazy to go somewhere else but it was good talk.
  • “Bootstrapping the Debian/Ubuntu arm64 ports” by Wookey. Kind of recycled talk from Barcelona but I like his presentations. Also first one without “what the hell is armv8″ introduction.

I also had nice discussion with Jolla guys about their system/device and would I like to test it once they will have something ready for complains. Played a bit with Firefox OS on their reference developer platform and on Nexus S and was not impressed — for example it looked like they have to learn about DPI…

Then I met OE crew and few other guys and when finally noticed that it is time to go to the hotel and drop gear there. Once arrived it was a bit to late to go somewhere and search for some event so I joined SzLUUG team and we went for a meal, chocolates and then some drinking with Kerneliusz (SzLUUG mascotte):

Kerneliusz is hugging bottle

Sunday

Breakfast, packing gear and go for a bus which was less crowded than day before (but we are a bit late as well). As we had to leave after 14:00 I managed only two talks:

  • “systemd, Two Years Later” — some Ubuntu trolling and project status. Nice talk.
  • “Porting applications to 64-Bit ARM Architecture” by Riku Voipio (main AArch64 porter at Linaro). Good discussion in a room, some nice hints and suggestions. Read his recent blog post about ARMv8 porting

Then walk, tram, bus and security check. This time I did not have to take developer boards from backpack as I gave them away during event. We arrived in Berlin and (due to Micha?’s fosdem flu) I drove us back home.

Summary

It was great event as usual. But distance between K building and rest was too big for sessions which are one after another. I dropped some entries from my calendar just because it would be H->K->H->K switching.

Android application for schedule was ok. Would be nice to make a bigger effort and update it to cover K building as well and add a way to see what is going on in each building/room to reduce time before sessions.

Funny part

On Saturday I realized that for some reason I may remind Jon Masters… That’s due to hardware I had with me:

  • two developer boards
  • two phones
  • two tablets
  • 3 USB chargers
  • 4 microUSB cables

The good thing is that they were not of same type (except some cables) :D


All rights reserved © Marcin Juszkiewicz
FOSDEM 2013 was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

My work often requires booting AArch64 fast models. As there are two of them and each has different arguments I decided to write simple script to handle that.

Script takes three arguments:

  • kernel
  • rootfs (can be skipped)
  • model type (foundation/rtsm — first one as default)

This is work in progress — for example there is no network configured for RTSM yet. But I hope that it will be useful for other users.

#!/bin/bash

model=foundation
kernel=
rootfs=

if [ ! -z $3 ]; then
        model=full
fi

if [ -z $1 ]; then
        echo "Usage: boot-armv8 KERNEL ROOTFS"
else
        kernel=`realpath $1`
fi

if [ ! -z $2 ]; then
        rootfs=`realpath $2`
fi

case $model in
        foundation)
                if [ ! -z $rootfs ];then
                        rootfs=" --block-device $rootfs"
                fi
                sudo ip tuntap add tap0 mode tap
                sudo ifconfig tap0 192.168.168.1
                ~/devel/canonical/aarch64/FastModels/Foundation_v8pkg/Foundation_v8 \
                        --image $kernel \
                        --network bridged --network-bridge=tap0 \
                        $rootfs
                ;;
        rtsm)
                if [ ! -z $rootfs ];then
                        rootfs=" -C motherboard.mmc.p_mmc_file=$rootfs "
                fi
                export ARMLMD_LICENSE_FILE=8224@flexlm.linaro.org
                ~/devel/canonical/aarch64/FastModels/VE/AEMv8_0.8.4407/ModelDebugger_7.1/bin/model_shell64 \
                        -a $kernel \
                        $rootfs \
                        ~/devel/canonical/aarch64/FastModels/VE/AEMv8_0.8.4407/lib/Linux64/RTSM_VE_AEMv8A.so
                ;;
esac

Related content:

  1. AArch64 for everyone


All rights reserved © Marcin Juszkiewicz
Boot AArch64 in easy way was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Most of my work at Linaro is around AArch64 architecture. Ubuntu cross compilers were kind of adopted by Matthias Klose (Debian/Ubuntu toolchain maintainer) so I was able to spend more time on ARMv8.

We have two projects at Launchpad:

In short: first one is about porting software to ARMv8, second about OpenEmbedded support for it. The fact that both projects are on Launchpad does not mean that they are for Ubuntu (which is common mistake). It is open for everyone. We have people working on fixing packages in Debian, Fedora, Ubuntu (when it comes to distributions) and in OpenEmbedded. All of that with usual mantra: upstream first.

So how it goes today? I would say that quite good. Since September (when we started OpenEmbedded work) we got to point when we fixed several projects and find less and less new ones to work on.

For me it is nice experience. As I am not a programmer (my last application was for AmigaOS in last millennium) I was often surprised how small changes are sometimes needed to get software running. I got X11 running with ~8 lines of code. Libav required editing of one line in configure script. NumPy was adding 4 lines. OProfile required copying few lines from kernel source. And all those got merged upstream or is on a way to it.

If you want to track our work then check “Merge ARMv8 support into OpenEmbedded” blueprint where I track every project I touch. And ignore ‘milestone’ field — it is always work in progress because every project we fix gives us new projects to build. Which often means another set of software to patch.

I prefer not to think how much it would take us without OpenEmbedded. Being able to just easily cross compile huge amount of software in automated way is great. Sure, from time to time I had to boot software model and do some native compilation or run some tests. But mostly to generate some files which are not properly built/guessed during cross compilation.

Also I would like to thank all maintainers (from OE and upstream projects) for reviewing all our patches and all help we got. But we did not finished yet — there is a long queue of things to clean up and send for merging :)


All rights reserved © Marcin Juszkiewicz
AArch64 porting update was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Few months ago prices of RAM for my desktop went down so I upgraded to 24 gigabytes. By most of time I use maybe half of it but this allows to do some work faster…

Most of my AArch64 work relates with using OpenEmbedded to build something. To get it faster I moved TMPDIR to separate hard drive but finally decided that when I am not building “world” (to find new breakage) I do not need more than 8-12 GB of space.

So now my TMPDIR is symlink to /tmp/OE/tmp/ directory and sstate cache files are on hard disk. This allows me to do quick builds of random software or system images (“linaro-image-lamp” from scratch is 5 minutes). When OE complains about lack of disk space I just remove contents of “tmp-eglibc” directory and retry build. Everything needed for build goes from sstate cache.

But there are days like today — OE-Core maintainers merged my “gmp” patch for AArch64 so I dropped it from “meta-aarch64″ layer and have to wait a bit for rebuilding of all source packages. After that I will have my fast builds again.

So if you do a lot of builds then invest in memory — most of today desktop can take 32 GB…


All rights reserved © Marcin Juszkiewicz
Doing OpenEmbedded builds in RAM was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

We are using OpenEmbedded to build software for AArch64 (64-bit ARMv8 architecture). There are some components which do not build and we fix them when time allows.

So today I looked at stats of my nightly build of “bitbake world -k” and notices 46-49 build failures. Went thought list, removed those which are already reported for porting, tried to build failed ones to find out how much work we need to get it fixed. And one of them was “xserver-xorg”…

I took a chance and got it built by patching few source files. Few minutes later I got it booted in commercial ARMv8 fast model (foundations one lacks graphics emulation):

ARMv8 desktop with wrong byte order

As you see Xterm window in unreadable. So I changed byte order, rebuilt and booted image with new Xserver:

ARMv8 desktop with proper byte order

I do not plan to test X11 environments in fast model — it takes too much CPU time. But it is nice to see native 64-bit X11 running ;)


All rights reserved © Marcin Juszkiewicz
Started X11 on AArch64 was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Lot of services followed article on EETimes where it was announced that Samsung will present 8-core ARM cpu. What was skipped on some of them is that this is big.LITTLE design so it is made as 4xCortex-A7 + 4xCortex-A15 setup.

Good to know that there will be silicon from other vendors than ARM Ltd. Current development platform is Versatile Express TC2 (Test Chip 2) which shows that amount of A7 cores does not have to match A15 ones (it has 3xA7 + 2xA15).

But amount of cores is one thing. People usually complain about battery life and guess that such setup will suck power like crazy… when it is especially designed to save power.

Take a look at current “war” at mobile market. 2 years ago single core 1GHz Cortex-A8 cpu wit 512MB ram was high end. Then we got dual core cpu (usually Cortex-A9 based like Exynos4, OMAP4, Tegra2) and 512-1024MB of memory. Battery usually had similar capacity and lived similar time. During 2012 we saw move to quad core processors in mobile devices (Exynos4412, Tegra3) with 1-2GB ram. Space for battery was same or smaller. Next year will bring Cortex-A15 cpu (Exynos5, OMAP5, Tegra4) but this eats power…

So phones will probably get big.LITTLE processors to give users with lot of cpu power when needed and battery life otherwise. Cortex-A5/8/9/15 will not disappear from market — will land in normal and cheap devices.

I have dual core Cortex-A15 netbook now (Chromebook) and it works fast. Who knows, maybe in 2014 I will be able to replace it with something powered by 4xA7 + 4xA15 processor (unless ARMv8 will land at same time). And there is a work on getting ALL of cores running at same time…


All rights reserved © Marcin Juszkiewicz
Samsung will have big.LITTLE. So what? was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

As you know I am responsible for building cross compilers for Ubuntu. They targeted “armel” and “armhf”. But this will change.

During last few weeks I was slowly updating cross compiler source packages for ‘raring’ (current Ubuntu development version). Most of time was taken by conferences so it had to wait until previous week when I got first two parts (binutils/cross and arm{el,hf,64}-cross-toolchain-base) working. I found some issues in binutils, eglibc, linux, gcc-4.7 but make workarounds for them — will report bugs and work on fixes of course.

But situation is not nice. Armel was dropped from ‘raring’ which made building a bit harder (had to find a way to get “linux-libc-dev” package from “linux-source-3.7.0″). But I am more and more convinced that I should just drop “armel” cross compiler. It will make my life easier but of course patches are welcome.

Multilib support will get dropped as well. “armhf” cross compiler will not build for “armel” cause there will be no eglibc packages.

But there will be a bonus — I work also on “arm64″ cross compiler.


All rights reserved © Marcin Juszkiewicz
Ubuntu cross compilers situation for 13.04 ‘raring’ was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

As you may know during last months I was working on adding AArch64 architecture support into OpenEmbedded. During that time we used Versatile Express fast model which requires license. At the end we got Foundation model which can be used by anyone.

And today Linaro published availability of OpenEmbedded based images, Foundation fast model and cross toolchains targetting AArch64 (bare metal and glibc ones).

So if you want to check what I was working on during last months you can do it now. Just go to Linaro ARMv8 downloads page, fetch images, register at ARM website, fetch Foundation fast model and follow instructions.

Remember that this is software emulation so do not expect speed. But SDK image should be enough to start bootstrapping “we build natively” distributions like Debian, Fedora or Ubuntu ;D

I am very interested in feedback.


All rights reserved © Marcin Juszkiewicz
AArch64 for everyone was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

As already I wrote during summer I was working mostly on AArch64 (ARM 64-bit) — especially on OpenEmbedded support.

I spent time on reminding myself how OE works, learning new tricks and creating some limited images (we removed unneeded daemons etc) for our next step which would be booting ARM64 images in Fast Models. Yes, there is no existing hardware yet for this architecture :) But we want to have distributions ready for it when it became available.

Last Monday Linaro published glibc patches for AArch64 port so normal cross compiler works (people already built bare metal one) and work got speed up. During previous week I got opportunity to discuss with ARM Ltd. engineers about internal compiler errors in gcc and got some of them fixed next day. During hacking sessions in Linaro office (in Cambridge, UK) we managed to get most of our targets done:

  • oe-core minimal image
  • oe-core base image
  • on device toolchain
  • meta-toolchain based SDK
  • openssl working
  • libgcrypt ICE got work around
  • meta-aarch64 layer for OE-Core got published

Plans for this week are LAMP image and start merging everything usable back into OpenEmbedded. I do have OpenEmbedded Core branch already and need to create such one for OpenEmbedded.


All rights reserved © Marcin Juszkiewicz
ARM 64-bit porting for OpenEmbedded was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

When I moved to Canonical and Linaro I stopped using OpenEmbedded. But recently I got some tasks which involved it. In short: there is a plan to use OE to bootstrap ARMv8 support in some Linux distributions.

2 years ago OE guys started creation of OpenEmbedded Core set of metadata. I have to admit that I never used it at that time but supported idea (first mentions of splitting recipes was at OEDEM 2006.

This time using layers is the only way. So I fetched OE Core, OpenEmbedded and Linaro layers and did some builds to find out how it looks today. Some time later Ken Werner left Linaro team so I took over maintenance of meta-linaro layer. Improved documentation a bit and started creating small LAMP like image.

There were issues with toolchain. I use Linaro branded GCC and found out issue with binutils and then with C++ headers — sent some patches and problems were solved by Khem Raj in a bit other way.

After some tests and patches I got LAMP image working out of box. So moved to some more advanced things…

First was update of qemuarmv7a machine to use Versatile Express emulation instead of hacked Versatile PB one. Ken did work for 3.2 kernel but in meantime Yocto moved to 3.4 one. I looked at issues and tried to get it working.

OMG… Now I know why people say that OpenEmbedded have exponentially steep learning curve… Getting kernel into usable state is nightmare. Years ago defconfig was nearly sacred — there were few small changes done to it in kernel.bbclass/linux.inc but it was easy to understand. Now there are KERNEL_FEATURES which may be ignored, big set of scripts, config parts which may be applied (or removed or something else)… I really tried to understand it but my brain decided to go away.

Maybe other day I will manage to understand this magic stuff or will just go for linux-yocto-custom.bb or will write old style linux_3.4.bb recipe without all that magic.


All rights reserved © Marcin Juszkiewicz
OpenEmbedded again was originally posted on Marcin Juszkiewicz website

Read more