1. Contributing to Poky is not hard

    About 2 years ago I started to work (as contractor) for OpenedHand as full time Poky developer (I did not worked on kernel/applications — just Poky itself). During that time we made few releases, and last of them (‘elroy’) was prepared but never got released (it is present on OH servers anyway). I also worked on upgrading systems used by OH clients.

    Now I work for other companies and one of them (Bug Labs) use Poky. We use last official release (‘pinky’) which shows it’s age so we bumped some components to newer versions to get some additional software built. During that we had to fork some classes/recipes to make needed changes. Those changes were available only in Bug Labs repository and I decided to review all of them to get as much as possible merged back into Poky.

    I created single patches and started to show them to Richard Purdie to get them accepted. It was hard sometimes but I understand why — there are strict policies for backports in Poky (everything backported has to be present in ‘trunk’ for example). After some of our changes got accepted he created ‘poky-contrib’ repository and gave me access to make it easier in future.

    Since then I created few more backports/fixes and all of them were merged. I do not have to show him every patch separately — it is just “please pull” mails to Poky mailing list or similar discussions via Jabber.

    Having possibility to easy sharing changes is great thing.

    Written by Marcin Juszkiewicz on
  2. AT91SAM9263-EK board

    Some time ago I got AT91SAM9263-EK board which was given by Atmel company. It is not first developer board which I use but first which I own ;)

    Currently I run 2.6.28 kernel on it and have a problem with audio as it works only via OSS emulation and OOPS when ALSA is used directly. I tried 2.6.20 and 2.6.29-rc2 but problem was the same.

    Today I moved from nfsroot to root on NAND flash. But this time I used UBIFS instead of JFFS2 (which I used in past on devices). Kernel is still fetched from TFTP server but I will change that later (there is a space on flash still). I have to admit that my old setup (tftp kernel + nfsroot) is really handy for rapid development — no need to copy anything to device, no need to remember about syncing when RESET key is pressed etc.

    Next plans for board? Not defined yet but I know that I will use it for quite long time as main development platform.

    Written by Marcin Juszkiewicz on
  3. How to install additional software into your OE generated rootfs

    There are few methods of adding software into rootfs. You can copy binaries but you can also go better way by using packages. I know that this can be strange experience for some people (which are used to systems which generates only binaries) but in OpenEmbedded world effect of software build is set of packages which can be used to generate final rootfs image.

    First thing to check is which package contains needed binary. It is easier if package name has binary name (like ‘alsa-utils-aplay’ which contains ‘aplay’ command) but it is not always so easy. Hopefully OpenEmbedded generates ‘Packages.filelist’ file in ‘tmp/deploy/glibc/ipk/’ subdirectories. If they are empty (common situation) they need to be recreated.

    To generate them user needs to remove ‘Packages*’ files from all directories and call bitbake package-index command. When command finishes ‘Packages.filelist’ files should contain all informations — for example ‘update-inetd’ command line looks like this

    update-inetd netbase:armv6:./usr/sbin/update-inetd
    

    The format is simple:

    BINARY-NAME PACKAGE:ARCH:PATH-TO-BINARY
    

    So when package name is known we need to transfer package into device. This part depends on device so I will not elaborate on it.

    Installing package is simple: opkg install package.ipk. But copying single packages can result in frustration called ‘dependency hell’ (package require another package which require another etc). To check which packages will be required the easiest way is dpkg-deb -I package.ipk (as IPK packages are compatible with DEBs).

    Better way is to use repositories of packages — command simplify to opkg update;opkg install package (users of desktop Linux distributions can compare it with apt-get or yum). If you built Ångström distribution then your rootfs already contains all informations needed to use packages from repositories. For other distros user needs to define them by hand.

    Repository informations are stored in ‘/etc/opkg/*-feed.conf’ files. Format is simple:

    src/gz NAME URL
    

    Example:

    src/gz base http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv5te/base
    

    Instead of ‘src/gz’ also ‘src’ can be used — it will fetch uncompressed ‘Packages’ file instead of gzipped one.

    When repositories are defined installing software is easy: opkg update;opkg install package will fetch package and all it’s dependencies and then will install them into rootfs.

    I hope that this will simplify that task for some people.

    Written by Marcin Juszkiewicz on
  4. Good bye Zaurus

    Nearly two years ago I wrote about end of Zaurus production. This news ended on many websites around the globe (mostly without quoting source). But it was not end — Sharp was producing Zaurus clamshells from time to time during those two years.

    In December 2008 there was another set of news that Sharp ends Zaurus production. This time it looks like real end. Marc from TRISoft told on OESF forum: “Last production run was March 2008. And we’re now out of stock with new units. Looks like it’s now really over and out.”

    I ended my work on Zaurus machines about year ago. OpenZaurus was ended, I had job to do and other devices to support. But still from time to time I used my c760 for some debug sessions (usually in cases where QEMU was not enough). With serial cable and wifi card it was good substitute of developer board.

    Today I got Atmel AT91SAM9263-EK board. Will work on it on Monday and it will be my main testing/development platform for some time. Probably next will be BeagleBoard or other OMAP3 based device.

    Written by Marcin Juszkiewicz on
  5. Started 10 year with Debian

    Today I talked with Dodji Seketeli about misc things and noticed that I started 10 year of using Debian GNU/Linux.

    First attempts were on my Amiga 1200 equipped with Apollo 1240/40 expansion board (I had 32/48/64MB of RAM on it) and Fast-ATA controller. After installation of “slink” I was playing with system and then moved to “potato”. In Polish Amiga magazine “eXec” I put my article about installing Debian on Amiga systems and also updated “potato” official installation guide. Those were crazy times. All I had was VGA mono text console because running X11 on AGA graphics chipset resulted in very slow display so it was unusable for any serious use. But I learnt lot of things which I was not able to learn on my user accounts on misc x86 Linux boxes. For example with my friend we connected his Commodore 128D via serial line and used to do email/www/irc from it (via serial->ssh connection).

    It was also first time when I used cross-compiler — I used PentiumII based Linux machine to build Amiga (m68k) kernels. It gave nice speedup (also due to much faster harddisk interface).

    In 2001 I sold my Amiga system and moved to x86 land. Here amount of available Linux distributions was much wider (for Amiga/m68k only Debian was available) but as I knew Debian I decided to stick with it. After years I have to admit that it was one of my best decisions when it comes to computers.

    I even used Debian on 386sx based PC with 5MB of memory — it was nice terminal to my main box :)

    Why Debian and not Red Hat/Mandriva/LFS/Gentoo? I think that this is due to DFSG and that license stuff is very good solved. As a result I do not have to check license of application if I want to hack it. I only need to check does it is in “main” part of repository.

    OK, some people can say that Debian has very long release cycle… But I use “sid” (aka “unstable”) not releases (aka “stable”) so the only thing which touch my systems is sometimes lack of newest software (but usually it lands in “experimental” branch).

    Written by Marcin Juszkiewicz on
  6. 2008 timeline

    2008 is ending. As before it was very good year. I have very nice daughter, our family has new flat. My company has clients with interesting projects.

    January

    February

    March

    April

    May

    June

    July

    August

    • Intel acquired OpenedHand — I got job offer in UK but decided to not move. It was nice to visit London again, too bad that I lacked time to see anything (as usual). The whole trip was crazy (have you ever travelled on the night bus standing for 4 hours straight?)
    • We visited my parents and I was asked (again) what exactly I do for living. So I answered and my mother understood.
    • I resolved problem with Nokia N8x0 tablets emulation — one flag needs to be unset to make Maemo boot in QEMU.

    September

    October

    November

    • Unpacked Progear webpad to check how recent kernels work on it and update it’s configuration in OpenEmbedded a bit.

    December

    Written by Marcin Juszkiewicz on
  7. BUG has arrived

    On Thursday I got package from DHL courier (one note for future: if you need to send me something by courier service avoid Fedex). Inside was nice box with BugLabs logo.

    After unpacking I got BUG, or to be more precise:

    • BUGbase
    • BUGview module
    • BUGmotion module
    • VonHippel module
    • BUGlocate module
    • external antenna for BUGlocate GPS
    • power supply
    • SD->microSD adapter
    • 2GB microSD card

    This is how modules look:

    Base and modules
    Base and modules

    VonHippel is interesting module as it gives access to I²C, serial, I²S, DAC, ADC, GPIO, SPI, power signals. It is named after MIT professor Eric von Hippel (because he thought of it!) author of “Democratizing Innovation”. This module allows to connect just about anything electronic to the BUG. Interview with professor can be seen on BUG Blogger website.

    VonHippel module
    VonHippel module

    Size is comparable with Nokia N810 tablet. Would be nice to get 800x480 screen for BUG (i.mx31 has OpenGL acceleration).

    BUGbase on bottom, N810 on top
    BUGbase on bottom, N810 on top
    BUGbase on bottom, N810 on top
    BUGbase on bottom, N810 on top

    This is usual configuration when I work with device (just screen and VonHippel):

    Top view with screen and VH attached
    Top view with screen and VH attached

    There is 64MB of flash in device but by default it boots from microSD card (2GB one was in package). This allows for easy rootfs tweaking/updating. Kernel flashing takes lot of time but we plan to work on other methods of booting kernel.

    microSD, USB, Handylink, power switch, power LED, power. USB Host in VonHippel
    microSD, USB, Handylink, power switch, power LED, power. USB Host in VonHippel

    With all modules plugged in it starts to be thick… You can notice 4 function keys on left side, joystick and button on right and monochrome screen between. By default it shows clock and icons of plugged modules but with joystick some system menu can be used.

    Front view with all modules plugged in
    Front view with all modules plugged in

    Whole device is powered by BUG Linux which is based on Poky ‘pinky’ release with some updates. Access to all modules is only from Java at that moment. But that not mean that it is closed device — everything in BUG and its modules is open and free. There is a WiFi module (not released yet) which uses chipset from “libertas” family (same family as the one in OLPC).

    I am curious what will future bring for this tool.

    Written by Marcin Juszkiewicz on
  8. Beavers invasion

    Today my workplace was invaded by beavers. But they are not normal beavers but Poky Linux ones.

    At the beginning there was just one of them — he came and checked clock to know which timezone is in use here:

    First was one
    First was one

    Few minutes later his companies arrived and synchronized clocks:

    Synchronizing clocks
    Synchronizing clocks

    After few minutes they invaded my working place…

    Invasion!
    Invasion!

    Good that they are friendly and came to help me support Poky Linux based systems :)

    Written by Marcin Juszkiewicz on
Page 62 / 107