Canonical Voices

Posts tagged with 'openembedded'

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

Nine years ago I bought Sharp Zaurus SL-5500 as my first Linux PDA. And due to this I am where I am.

I could say that it started two years earlier when I saw PalmOS devices at local geek meetings. But it took me over year before Palm m105… Then was Sony Clie SJ30 — gorgeous device. High resolution, memory card, 16bit colour. Too bad that applications did not make use of it.

So I went for Linux. There were two options: Zaurus or iPaq. Went for former one as it had keyboard. It was good choice.

Quickly started development of packages and joined OpenEmbedded team. Then became one of OpenZaurus developers. After year or something took over release maintenance and released few last versions. 3.5.4(.1) were the best tested releases of OZ ever — I had over hundred testers for each RC image and they provided installation reports, bug reports and fixes. And it had unified installer for whole range of devices (took me several months to get it polished and few guys added own tweaks). When Ångström distribution started I was the one who officially ended OpenZaurus development.

And all that was in free time. But in mean time I created my consulting company. CELF was my first customer ;)

One nice evening I got question on irc and due to that I left dark side of IT and went from PHP programming to embedded Linux full-time. OpenedHand had interesting projects and clients with many devices. Imagine operating system + kernel + Python + GStreamer in 16 megabytes of flash… And I managed to get it done. While working for them I used proper developer boards (not only customer devices) and there were funny moments…

When we worked with ST Microelectronics on NDK-15 (later replaced by NHK-15 from ST Ericsson) I had to merge two kernel trees from two separate teams. Took me 2 days of mangling 20-30MB diffs but got it done. There are people at ST-E which reminded me this during one of Linaro Connects ;D

Also on GUADEC 2007 when we presented new interface for Openmoko phones NDK-15 had to wait for me as no one at stand was able to get it running (U-Boot config needed changes).

But then Intel acquired OpenedHand… The craziest trip of my life was return from London to my parents place. For three months I even had @linux.intel.com email but never used it due to problems with Intel corporate network and Linux (do not ask).

Next was Bug Labs and their BUG device. I cleaned their Poky trees, migrated to latest version and later to use OpenEmbedded directly. Less challenges but I also had few other customers at that time to keep me busy. Some of them were OH customers before and went to me for help.

Time passed, 2010 came. One day Canonical made another attempt to seduce me and this time I decided that it looks like good opportunity so I accepted. Sent BUG 2.0 prototype back to NYC and few weeks later I made crazy train trip to small nowhere near Brussels to meet my new coworkers from NewCore. 1-2 weeks later we got our current name: Linaro.

Total change… From embedded devices to ‘Yes, it is ARM. So what?’ kind as we support(ed) devices powerful enough to run normal desktop software. Many changes for me — from OpenEmbedded where you can (cross) build everything in few hours to Ubuntu packaging where sending package for inclusion into archive meant few hours of buildd queue and then few of build. But I learnt a lot here and met another set of hackers including grey beards ones ;)

And all that because I bought Sharp Zaurus SL-5500 nine years ago…


All rights reserved © Marcin Juszkiewicz
Nine years of embedded Linux 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

Somewhere in 2010/11 I decided to clean up mess of naming machines at home and decided to go with character names from “Winnie the Pooh” books (Polish edition). Today I got new developer board and had to spend a moment to get a name for it.

So “klapouchy” (Eyeore) will be new name for DragonBoard. Maybe not best one but most of the names are already taken:

  • krzys (Christopher Robin) is my router (because Chris decides who can enter Hundred Acre Wood which is the name of my WiFi network)
  • puchatek (Winnie the Pooh) is main desktop
  • lumpek (Lumpy) is conference laptop (it was lucek before because it got Ubuntu Lucid as first system)
  • gofer (Gopher) is Efika MX Smartbook
  • krolik (Rabbit) is Samsung Chromebook
  • malenstwo (Roo) is Pandaboard (there were malenstwo-a1 and malenstwo-ea1 when I had two boards)
  • prosiaczek (Piglet) was MX53 Quickstart
  • kangurzyca (Kanga) is my wife laptop (she chosen the name)
  • sowa (Owl) is another router
  • tygrysek (Tigger) is my VPS (at beginning it was up/down/up/down all the time)

So most of the names from books are already taken. There are also Disney movies which adds few new ones (like Gopher and Lumpy) and cartoons (which I am not fan of). In worst case one day I will start re-using names or add names from other story.

