1. Children make funny moves

    Today was another night when I had to wake up to monitor my daughter and turn her to the back after about half hour. All due to night feeding.

    Most of times I use this time to hack on my work projects and chat on IRC — mostly on #maemo as this channel never sleeps (gratz to KotCzarny and AStorm).

    But back to the subject. Children and their funny moves… After I turned Mira to the back she squirms in a funny ways — all those hips shaking, hands waving before she will find optimal position so I can cover her with blanket.

    She is sweet :)

    Written by Marcin Juszkiewicz on
  2. History meme

    My main system gives me this:

    hrw@home:~$ history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head

    379 git
    209 bitbake
    171 cd
    113 sudo
    111 ls
    77 rm
    76 mc
    73 mtn
    73 grep
    72 svn
    

    It is easy to see what takes most of my time ;)

    Written by Marcin Juszkiewicz on
  3. Nokia N800 emulation

    Few days ago Nokia N800 tablet emulation was released into public. Richard integrated it into Poky so now we have QEMU which can be used not only to test ARM images on ARM Versatile or Sharp Zaurus but also to run on Nokia N800 tablet. Of course it is not limited to Poky images — Maemo boots very nicely on it :)

    Poky

    Booting Poky is easy: runqemu nokia800 after building of “poky-image-sato” for “nokia800” machine. After few minutes (needed to create NAND Flash image and boot into JFFS2 rootfs) Poky desktop appears:

    Poky on emulated N800 - first screen
    Poky on emulated N800 - first screen
    Poky on emulated N800
    Poky on emulated N800
    Poky on emulated N800 - Dates application
    Poky on emulated N800 - Dates application

    Maemo

    Booting Maemo takes few steps more now (will be improved).

    1. Edit “scripts/poky-qemu-internal” script and in line 154 change KERNELCMDLINE to boot from “/dev/mtdblock3” instead of “/dev/mtdblock4” as Poky do not use Maemo’s “initfs”.
    2. Get copy of “config” flash partition from N8x0 — simple “cat /dev/mtd1ro > config.mtd” is enough. Bad news: it does not work :( And the one which works for me is not distributable as it does not came from device but was pre-generated somehow.
    3. Transfer it to the desktop.
    4. Grab OS2008 firmware image from Maemo website.
    5. Unpack firmware image to get kernel and images of “initfs” and “rootfs”.
    6. Use poky-nokia800-flashutil to generate NAND Flash image:

      poky-nokia800-flashutil initfs.jffs2 maemo-image.qemuflash initfs poky-nokia800-flashutil config.mtd maemo-image.qemuflash config poky-nokia800-flashutil rootfs.jffs2 maemo-image.qemuflash rootfs

    Then “touch maemo-image” and run one command: poky-qemu zImage maemo-image to boot it.

    Maemo OS2008 on emulated N800 - first screen
    Maemo OS2008 on emulated N800 - first screen
    Maemo OS2008 on emulated N800 - desktop
    Maemo OS2008 on emulated N800 - desktop
    Maemo OS2008 on emulated N800
    Maemo OS2008 on emulated N800

    Status

    Basic emulation works. There is no networking yet, DSP code is not emulated and few other limitations. But it is work in progress so expect improvements.

    How to get it

    Patch alone can be fetched from Poky repository.

    Linux binaries of QEMU with N800 support can be built with Poky by bitbake qemu-sdk command. They will be also part of Poky Linux SDK.

    UPDATE: poky-nokia800-flashutil instructions are fixed (thx to Yasser)

    UPDATE: there is second part of that story.

    Written by Marcin Juszkiewicz on
  4. The curse of Maemo — closed source components

    Three months ago I wrote post about situation of my Nokia 770 tablet. Today I looked how situation looks with non-Maemo systems.

    Flashed recent Poky Linux build. Device booted into nice Sato desktop which I am familiar with. As it was expected — no WiFi support in base system. Why? Licensing problem.

    Nokia tablets WiFi stack in implemented by:

    • firmware loaded to the chip at runtime (when interface is brought up)
    • closed source wi-fi stack in module umac.ko
    • open source glue layer cx3110x which forwards packets between firmware and umac.ko over SPI and implements support for linux wireless extensions API.

    We also use 2.6.18 kernel from OS2007 instead of 2.6.16.27 from OS2006. With some hacking on “umac.ko” module from 2.6.16.27 + patching “cx3110x” driver I got module which loads on my device. But then other problem appeared — WPA Supplicant is unable to connect to WiFi interface due to lack of wireless extensions support. And Nokia implementation is closed source :(

    On IRC I got information that there is a patch which adds WE18 support into cx3110x driver. Fetched, applied but situation is the same:

    [ 7206.999359] umac: module license 'Proprietary' taints kernel.
    [ 7210.030334] CX3110x chip variant: STLC4370
    [ 7210.319458] CX3110x: firmware version: 2.13.0.0.a.13.14
    [ 7210.319580] Loaded CX3110x driver, version 0.8
    root@nokia770:~# wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant.conf
    ioctl[SIOCSIWPMKSA]: No such device
    

    and then reboot :(

    So it looks like my 770 will get Maemo OS2006 again and will end it’s life as console for simple games + music player. Too bad that it hard to make it work with other systems.

    BTW: I wonder why Maemo.org forbids GoogleBot… It is really hard to find Maemo related things with Google :(

    UPDATE: Niels Breet (X-Fade on #maemo) pointed me to maemo webdevs discussion which clarify that GoogleBot index Maemo websites. My fault — sorry guys. It is hard to find current informations in wiki but there are plans to move to MediaWiki and reorganize content.

    Written by Marcin Juszkiewicz on
  5. CSS Naked day

    This year I decided to strip my blog from CSS code used for making design (as part of CSS Naked day).

    The idea behind this event is to promote Web Standards. Plain and simple. This includes proper use of (x)html, semantic markup, a good hierarchy structure, and of course, a good ‘ol play on words. It’s time to show off your .

    And I think that my blog do that quite well. OK, it has few bugs in code so no W3C validation but it is partially WordPress fault ;D

    Written by Marcin Juszkiewicz on
  6. Speeding up BitBake builds

    OpenEmbedded builds usually take lot of time as not everyone has build machines with multiple CPUs (or multi-core CPUs). But how to make them faster and make better use of multiple CPU cores?

    Solution is in two BitBake variables:

    1. PARALLEL_MAKE — this is passed to make so setting it to “-j X” is handy (where value of X depends on number of CPU cores)
    2. BB_NUMBER_THREADS — amount of BitBake threads used to run tasks such as do_fetch, do_configure, do_compile etc. Do not set too big value or machine will melt and you will loose control over it ;)

    Which values are sane? On Core2Quad I use “-j 4” and 16 BitBake threads. On dual core Athlon64 I use less threads (only 4) but this machine is also my desktop so I like to be able to work :) Sometimes I have two builds locally running with those settings and it is still usable.

    How to check which one are good for you? Run htop on one console and builds on another. If CPU cores are busy and it does not hit swap too often then it is OK.

    NOTE: this post was written in 2008 and may not fit newer versions of OpenEmbedded/Yocto based build systems.

    Written by Marcin Juszkiewicz on
  7. Polish layout for N810 hardware keyboard

    Thanks to work done by Jiri Benc in his “ukeyboard” alternative control panel for language and regional settings I am able to present Polish layout for N810 hardware keyboard.

    Polish chars are on Chr+ (where is one of “acelnosxz”).

    Also few other combinations are added:

    Fn+Space = | Chr+Space = Tab Chr+j = [ Chr+k = ]

    Original functions of “Chr” key were dropped — there is no small on screen keyboard after single press of “Chr” and no option to enter other national chars (like “öïüõôōő” etc).

    Click here to simple install.

    Written by Marcin Juszkiewicz on
  8. No, I am not moving to London

    Previous post about moving to London was 1st April joke. We plan to move from Poznań but not outside of Poland. So sorry guys — we will meet in UK one day but it will be short visit not staying.

    I have to admit that I did not thought that so many people will take that post serious. First congratulations came less then half hour after publishing, then IRC greetings… Probably this is because it is so near to true — as person working alone at home I miss contact with coworkers (as this often ends in brainstorming) and OH office has some interesting gadgets :D

    Why “moving to London” was chosen? I did not had a good idea for April’s fools joke and Ania (my wife) gave me this suggestion. Other ideas were:

    • starting to work for Microsoft Canada (I had such offer month ago but no one would believe in this)
    • dropping OpenEmbedded/Poky in favour of T2 from TimeSys (also hard to believe)

    And few others also too hard to believe so I wrote what I wrote. Sorry guys.

    Written by Marcin Juszkiewicz on
Page 67 / 106