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.

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.

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.

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 RedHat/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).