What I used before? Desktop was “home” or “hrw”, Dell laptop (now “kangurzyca”) was “maluch” (small) due to 12″ size, “lumpek” was “lucek” due to Ubuntu Lucid installed and rest was named by hardware name (which is a default in OpenEmbedded).

How you are naming your machines?


All rights reserved © Marcin Juszkiewicz
I am running out of names for computers was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Time to do hard task — write job description for my replacement at Linaro. Or maybe not replacement but for someone who will take some or most of my duties there.

I did so many things at Linaro during last 2.5 years that it is hard to decide what such person should know. I learnt Bazaar (not hard once you know Subversion), improved Git skills and tried few projects which tried to bridge both. Learnt more about Launchpad than wanted — people at #launchpad channel are really helpful (same with #bzr ones).

There was lot of building involved. From fixing packages in Ubuntu and Debian to building with OpenEmbedded. I even did some build automation with use of Launchpad. Then there was Jenkins where we moved most of our builds.

I became MOTU in Ubuntu and got Debian Maintainer status in Debian. Have to clean some things and take “android tools” package more into shape as there are co-maintainers waiting in queue with patches. Also updated my OpenEmbedded skills to current state as last time I was using it there was no layers ;)

But how to summarise it in short job description? You will see soon at Linaro’s jobs page soon.


All rights reserved © Marcin Juszkiewicz
It is hard to write job description when you are leaving 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

In 2002–2003 I was thinking about becoming Debian Developer as I had some experience with packaging, solving problems with it etc. But then 2004 came, I bought Sharp Zaurus SL-5500 PDA and started using OpenEmbedded…

Time passed, I got even more experience about packaging, different build systems used in FOSS projects and made good use of that in OE, Poky work. And as a result I went to Linaro (though Canonical) and started working on Ubuntu packages…

So now, when I have my own packages: android-tools and powerdebug the time came to finally start work on becoming Debian Developer to give back to community which gave me so much during last 13 years of my use of Debian.

My application on debian-newmaint ML.

Related content:

  1. OpenZaurus 3.5.4 released


All rights reserved © Marcin Juszkiewicz
Finally applied for Debian Maintainer was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

Few months ago one of my friends borrowed SheevaPlug from me. About two weeks later he gave it back — bricked… I did not had time to play with it so it landed on shelf.

Yesterday I took it and decided to get it back to live. Requirements:

  • bricked SheevaPlug (v1.0 without SATA)
  • power cable
  • mini usb cable
  • usb thumb drive
  • OpenOCD (“apt-get install openocd”)
  • cross compiler (“apt-get install gcc-arm-linux-gnueabi” under Ubuntu)
  • U-Boot sources (HEAD of mainline)
  • Linux sources (also HEAD of mainline)
  • serial terminal (picocom, minicom, screen etc)
  • few terminals or terminal multiplexer (I used tmux)

Then:

  • Connected power and mini usb cables to SheevaPlug. Desktop recognized usb-serial device as /dev/ttyUSB1.
  • Connected to it with serial terminal. Nothing appeared there of course ;)
  • Run OpenOCD: “cd /tmp/;sudo openocd -f /usr/share/openocd/scripts/board/sheevaplug.cfg -s /usr/share/openocd/scripts”. SheevaPlug was detected.
  • Connected to OpenOCD: “telnet localhost 4444″.
  • Built U-boot:
export CROSS_COMPILE=arm-linux-gnueabi-
make mrproper
make sheevaplug_config
make u-boot.kwb
  • Copied “u-boot” to “/tmp/uboot.elf” and used “reset;sheevaplug_init;load_image u-boot.elf;resume 0×00600000″ — landed in U-Boot ;)
  • There is “sheevaplug_reflash_uboot” macro but it was not working for me. So I used U-Boot to flash itself:
Marvell>> usb start
Marvell>> fatload usb 0:1 0x0800000 u-boot.kwb
Marvell>> nand erase 0x0 0xa0000
Marvell>> nand write 0x0800000 0x0 0xa0000
Marvell>> reset
export CROSS_COMPILE=arm-linux-gnueabi-
make mrproper
make kirkwood_config
make menuconfig (set INITRAMFS_SOURCE to /dev/initfs)
make uImage
  • Copied “arch/arm/boot/uImage” to USB thumb drive and inserted it into SheevaPlug.
  • Booted image:
Marvell>> set ethaddr 'c0:ff:ee:c0:ff:ee'
Marvell>> set bootargs 'console /dev/ttyS0,115200 rw'
Marvell>> usb start;fatload usb 0:1 0x800000 /uImage;bootm 0x800000
  • Landed in nice and small Ångström distribution image ;)
  • Went to Ångström online image builder and built console image (task-base based).
  • Built Linux kernel (this time without initramfs):
