1. Two years of HaeRWu

    Two years passed since I started HaeRWu company.

    First it was just for being able to provide invoices for companies which needed help with OpenEmbedded. Later it helped me to co-operate with OpenedHand without paying big taxes. What future will bring… will see.

    Written by Marcin Juszkiewicz on
  2. Finally moved

    During last weekend we finally moved from Poznań to Szczecin. New flat, new internet connection (10Mbps in, 1Mbps out instead of 3M/0.5M)…

    Still lot of boxes to unpack, furniture to buy, paperwork to do but we are here and have much more space to live then we had before :)

    Written by Marcin Juszkiewicz on
  3. Back from holidays

    We spent previous two weeks on so called holidays. Why “so called”?

    They were quite exhausting two weeks — first two days trip from Poznań to my parents which live in Olecko. We did a break in Grudziądz — I recommend “City” hotel if someone will go there.

    On Tuesday I had crazy trip to London, UK… First train, then train, then 3rd train… Lunch in “Złote tarasy” shopping centre and then public bus to Warsaw “Okęcie” airport. Few hours later landed on Luton airport and finally after 13h trip I was at hotel. But that trip was worth it — we were informed that there is no OpenedHand anymore, we “are” Intel now (“” because we needs to sign papers etc).

    Two days later even more crazy trip back… This time from Heathrow airport to Warsaw and then night public bus to Olecko (I got sitting place after 4h of standing). Nothing strange that I was zombie on my brother’s wedding which took place on same day when I got back…

    My brother's wedding
    My brother’s wedding

    But finally I was able to make use of free time — walking though Olecko is good thing. There are many green places, no big traffic etc. Great place for holidays. And there are many lakes around… This year (as we do each year) we also walked around “Olecko Duże” lake — this takes few hours as whole path is over 12 km long but it is worth doing.

    Lake in Olecko
    Lake in Olecko
    My daughter, me and swans
    My daughter, me and swans

    In meantime we made short trip to Vilnius, Lithuania where we visited some interesting places and on back trip enjoyed visiting Trakai castle.

    Trakai castle
    Trakai castle

    It was maybe a bit exhausting some times but overall I enjoyed that time.

    Written by Marcin Juszkiewicz on
  4. What do I do for living

    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…

    Written by Marcin Juszkiewicz on
  5. KDE 4.1? No, thanks

    I am using KDE since switched from Duron 600 to Athlon XP (few years ago). IIRC it was 3.1.something then. It was nice improvement from my desktop built on ROX-Filer + gnome-panel and WindowMaker. Time passed, my machines got faster and faster, 3D hardware acceleration was added with NVidia cards and then KDE 4 started to appear…

    I installed KDE 4 on my desktop and tried to use it for few months. First it was 4.0.x but I upgraded to 4.1-svn packages when they started to be available for Debian. Ideas which KDE team has are nice but usability of such desktop is much worse then KDE 3.5.9 one :( Too much bling, too less features so I “upgraded” back to 3.5.9 to get nicely working system.

    What did I lose with KDE 4.1 (tried final release yesterday):

    • fast desktop switching (if there is Konsole open on desktop it will render for long time)
    • fast Konsole tab switching (I have 2-8 tabs in terminal)
    • ability to set/move panel at any edge of screen (now I use top panel, used more)
    • ability to reorder applets/plasmoids in panel (ops - there is a way but not as intuitive as it was in 3.5)
    • Klipper is not usable (crash on nearly each use, not launching browser)

    From what I read on KDE website Konsole problems are related to NVidia cards and workaround is given. I wonder why there is no check in preferences “I have NVidia — do not use ARGB windows then” or other way. I think that it should be easy to check with few function calls which OpenGL libs are in use…

    Looks like now I have to wait to 2009 for KDE 4.2 and then check does it behave or not. Or maybe it is time to check XFCE or other environment?

    Written by Marcin Juszkiewicz on
  6. Nokia N8x0 emulation part II

    My previous post about Nokia N800 tablet emulation became one of popular ones. On LinuxTag I shown Maemo booting in QEmu and it was met with nice response from community. But the problem remained — how to boot it when config.mtd which I used was not distributable…

    Yesterday I solved that part. After studying how Maemo boots and why does QEmu restarts with wrong config.mtd I grabbed that partition from my N810 and tried again. This time OS2008/Chinook booted fine :)

    What is needed? Tablet needs to have “no-lifeguard-reset” flag set. IT can be done by using flasher as this is one of R&D flags. I had it set on my N810 because I did experiments with booting from internal SD card in past.

    Maemo OS2008 (Chinook) on emulated N800 - first screen
    Maemo OS2008 (Chinook) on emulated N800 - first screen
    Maemo OS2008 (Chinook) on emulated N800 - desktop
    Maemo OS2008 (Chinook) on emulated N800 - desktop
    Maemo OS2008 (Chinook) on emulated N800
    Maemo OS2008 (Chinook) on emulated N800

    Thanks to Faheem Pervez (more widely known as) from his N800 I was able to confirm that this is all what is needed.

    Next step will be updating qemu to more recent revision to get N810 emulation (which is present in HEAD) and getting Diablo booted.

    UPDATE: Diablo booted on emulated N800 and N810:

    Maemo OS2008 (Diablo) on emulated N800
    Maemo OS2008 (Diablo) on emulated N800
    Maemo OS2008 (Diablo) on emulated N810
    Maemo OS2008 (Diablo) on emulated N810

    Nokia N810 emulation is more useful as there is a keyboard attached so no need for use of onscreen input methods. There are some things to remember anyway:

    • Alt(Gr) behave like Fn (with sticky status)
    • no CapsLock (but Shift works like on N810 so no big loss)
    • no numeric row — to get “5” press “Alt+t” like on N810
    • some of other keys are also in weird places
    • Right Shift does not work (N810 has 2 Left Shifts)

    NOTE: This is QEmu HEAD — no extra patches were needed to boot Chinook on emulated N800. To boot Diablo “hw/nseries.c” file needs to be edited to change partition info (initfs is twice as big compared to Chinook).

    Written by Marcin Juszkiewicz on
  7. I am 0x20 now

    Since Saturday I am 0x20 years old. We had small meeting with birthday cake etc. There was no candles on it because it is hard to put so many of them on small area. One friend had idea of putting 6 candles (with only one lit) but rest of company was non-IT so would not catch (there was already problem with “0x20” text on cake)…

    The most of fun was with one present which I got week before by post… It had “Open 26th July” sign on it so had to wait. Inside was puzzle made from C code — really hard to solve because source looked like one of contributions to IOCCC (and later I got information from friend that it indeed was based on one of them: gavare/2004). It took some time and 3 persons to solve puzzle.

    Completed puzzle with C source
    Completed puzzle with C source

    Next part was entering source into C file… As I do not know any good OCR software for Debian GNU/Linux I had to type all 35 lines by my own hands. Good that with puzzles there was a sheet of paper with md5sum for each line (I had 5 typos). Resulting source compiled out-of-box with GCC 4.3.1 (but lot of warnings). Output of application does not had any sense to me anyway… But after redirecting to file and leaving for time longer then 2 minutes it finally ended work (after 12,5 minutes). Result was PPM picture with birthday wishes :)

    Birthday wishes
    Birthday wishes

    Some presents are really great :D Thx, Ury!

    Written by Marcin Juszkiewicz on
  8. Using Poky SDK to build software

    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.

    Installation

    This is described in Poky Handbook already:

    The meta-toolchain and meta-toolchain-sdk targets (see the images section) build tarballs which contain toolchains and libraries suitable for application development outside Poky. These unpack into the /usr/local/poky directory and contain a setup script, e.g. /usr/local/poky/eabi-glibc/arm/environment-setup which can be sourced to initialise a suitable environment. After sourcing this, the compiler, QEMU scripts, QEMU binary, a special version of pkgconfig and other useful utilities are added to the PATH. Variables to assist pkgconfig and autotools are also set so that, for example, configure can find pre-generated test results for tests which need target hardware to run.

    Using the toolchain with autotool enabled packages is straightforward, just pass the appropriate host option to configure e.g. “./configure —host=arm-poky-linux-gnueabi”. For other projects it is usually a case of ensuring the cross tools are used e.g. CC=arm-poky-linux-gnueabi-gcc and LD=arm-poky-linux-gnueabi-ld.

    Extending SDK

    So you want to build GTK+ based application but “configure” tells you that you miss GTK+ headers? In normal systems you would install development packages. Same is with Poky SDK, but due to fact that there are no repositories for Poky a bit more work is needed.

    You will need contents of “tmp/deploy/ipk/” from other developer or from local Poky build. I have them from local build and they are stored in “/home/hrw/devel/OH/poky/trunk/build/tmp/deploy/ipk” directory.

    Next step is editing opkg configuration file (stored in /usr/local/poky/eabi-glibc/arm/arm-poky-linux-gnueabi/etc/opkg.conf) to add feeds locations. With my packages it looks like this:

    arch all 1
    arch any 6
    arch noarch 11
    arch arm 16
    arch armv4 21
    arch armv4t 26
    arch armv5te 31
    arch qemuarm 36
    src oe-all file:/home/hrw/devel/OH/poky/trunk/build/tmp/deploy/ipk/all
    src oe-armv5te file:/home/hrw/devel/OH/poky/trunk/build/tmp/deploy/ipk/armv5te
    

    Now it is time to install those missing headers: opkg-target update will update list of available packages and opkg-target install gtk+-dev install required headers.

    Building software

    Hello world

    First something really simple: helloworld.c. Run arm-poky-linux-gnueabi-gcc hello.c -o hello. Result will be ARM binary:

    14:14 hrw@home:$ file hello hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped
    

    Autoconf based application

    I took Tasks 0.13 as an example as it use some libraries not present in standard toolchain. After unpacking and starting ./configure --host=arm-poky-linux-gnueabi I got message that GTK+ headers are missing so I installed them with opkg-target install gtk+-dev (like it is described).

    After next “configure” call there was message about missing “libecal” which is part of “eds-dbus” so opkg-target install eds-dbus-dev solved problem.

    Finally “configure” does not give any errors and make call built application:

    14:19 hrw@home:tasks-0.13$ file src/gtk/tasks
    src/gtk/tasks: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.14, dynamically linked (uses shared libs), not stripped
    

    Summary

    As you see Poky SDK is not limited to default set of packages but can be extended with additional ones. OK, someone needs to build them first but imagine situation when company has 10 developers — one has Poky build tree which he use to generate packages which can be used by rest of team without spending precious time on building.

    BTW — It is not limited to Poky SDK. Other OpenEmbedded based systems should be more or less capable of doing such things.

    Written by Marcin Juszkiewicz on
Page 64 / 106