How much RAM/HDD is enough?

Wednesday, October 1st, 2008 by Marcin Juszkiewicz

During recent discussions we got into common developer problem — there is no such thing as enough disk space… Later it also expanded to RAM size.

My current desktop machine has 4GiB of memory and two hard disks with 820GB (763GiB real) of total capacity. And I have only 90GiB of free space on them. So what took most of space? Usual suspects: Poky and OpenEmbedded builds (du -hs took one hour with “160GiB used” result).

Which get us back to the subject — how much disk space is enough today for development? It depends on area — some people will be fine with less then 100GB, some not. Laptop which I will soon send back to Intel has only 80GB hdd and this is really not enough for me for Poky development (if it has to be the only machine). I know that few persons started to look for 320GB (or larger) disks for their laptops ;D

OK, with “rm_work” class I was able to do Poky builds with few gigabytes of free space. But small hard drive forced me to forget about using VirtualBox for testing in other distributions then Debian ’sid’ (which I use on all machines). Currently ~/.Virtualbox on my desktop uses about 70GiB as I have there Fedora 8, Fedora 9, Ubuntu 8.04 and few other distributions which I use for testing does Poky works under them.

Other thing is doing strange builds… In past I did lot of them — record one took 270GiB of space (and two weeks of building). And I do not like to be space limited when doing them (”rm_work” is not always good way). I still plan to make such big ones from time to time as they allow to check does everything works (and also show new bugs to fix).

But how much RAM is enough? My previous desktop had 2.1GiB RAM, laptop which I use for x86 builds has only 1GiB. Current desktop has 4GiB of DDR2 (low price made it affordable) and for OpenEmbedded or Poky builds it is more then enough (as no one use BitBake from times when 512MiB ram was not enough to just parse metadata). My machine usually maxx at 2.5-3GiB of used memory during heavy builds. When it will be not enough… I still have 2 slots for RAM free :)

How it is for other people?



What do I do for living

Tuesday, August 12th, 2008 by Marcin Juszkiewicz

Recently my mother asked me what exactly I do for a living. As she is not type of computer person I had to create definition which would be easy to understand for normal people. And as from time to time people asks me same question here is what I told her.

When hardware vendor builds new hardware and want to sell it to end customers he cames to us to get help on software side. As my part is building whole systems rather then single applications I took her phone as example of device and told:

Your phone is able to do many things:

  • make, receive and reject calls
  • send/receive text/voice/video messages
  • make/show/send photos/videos
  • has addressbook
  • has calendar
  • has menu to choose functions etc…

Each part is handled by separate application and my job is to build them into something what hardware vendor can put on a device before shipping it to end customer.

She was happy with that explanation, even my wife told that it is nice summary of what I do for a living. Of course there are more things which I do at work, but how to tell that I am fixing badly written software or do some testing of new ways to build it…



Using Poky SDK to build software

Thursday, July 17th, 2008 by Marcin Juszkiewicz

Poky Linux distribution provides SDK for quite long time. From time to time I hear persons which complain about lack of libX or libY in toolchain tarballs. But there is a solution for them — Poky SDK can be expanded with packages.

Read the rest of this entry »



What was on GUADEC 2008

Friday, July 11th, 2008 by Marcin Juszkiewicz

GUADEC is going to end for me today — I am going back home tomorrow. Was it worth going here? Yes, it was. I met interesting guys, spoke about nice projects which I will probably work on soon etc.

Talks

There was lot of interesting talks during this year GUADEC:

  • “Bob the Builder: How can he fix it?” by Rob Bradfort from OpenedHand — it was about Poky, developing for embedded targets, which tools are available and how to use them.
  • “Clutter guts” by Tomas Frydrych, Emmanuele Bassi and Øyvind Kolås from OpenedHand. This was was about Clutter — what it is, how to use, what it gives. For me it was interesting as I did not knew what exactly it is.
  • “Location-aware applications with GeoClue and Gypsy” by Henri Bergius (Nemein), Iain Holmes (OpenedHand), Jussi Kukkonen (also OH) — from clock applet which automatically change your timezone for shopping lists which reminds you about milk when you are near store. I wonder how those projects will change the way of writing applications. For those who does not know what Gypsy is — it is GPS multiplex daemon which does not have gpsd bugs.
  • “Breaking the Silence: Making Applications Talk with Telepathy” by Robert McQueen from Collabora. I think it was a bit too technical but otherwise it shown what Telepathy is and how cool can it be.

I see that some of Lighting Talks can be also interesting.

Parties

O yes… parties… Monday and Tuesday were easy days — we got some Turkish coffee somewhere (it was really good) and Turkish beer (was not good) but next days were different.

On Wednesday evening there was roof party at the University. Lot of people and red wine in plastic/paper cups. Get to sleep at ~02:00…