export CROSS_COMPILE=arm-linux-gnueabi-
make menuconfig (unset INITRAMFS_SOURCE)
make uImage
  • Copied “arch/arm/boot/uImage” to USB thumb drive and inserted it into SheevaPlug.
  • Prepare NAND for UBI:
# mount none /dev -t devtmpfs
# udhcpc eth0
# opkg-cl update
# opkg-cl install mtd-utils
# ubiformat /dev/mtd2
# ubiattach -p /dev/mtd2
# ubimkvol /dev/ubi0 -N rootfs -s 490MiB
# ubiupdatevol /dev/ubi0_0 /media/sda1/angstrom-task-base.ubifs
# mount -t ubifs ubi0:rootfs /media/rootfs
# chown -R root:root /media/rootfs
# cp /media/sda1/uImage /media/rootfs/boot
# sync
# reboot
  • Another reconfiguration in U-Boot:
Marvell>> bootargs 'console=ttyS0,115200 rw ubi.mtd=2 rootfstype=ubifs root=ubi:rootfs'
Marvell>> bootcmd 'ubi part nand0,2; ubifsmount rootfs; ubifsload 0x800000 /boot/uImage;bootm 0x800000'
Marvell>> mtdids 'nand0=orion_nand'
Marvell>> set mtdparts 'mtdparts=orion_nand:512k(uboot),4m@1m(kernel),507m@5m(rootfs)'
Marvell>> save
Marvell>> reset

And now my SheevaPlug is operational again. Boots from NAND with latest U-Boot and Linux. There is around 440MB free still on NAND (not counting 4MB partition where kernel was expected to be). I can put it back on shelf now.

The only parts which I needed to compile were U-Boot and Linux kernel. I could skip bootloader and use binary image from Internet but prefer to know what my machines run (and building U-Boot is really easy). Initramfs support in Linux is real live saver as I did not had to play with initrd etc — just build image and boot it. The only problem was that devtmpfs was not auto mounted (even if option in kernel was selected).

I could also use one of those “easy installers” made by PlugComputer community but I found such solutions more complicated (fetching binaries, finding requirements etc) than the one I used.


All rights reserved © Marcin Juszkiewicz
Unbricked my old SheevaPlug 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
Marcin Juszkiewicz

Half year ago at UDS-O in Budapest Michael Opdenacker interviewed some people from Linaro. I remember that at the end of event Kiko asked him did he talked with me cause he thought that it could be interesting for someone.

Then we had another Linaro Connect (in Cambourne) and nothing happened. But in previous week I got an email that there will be interview with me in Orlando and that I should choose time slot for it. So I did and here is the result:

httpv://www.youtube.com/watch?v=ajNSrQfFcPA

What we were talking about? Check it yourself. And please comment did you enjoyed.


All rights reserved © Marcin Juszkiewicz
I got interviewed during Linaro Connect was originally posted on Marcin Juszkiewicz website

Read more
Marcin Juszkiewicz

This week I am in Budapest, Hungary attending Ubuntu Developer Summit for 11.10 ‘oneiric’ release discussions. But this is not only Ubuntu — there is huge amount of Linaro people discussing what to do next cycle.

Sunday

Travel, travel, travel… Usual way — bus from home to Berlin airport (SXF this time) where I met with Henning ‘woglinde’ Heinold to donate my old Linksys WRT54 which I got donated few years ago to be able to use my Zauruses wireless. Router had to be in use on OpenEmbedded stand at LinuxTag, Berlin — go there and visit them at booth 7.2b 112.

Again flight was with Easyjet. It is cheap airline but with speedy boarding it is good enough to go with. Bad side is that it lands at old terminal 1 in Budapest so I had to go to hotel by my own.

Evening was Canonical only meeting where there was a presentation of some things which will go into 11.10 Ubuntu release (nearly same to next day keynote). After food, discussions and finally sleep ;D

Monday

Sessions started — I attended few:

  • Ubuntu LEB documentation
  • cross toolchain user stories — my own session where most of time Micheal Hope was telling us about requests which Toolchain WG got
  • user stories for nano image
  • DMB regular meeting — I became Ubuntu developer during it!

During evening was ‘Meet & Greet’ social event sponsored by Openstack and Freescale. Nice way to catch with people. Especially when you meet old friends which you never met in person ;D I met Marek Szyprowski which whom I was writing to Polish Amiga paper magazine named ‘eXec’ (but website with similar name does not have nothing in common now). We talked for quite long time about misc things. Also met some other folks, refreshed faces memory etc.

