When maemoscrobbler seems to be stuck…

My N800 was running off-line for quite a while. During this time I’d listened to a bunch of songs with Kagu and was hoping that it would immediately scrobble them to last.fm as soon as I went online. After much fiddling around, I discovered that you must play another song in Kagu while online, in order to launch scrobblerd (via dbus). This, in turn, submits all the tracks queued for scrobbling while offline via maemoscrobbler.

I found some helpful maemoscrobbler tips in this #maemo IRC log.

Filed under: maemo,N800 — twegener @ 0:06


Exaile volume problem in OS2008 fixed

I finally got around to looking at the problem tonight. The fix was very simple. My apologies for not addressing this sooner!

Get the updated .deb.

The problem was due to the volume range on the original Exaile going from 0-1. For some reason on maemo (OS2008) the volume range is 0-10. According to the gstreamer volume control docs the range should be 0-10, so I’m not sure why the original Exaile works properly on my desktop machine.

Anyway, I mainly use Kagu and Vagalume for music on my N800 these days. As a result I haven’t done anything on maemo Exaile for ages. I hope to one of these days, though.

Filed under: exaile,maemo,N800 — twegener @ 23:34


Updating the N800 to OS2008

Here are my notes from updating to OS2008 for getting root access via ssh and taking an early snapshot of the image filesystem with rsync:

  1. Download the OS2008 firmware image.
  2. Follow the instructions for flashing with new firmware image
  3. Go to Settings->Application Manager and go to Tools->Application Catalog and enable the Maemo Extras repo
  4. Click ‘Browse installable applications’ and inst the OpenSSH package
  5. Repeat the flasher steps but replace the flash command line with flasher/flasher-3.0 --enable-rd-mode to enable R&D mode
  6. Go to Utilities->X terminal and do sshroot@localhost
  7. Change the default password: passwd
  8. Repeat the flasher steps but replace the flash command line with flasher/flasher-3.0 --disable-rd-mode to put the tablet back into production mode
  9. Install rsync from the .deb package
  10. Take a snapshot of the root file system by using rsync to copy from the device to another machine: rsync -avzx root@:/ snapshot_dir
  11. Follow the instructions for entering Red Pill Mode
  12. Install apps such as less, screen, wget
  13. Return to Blue Pill Mode

The tips needed to get ssh root access working again mainly came from here.

Most of my previously installed packages in OS2007 are already available for OS2008. The main ones that I am still missing are gtick (metronome) and a UPnP client. IIRC, I grabbed everything form the official maemo downloads page and this list of Working 2008 OS Software.


  • This update increases the maximum CPU clock speed from 330MHz to 400MHz. The graphical interface feels snappier.
  • The browser is now the mozilla-based microb browser which seems to use more memory and slightly slower than the previous Opera browser. However, it’s free software and supports newer web standards, so I’m happy with the change.
  • The graphical interface is nicer. The designers appear to have responded to user feedback well in this area.
  • There are more codecs , but still no Ogg Vorbis support, which is very disappointing. The third-party package works fine with third-party media players, but doesn’t work with the default media player.
  • Media streaming on the ABC now works. Among other things, this means I can listen to the local radio station from anywhere, and not have to suffer crappy AM quality. Annoyingly, when playing Internet radio from the widget it keeps a message box open (“buffering”) for as long as I have it playing.
  • I haven’t done any careful measurements of the battery life, but it seems to be about the same. This is a bonus given the increase in CPU speed.
  • Newer kernel (2.6.21), Gtk (2.10) and DBUS (1.0) and gstreamer now supports the generic playbin,
  • The built-in media player has been substantially improved, but without Vorbis support it’s of limited use to me. I prefer to use Kagu or Exaile.
  • Why is there still no support for recording videos in the camera app?
  • The problem where, if Bluetooth is disabled from the system tray, the Bluetooth icon disappears, so must be re-enabled from Control Panel, still persists. Annoying.
  • Text prediction and automatic capitalization are off by default.
  • The on-screen keyboard seems to be a bit over-sensitive and often registers a key twice when it was only tapped once.

With this update, it feels like the Internet tablet OS platform is maturing nicely.

Filed under: maemo,N800 — twegener @ 23:35


Exaile for maemo 4.0 (OS2008)

I’ve made a new release of Exaile for maemo 4.0 (i.e. OS2008, chinook). This drops a bunch of backward compatibility patches needed for OS2007, and takes advantage of some gtk 2.10 features. Also, there was a bug in the gtk shipped with OS2007 that prevented activating items in the sidebar. This has gone away, so now there are more playlist actions available.

Exaile on N800 (OS2008) screenshot

Note that the previous release won’t work on OS2008 because the id3lib gstreamer element is called id3demux in OS2008.

If you are in need of a player that handles Ogg Vorbis, m4a and mp3 (among others) on OS2008 and has decent playlist management features and you are willing to put up with a slightly slow and fat app then Exaile for maemo may be for you. :-)

Filed under: exaile,maemo,N800 — twegener @ 22:38


Exaile 0.2.11 for maemo

I’ve updated the maemo port of Exaile to version 0.2.11. There are not many visible changes, apart from alphabetic separators in the collection list. I now include the bytecode-compiled pyc files, so startup time should be reduced slightly. It still takes a bit long to start up though. I’ve been using this for about a month now and it seems to be stable enough.

This will probably be the last release for OS2007. I’ll make a release for OS2008 once I have that installed and working on my N800.

Filed under: exaile,maemo,N800 — twegener @ 22:09


How to create a .deb package for maemo without Scratchbox

