Sony Ericsson phones reading ID3 tags

I’ve been having trouble transferring/playing music on the SE W610i and K800i phones. Copying the MP3 files to the phone is easy–when you plug it in with the USB cable you can select ‘File Transfer’ on the phone and it will reboot as a mass storage device so Linux can mount it. However, after transferring albums and safely unmounting the disks, they appeared to have strange names in the music player. When viewing by artist, album and track in the Walkman and standard music player sometimes the ends of names would be cut off even if they weren’t particularly long. For example, after transferring Mark Ronson’s album ‘Version’ and viewing by artist, the album would be split apparently between three artists:

   Mark Ro
   Mark Ron
   Mark Ronso

Initially I assumed the files were becoming corrupt somehow, even though I made sure I was unmounting properly from Ubuntu and even tried the same files from a Windows machine. After a bit of searching I found a forum thread about the same problem. The problem is due to ID3 tags–specifically version 2.4. The way the Sony Ericssons (at least these phones) display artist and track names has nothing to do with directories or file names but ID3 tag embedded in your MP3 files. Many of my albums had information stored in v2.4 of ID3 (Amarok uses 2.4 by default), but the phones can’t handle this properly and much prefer the 2.3 version. Problem identified! Now for a solution.

Warning: There is a possibility you will loose some ID3 data when converting from v2.4 back to v2.3, However the stuff that does get removed can’t be that great as I havn’t noticed anything missing. V2.4 is supposedly a bit controversial anywa, so v2.3 should make your files more widely supported.

There are two open source tools I can see as being helpful–id3v2 (command line) and Kid3 (graphical KDE application). id3v2 has the argument -c (–convert) which is supposed to convert from id3v1 to id3v2. This will allow you to convert all MP3s in a directory with one command as follows:

id3v2 -C Music/MarkRonson/*

Kid3 has a reasonable user interface and may in fact do a better job at conversion as it has a specific v2.4 to v2.3 conversion tool. You select the files you wish to convert by opening them, Ctrl-A then from the main menu select ‘Tools’ -> ‘Convert ID3v2.4 to ID3v2.3′.

Hope this has helped someone out. This fix works but hopefully a more elegant solution will come at a later date (e.g. ID3 tags get converted automatically when being copied or SE release a firmware update to support v2.4)

Packard Bell Syntek webcam success

Approximately 18 months ago, my girlfriend was looking for a small and light laptop to replace her broken iBook. The replacement laptop is a Packard Bell Easynote BU45-U-045 (I think that’s the model number–product details). Most of the hardware is well supported by Ubuntu Linux–Intel graphics chip runs Compiz-Fusion well, SD card reader, and wireless–although with ‘Restricted Drivers Manager’. There is also a webcam integrated above the screen, but I didn’t get this working until today. The camera chip comes from Syntek Semiconductor Ltd but is usually assembled under the name D-Max.

The command ‘lsusb‘ was an obvious starting point, but no manufacturer/device name is given so you have to look carefully at the ID numbers. This is the output I have (174f:a821) but apparently there are other devices by Syntek that are supported (174f:6a31, 174f:6a33, 174f:6a51, 174f:6a54 and 174f:a311).

jayne@jayne-laptop:~$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 005 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 003 Device 002: ID 08ff:1600 AuthenTec, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 174f:a821
Bus 001 Device 001: ID 0000:0000

I found the Syntek DC-1125 Camera Driver Project hosted on SourceForge, still in development (in face the latest version was released today!) but it worked OK for me. These instructions are how I managed to get it to work on Ubuntu. If you decide to carry out these yourself, you do so at you own risk and I accept no responsibility.

Download the drivers from the project page–you want the file stk11xx-*.tar.gz–and extract them. From the extracted directory, make the Loadable Kernel Module with the command sudo make -f Makefile.standalone. I got the following error about ctags, but this didn’t matter as the module had been compiled by this point (.ko file).

make: ctags: Command not found
make: *** [driver] Error 127

If compilation goes OK you should see a file called ’stk11xx.ko’ in the directory which you should copy to your kernel’s module directory, sudo cp stk11xx.ko /lib/modules/`uname -r`/kernel/drivers.

Run the following commands to load you camera’s kernel module. The light next to it flashes if you have one.

sudo depmod -a
sudo modprobe stk11xx

If all has gone well up to this point, test it with an application like Camorama or Ekiga. Install Camorama through Synaptic or by typing the following command.

sudo apt-get install camorama

Webcam output, no arguments

For me the image shown was upside down, which was annoying at first. However there is an argument you can pass when you load the module which counteracts this. If you need the image flipped, use these commands to unload the module and re-load it with the argument ‘vflip=1′.

sudo rmmod stk11xx
sudo modprobe stk11xx vflip=1

Open Camorama again and you will hopefully now be the right way up. Now we have to make sure that this argument gets added automatically or you will be the wrong way up next time you start the computer. You want to create a new file in the directory ‘/etc/modprobe.d’ for the module with the line ‘options stk11xx vflip=1′ in it.

sudo touch /etc/modprobe.d/stk11xx
sudo gedit /etc/modprobe.d/stk11xx
Webcam output, flipped

If you have a similar webcam to this then I hope this post is useful to you. If it is or if you have a question, please leave a comment.

Introducing: Another Blog

I set-up this blog a few months ago and it’s just been kicking ’round doing nothing. So, here we go–my first blog post.

I am a 3rd year undergraduate student studying Computer Science at Essex University. This blog will hopefully allow me to document my thoughts and provoke discussions on matters that are relevant. I have a small web design business that has been running for a few years now, and a wiki which I add to whenever I solve a problem–It’s mainly so I don’t forget, but you may also find it useful. Things that interest me and will be covered in this blog are:

  • Web development (CSS, XHTML, server-side scripting)
  • Graphic design (print and 3D–notably Blender)
  • Linux (FOSS, community, Gentoo, Ubuntu)
  • Servers (Web, email, SQL, backups)
  • Programming languages (PHP, Java, C, C++, Ruby, Python etc.)
  • Recreation (Snowboarding, Jazz–Saxophone, cars–Minis)

Anyway, thanks for reading so far and hope you have a use for this blog.