Tuesday

Sessions:

  • cross toolchain user stories (again) — we discussed notes from previous day, decided on some details and created work items so I can start working on it
  • Ubuntu LEB documentation (also again)
  • Linaro Ubuntu LEB process for 11.11
  • GDB as cross debugger

As you see LEB was topic of a day. And it was not everything — next day was another session.

Evening was taken by The Linaro Technical Showcase sponsored by IBM. What was there? Many interesting things:

  • Arnd Bergmann was talking why class4 SD card can be much better then class10 one
  • Freescale Landing Team was presenting i.mx53 Quick Start boards
  • Ash Charles from Gumstix was presenting their new miniboards with DM37xx cpus and few carrier boards
  • Pawe? Moll from ARM was presenting Cortex A15 running from two biggest FPGA chips. It had just 11MHz clock but it was enough to show Doom game running on connected monitor.
  • Oxlab guys shown their work on Android and how you can hibernate BeagleBoard
  • ST-Ericsson guys presented Snowball boards — we had a talk on some hardware details
  • Konstantinos Margaritis shown what kind of difference can be between armel and armhf ports on same hardware
  • Angus Ainslie presented Samsung developer board and we had interesting discussion about it

I do not remember all presentations — those ones interested me most. ARM one was amazing — huge FPGAs which were able to emulate A15, A5, A9 just by booting with different MicroSD card… And it is not related only to CPU emulation cause there were two expansion slots on mainboard so FPGAs can became graphics card with Mali core flashed into. Second board was ‘simple’ A9 with Mali and some OpenGL(ES) demo was running there.

And again — new faces to join with names. Talked with Ash Charles about discussions in past when I helped Gumstix developers with OpenEmbedded, Angus Ainslie from ST-Ericsson was working for Openmoko at time when we had cooperation and so on…

Wednesday

Woke up early… What to do after 6:10? Go swimming! So I went to Royal SPA and spent some time in swimming pool and sauna so day started nicely.

Sessions:

  • automated cross-buildd system/service
  • Ubuntu LEB Star Rating documentation — my session again on how we want to rate level of support of member boards
  • ARM Linus interface 3 — attended just to check how kernel developers are discussing how to improve arch/arm/ situation

Met Mark Brown with whom I was working in OpenEmbedded project and after lunch I went to do some sight seeing with Pawe? Moll. Budapest is nice city and I have to came back here one day.

Team dinner somewhere in the city was quite good. We had a fun going back to hotel when ~half of us used phones to navigate though city ;D

Thursday

Sessions:

  • arm and other archs certification program — Canonical has certification program of machines which came with Ubuntu pre-installed. I have to check at their tools.
  • ALIP mini-distro and build system user/developer stories — interesting discussion
  • cross-toolchains for the ARM hard-float ABI — will have to provide them for Ubuntu and other but it is doable
  • next steps with multiarch in Ubuntu — where do we go and how

Evening was sight seeing with local guides. We saw parlament building, chain bridge, castle area and ended in interesting pub.

Friday

Ending day and nearly no sessions today:

  • port to the ARM hard-float ABI — Ubuntu armhf someone?
  • Linaro Review of LDS week
  • easier access to -dbgsym packages

Some of people already packed and left, rest will go to have fun at UDS party.

Summary

It was my third UDS and I feel that it was best one. I had two blueprints to handle and both had great discussions which ended in many notes and work items. There was lot of people both from Ubuntu community and Linaro teams. I met many developers, some old friends, went to so many sessions that it took me most of time (I do not remember is list in post is complete).

It was nice to see amount of ARM netbooks at people hands — mostly Genesi Smartbooks but also several Toshiba AC100 ones. I think that it shows that times are changing and who knows… maybe at next event I will not use my ASUS UL30A laptop.

And this is another UDS with some added hardware. This time it is Pandaboard A1 which can replace my EA1 at my work for Linaro. Probably will keep both running one to another but one (EA1) with Ubuntu and second (A1) will be used for misc tests.

Now it is a time to drop laptop in hotel room and go for party!!!


All rights reserved © Marcin Juszkiewicz
UDS-O was originally posted on Marcin Juszkiewicz website

Share/Bookmark

Related posts:

  1. Ubuntu/Linaro Platform Sprint in Prague
  2. Trips in 2011
  3. UDS-N: Monday

Read more