The officially recommended way to create .deb packages for the maemo platform is to use dpkg-buildpackage within Scratchbox. For me, Scratchbox is a pain to install for two main reasons. First, there is no RPM package of the scratchbox environment, so apparently I need to run some scripts as root, let my system get a little messier, which I am not willing to do. Second, the docs advise to turn off SELinux in order to get the Scratchbox environment to work, which again I am not keen to do.

If you are using Debian or Ubuntu, there is probably a cleaner approach, but I am currently using Fedora, so I just rolled my own method using the command line. Copy the following files to your project directory:

Then rename deb_hand_example.mak to Makefile, and adjust the variables in this file to match your project.

Setup the required files (referenced in these makefiles) for packaging. There some pointers on this in the Python Maemo howto in the packaging section.

Note the ${PACKAGE_DIR}/data: ${SOURCE_DIR} target in the makefile. This must be modified to layout all files as you wish them to be installed on the target system. The example makefile rule should be a reasonable guide.

Then once you are ready, do ‘make PACKAGE_DIR= deb’ and if all goes well a shiny new deb package should be sitting in release_dir. If not, fix your settings in the Makefile, run ‘make clobber’ and then try again.

Filed under: maemo,N800 — twegener @ 14:40


Exaile N800 port webpage

I’ve whipped up a webpage for the Exaile N800 port. This has the latest packages, screenshots, todo list, etc.

I’ve also made a new release with the following changes:

  • Basic Hildon-ization: window, menus, full-screen support, file dialogs
  • Icon now appears in taskbar
  • Fixed default OSD background colour
  • Made track info in title bar briefer

Double-clicking the playlist items in the sidebar doesn’t work. This is due to this bug in maemo gtk. Vote for it if you want this fixed.

There is plenty still to be done. I don’t have stacks of time to work on it at the moment. Send me some encouragement and I may work a bit faster. :-)

Filed under: exaile,maemo,N800 — twegener @ 22:02


Exaile N800 port updated to 0.2.10

I’ve rebased the N800 port of Exaile to the latest upstream release. In the process, I tidied up my existing patches and it is marginally more stable now. Here are some of the more noticeable changes:

  • the track position is now a progress bar and looks much nicer (upstream)
  • the plugin loader works now (upstream)
  • the volume slider works better (upstream)
  • turned off a lot of my debug output from the previous release
  • fixed a bug where a playing track would occasionally stop out of the blue

.debs are here:

Next, I’ll probably work on making the interface a bit prettier, starting with hildon-izing the menus. I’d also like to add Replay Gain support to Exaile at some stage. And of course there are still a few bugs to iron out. There is a TODO file tucked away somewhere in the package with more details on things that need to be done.

BTW, make sure you change the foreground color in the preferences for the OSD notifications. There is some problem setting the background color at the moment which results in the notifications appearing blank. I’ll fix this (at least the default setting) soon.

Filed under: exaile,maemo,N800 — twegener @ 22:56


Preview .deb packages for Exaile for maemo

After much messing around I have build some .deb packages for my Exaile for Maemo port and the mutagen library (one of its dependencies):



There’s lots of work still to be done, but if your desperate for a nicer sound player on the N800 then this should do the job. If there are any features that you would like to be fixed/added sooner rather than later then leave a comment and I’ll push it higher on my todo list.

Filed under: maemo,N800,Python — twegener @ 23:11

Manually creating a .deb package for maemo

After much gnashing of teeth I have managed to manually make a .deb package that installs on the N800. I wanted to make the .deb by hand since I use Fedora on the desktop, for which the dpkg tools are not available. (I haven’t installed Scratchbox, because there are no rpms available for it at the moment, and I’d like to install it cleanly.)

A .deb package is quite simple, at least in theory. It consists of a control.tar.gz archive with package control files, data.tar.gz archive of all files that will be installed and debian-binary file that indicates the deb version to use. These files are then placed within an ar archive.

I cobbled together the archive contents using a hacky make file and sed. The final ar archive was the main sticking point. The ar format used in .deb packages is different to that generated by GNU ar. By looking at an existing deb package (the one for maemo-wordpy as it happens) with the emacs hexl-mode and consulting the wikipedia entry on the ar format and a few other people who shared my pain, I was able to come up with a sed script to fix the internal headers:

sed -e 's|^\([^/]\+\)/ \(.*\)|\1 \2|g' temp.ar > output.deb

This still didn’t cut the mustard. It turns out that the order of the files within the ar archive is important:

ar -rc temp.ar build/debian-binary build/control.tar.gz build/data.tar.gz

The complete makefile is a bit of an embarrassment at the moment, so I won’t post it here. At some stage I’ll write a more general script for generating .deb packages.

A few more things learnt along the way:

  • dpkg-deb on the N800 cannot be used to make .debs since it appears to be incompatible with the busybox version of tar
  • non-header lines in the control file most be indented (e.g. description lines and base64-encoded icon)
  • the maemo installer icon is 26×26; ImageMagick is helpful here: convert -rescale 26x26 icon.png output.png
  • to base64 encode the icon do base64 icon.png | gawk '{print " "$$0;}' > icon.txt
  • create the md5sums file like so: find . -type f -exec md5sum {} \; | sed -e 's| \./||' > md5sums
  • some extra fields are needed in the .desktop file to get the icon to show up: X-Icon-path=/usr/share/icons X-Window-Icon=appname and the .png extension should be dropped from the Icon line.

Functional Exaile for maemo debs coming soon hopefully…

Update: I’ve made a reusable makefile fragment for generating .deb packages without using dpkg tools: deb_hand.mak, and an example custom makefile that uses this fragment: deb_hand_example.mak

Filed under: maemo,N800 — twegener @ 1:58
Next Page »
Powered by WordPress