Thursday… Collabora boat party with “unlimited” beer… That was great event. At 21 we get on board and the party started. Carlsberg is quite good beer and after 3rd can you do not notice taste :) There were few places with stronger alcohols — 15 years old whiskey for example. We went under Europe<>Asia bridges — the first one has animated lights which looks very nice. I spoke a lot with Ken Gilmer from Bug Labs company and it was good spent time. Later from party to came to “bar” near the Golden Horn hotel and from there I walked to our hotel. Final bed time: 03:30…

Today there will be Google sponsored party but I do not plan to go there. I prefer to have some time for packing and rest before traveling home (Istanbul -> Berlin -> Szczecin) and going to the party would makes me look like zombie on Saturday… And I have family event on Sunday so I should look like normal person rather :)

BTW — after boat party I thought that conference could be named GUADEP as sometimes it looks like parties takes more time and attention then conferences :D

Summary

I will not write that it was worth going to GUADEC because it is widely known fact. I met interesting people (also few not interesting ones), discussed some projects with their managers (as talking is always better then exchanging emails).

Next year should be even more interesting as it will be merged with Akademy which is KDE conference (and I use KDE3/4 rather then GNOME on my machines).



Packaged staging and what it gives

Tuesday, July 1st, 2008 by Marcin Juszkiewicz

Many people do not realize that Poky (and OpenEmbedded .dev) have so called “packaged staging” support.

What it is?

Let me try to describe it a bit. During normal builds “tmp/staging” directory is populated during do_stage tasks and there is no way to remove staged files in other way then by hand. With “packaged staging” this area is under package management — each built recipe has those files packaged along with resulting packages, stamps and cross tools.

OK, but what it gives? Why to bother with this at all?

Those are good questions… With fast machines (like my Core2Quad for example) build of “poky-image-sato” can be done in less then 2 hours so it looks like there is no need for any speedups… But not every one has such beasts. With packaged staging developer is able to do repeatable builds in nearly no time (compared to first build) as most of recipes are not built but unpacked from previous builds.

How to use it

To make use of packaged staging “conf/local.conf” needs some editing. Basically one line (inheriting packaged staging class) is important:

INHERIT += "packaged-staging"

To be able to make builds from scratch one more change (moving directory with staging packages outside of “tmp”) is needed:

DEPLOY_DIR_PSTAGE = "${OEROOT}/build/pstage/"

After those edits we need to make first build. I suggest “poky-image-sato” target as this will give all important libraries built and packaged. Everything behave like in normal build — software is built, staged, packaged and final image is created. Bonus is in “${OEROOT}/build/pstage/” subdirectories — extra packages which will be used in any of next builds.

Lets test it

Now when we have first built done (which took few hours) we can test how much will “packaged staging” improve our build time (I assume that both edits listed above were done).

So now comes interesting part — we will remove “tmp” directory and do build from scratch. Please notice what happens — nearly nothing is built (except “stagemanager-native” which handle “packaged staging” functionality) because everything is unpacked from packages done on previous build. If any recipe got updated since last time it will be built and packaged.

End notes

As you see packaged staging can be really useful for making builds — less time is needed, results of following builds are same. And in the end developer has more time for developing :)



LinkedIn and checking email addresses

Friday, May 23rd, 2008 by Marcin Juszkiewicz

Some months ago Ross Burton wrote about checking email authors on LinkedIn:

I generally thought that LinkedIn was pretty useless for people like me. I have a community of like-minded associates available via Planet Gnome and so on, so apart from collecting friends it is pretty useless.

But recently it’s been becoming quite useful. For large companies it generally appears to be company policy that contact with open source projects is done via anonymous email domains, like GMail. This obviously makes it tricky to guess where someone is from when they appear on a mailing list… but LinkedIn to the rescue. Search for a name and hey presto, their CV!

Today I got interesting mail… It was technical question about my blog post “Recent Poky changes” where I wrote about updating QEMU in Poky to handle ARMv6/v7 rootfs. Question like question — but why it came to my OpenedHand email instead of private one? This is private blog…

The interesting part was mail author. As it came from private account which does not tell me anything so I did search on the LinkedIn. Result was nice — one of PDA vendors. I wonder when they will release phone with ARMv6 processor.

Anyway I answered and decided to share answer with other people which want to run ARMv6 Linux under QEMU. So to get it done few things are needed:

  1. recent Subversion snapshot of QEMU
  2. patch for Linux kernel to enable ARMv6 for ARM Integrator PB devboard
  3. ARMv6 rootfs
  4. some time to configure kernel

All those steps can be handled with Poky (or OpenEmbedded) of course. Kernel for “qemuarm” device use properly patched kernel — just kernel config change is needed to enable ARMv6 support. To get ARMv6 rootfs you can adapt “qemuarm” machine config to use proper optimizations (”tune-arm1136jf-s.inc” instead of “tune-arm926ejs.inc”).