1. Chromebook update

    Some time passed since last Chromebook post so I want to give small update on Ubuntu status.

    Dylan Reid from Chromium team fixed ALSA driver so frying speakers is now past. This change will go into next stable Chromium update probably. I got it merged into Ubuntu kernel and released as “3.4.0-4” version in PPA.

    In meantime Vladimir Smirnov took a look at “release-R25” branch of kernel and got it booted. He shared configuration so I went with it, synced with Ubuntu one and got it running on my Chromebook. So expect new kernel release after FOSDEM.

    There are Mali OpenGLES drivers available for download. I was unable to use them with R23 kernel (current Ubuntu one) but they do work with R25 branch so another thing to take care. This time I have to make new packaging as I need to add click thought license support. After that we can drop Chromium OS from our devices ;)

    VBoot utilities are also in PPA. So signing of kernels and manipulating partition tables do not need files from Chromium anymore.

    But there is one thing. Or rather lack of it… I do not have time to check do my packages work under older versions of Ubuntu (12.04, 12.10). Due to that I will not release any new updates for them — will support only ‘raring’ (13.04). Everything will be available in PPA so anyone can test.

    Written by Marcin Juszkiewicz on
  2. Boot AArch64 in easy way

    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.

    if [ ! -z $3 ]; then
    if [ -z $1 ]; then
            echo "Usage: boot-armv8 KERNEL ROOTFS"
            kernel=`realpath $1`
    if [ ! -z $2 ]; then
            rootfs=`realpath $2`
    case $model in
                    if [ ! -z $rootfs ];then
                            rootfs=" --block-device $rootfs"
                    sudo ip tuntap add tap0 mode tap
                    sudo ifconfig tap0
                           --image $kernel
                           --network bridged --network-bridge=tap0
                    if [ ! -z $rootfs ];then
                            rootfs=" -C motherboard.mmc.p_mmc_file=$rootfs "
                    export ARMLMD_LICENSE_FILE=8224@flexlm.linaro.org
                           -a $kernel
    Written by Marcin Juszkiewicz on
  3. AArch64 porting update

    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 :)

    Written by Marcin Juszkiewicz on
  4. I got interesting job offer and refused

    Recently I got offer from one of head hunters company. They represent one of companies I trusted but no longer care about.

    I have been retained by XZYA (specifically XZRIXZYA Research Institute which is their European R&D and innovation division) to connect with candidates that they would like to speak to relative to the creation for 2 new Open Source labs which XZYA are creating as part of their global drive to increased Open Source Software adoption and evangelism within their business.

    The new Open Source team will be made up of software engineers and specialists working across various open source SW areas, projects and groups – for example Linux kernel, Linaro, LLVM, web servers (webkit, node.js, jquery, chromium lighttpd), Wayland, XEN etc

    It’s really important to note that the positions being created will allow the individuals selected to continue to be open source community / project focused (70-80% of your time committing, maintaining or contributing to projects) but representing XZYA.

    The Open Source labs will be located both in Espoo, Finland and in Staines, UK (near London). Positions can be in either location.

    Having consulted my network as well as undertaken some market due diligence and research, I wanted to connect with you to ascertain whether I could secure your interest in being one of the founding members of this new team.

    It does sound interesting but I do not want to work for company which do not care about product design or cooperation with external developers.

    Written by Marcin Juszkiewicz on
  5. Doing OpenEmbedded builds in RAM

    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

    Written by Marcin Juszkiewicz on
  6. Started X11 on AArch64

    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
    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
    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 ;)

    Written by Marcin Juszkiewicz on
  7. 2012 timeline

    Another year passed. It was busy one with some job related turbulence… But let me start.



    • Linaro Connect in Redwood City (San Francisco area) was great event. The walk to Golden Gate was one of best parts of whole trip. Too bad that I decided to not stay for ELC which was few days after — most of US OpenEmbedded developers were there…
    • Went to New York City on return trip. 36 hours is far too small amount of time to visit this town… Met guys from Bug Labs ;)
    • Skipped FOSDEM for second time ;(
    • I bought that Archos 80 G9 Turbo tablet. Most often self asked question during next months was “why???” — it feels slower than my Nexus S… But my daughter likes it as she has some games, books and films on it.
    • My howto about flashing U-Boot on Efika MX Smartbook got re-used somewhere on Genesi website as many people found it useful.



    • Easter. Family etc.
    • Attended local Ubuntu release party.


    This was busy month — just one weekend for family ;(

    • Ubuntu Developer Summit in Oakland (San Francisco area again). Did some sight-seeing, went to cinema — had good spent time. As usual did some shopping at Amazon ;)
    • Attended Tizen Developers Conference as it was just 2 stops from UDS/Q hotel. And some friends from Maemo times were there. And there was great social event on Tuesday…
    • Got Tizen Developer Platform device, played a bit with it and wrote few words about it. Few months later I sent this brick to some guy in Norway — maybe he will do something interesting with it.
    • At end of month I went to Hong Kong…


    • There was Linaro Connect q2.12 at Hong Kong. For me it was first visit in Asia. Did some sight-seeing but hope to see more in March 2013 when Linaro Connect Asia will take place at same hotel.
    • ARMv8 related work started.


    • New stuff, old tools. Or in other words: started using OpenEmbedded again. This time some preparations for ARMv8 work — created some images and Jenkins jobs to build them. Few months later we switched architecture and fun started.
    • Also unbricked my SheevaPlug after my friend’s play. Now it is un-bootable again ;D


    • Spend few weeks on holidays. Good time it was.
    • Some people assigned by Canonical to work on Linaro went back and left our teams. I was on a list too, but convinced management that ARMv8 work may need my skills ;D


    • Applied for Debian Maintainer. Got accepted some time later.
    • Attended SmartDev Conference. I was member of programme committee. Nice event it was. Also met some old friends there ;)
    • Started ARMv8 work in OpenEmbedded. First with some internal patches so I could not tell too much about progress. And there were sad moments due to that — like when I cross compiled first programs but had to wait 2 more weeks before could say that in public…
    • Wrote two posts about ARM devices and why I am not interested in anything below Cortex-A9 ones. This time it was more polite than similar post from 2011.


    • ARMv8 sprint in Cambridge. During that week Linaro published glibc patches for AArch64 so I was able to finally share my work with outside world. And as usual met some old friends ;)
    • 3 weeks later everyone was able to run ARMv8 binaries.
    • Also that month there was decision made that I will move to Canonical at beginning of December. Everything was setup so I sent farewell e-mail to everyone at Linaro. But later it got reverted and I will probably never know why and who made that decision.
    • Went to Copenhagen for Canonical internal event to meet the team which I planned to join. Got lot of information about company plans which I am not allowed to talk about.
    • Another Ubuntu Developers Summit took place.
    • Also Linaro Connect q3.12 started.
    • And Google + Samsung announced new, ARM based, Chromebook. So I bought one ;D


    • During Linaro Connect Andrew Wafaa gave me my Chromebook and I managed to get Ubuntu running on it. Lot of help came from Olof Johansson — without him it would be much harder work. Managed to fry speakers ;(
    • Then I went to Barcelona for ELC/E and Yocto developers day. Met friends, had lot of fun.
    • Got BeagleBone and The Fish River Island 2 devices. Still did not booted second one.
    • Spent few days at Palamos, Spain. Lovely time to relax after 3 weeks of conferences — thanks to Zygmunt Krynicki and his wife.
    • Did last update of cross compilers for Ubuntu. Looks like Matthias Klose will take care of them now.


    • My sister gave birth to two daughters! So now I am uncle at my part of family as well :)
    • Created project and team at Launchpad to unite people hacking on ARM Chromebook support. Mailing list is not so used but we got some bugs and first set of packages. So if you have such device and use Ubuntu on it… join us! If you use other distribution then also join us ;)
    • Snapdragon S4 Plus APQ8060A based DragonBoard arrived on my desk. Waits in queue…
    • Got own kernel working on Chromebook. It is now available in PPA.
    • Went to Silly Venture demoscene party. It was Atari event. Awesome one!

    What will 2013 bring? There will be some changes, new projects, devices… But I will write about them at proper time.

    Written by Marcin Juszkiewicz on
  8. I want to update my mobile phone

    During last few days I played with CyanogenMod 10.1 nightly builds on my Nexus S phone. Then went back to CM 10 as it is more stable. But this also reminded me that I have 2 years old device…

    So I did another round of checking what are options. As it will be for next 2 years I want 2GB of RAM, 720p screen and LTE support. And there is very small amount of those :(

    1. HTC Butterfly. MicrosD slot, 1080p screen, Japan only so far.

    2. LG Nexus 4. Latest Android for few releases granted. But also lack of microSD slot and only 16GB of storage.

    3. LG Optimus G. Base of Nexus 4. Not available outside of few operators (mostly US).

    4. Samsung Galaxy S3 LTE (GT-9305). MicroSD slot, MHL video output.

    5. Samsung Galaxy Note II. MicroSD slot, MHL video output.

    Now it is time to complain :)

    LG Nexus 4 is available only in some stores (or phone operators) for 450+ € — no Google Play Store like it was with earlier models (I do not call current state as selling). Also no LTE on European frequencies. No 32GB storage model.

    Samsung GT-9305 sounds interesting. But… It is Exynos 4412 based. And I read The Saga of a CyanogenMod Exynos4 device maintainer by Andrew Dodd which gives clear message “avoid Exynos4 if you can”. If even Samsung update can break your device then something is going wrong. And so far SGS3 LTE lacks CyanogenMod support which is one of main blockers for me as it shows that there are no custom “ROMs” for it (I do not count images remixed from stock images).

    Galaxy Note II is huge and would take some time to get used to it. Has CM support already. But again — Exynos4 ;(

    So it looks like I need to wait another few months and check will there be something worth buying. In meantime I will stay with last CM10 release running on my Nexus S.

    Written by Marcin Juszkiewicz on
Page 36 / 105