thefoggiest.dev

How to use your w810i with Linux

My new phone has arrived, and this time I’ve decided to put it to a lot more use than my previous phone. Its a Walkman phone, which means that besides a phone (and a camera, an FM radio and a games platform), it’s also an MP3 player. Now I’ve never owned an MP3 player before, and I’d rather have an ogg-player, but as far as I know they don’t exist, so MP3 will have to do.

I was actually pretty happy with my old phone, except for two things: you couldn’t use another headset than the one provided, because it acted as the radio antenna as well, and the mini “joystick” couldn’t cope with the wear and tear of everyday use, so that in time it became less and less responsive, until it was completely unusable and I really needed a new phone. Yes, that’s the world we live in: one button on a highly sophisticated and otherwise perfectly functioning device fails, and I need a completely new one.

Anyway, both problems have been taken care of now. The joystick has been replaced with buttons and the head set is split in two: the part that connects to my ears can be replaced with any standard head phones.

To store the music, and other (media) files, the phone came complete with a 512GB Sony memory stick, which should be enough for my immediate needs. Obviously it’s slightly different from what goes into my real camera and my printer, but I got a little thingy which lets me insert it into anything that accepts SD cards, so no problem there.

Except for the head set, I also got a USB cable with it. So the first thing I did was try and mount the device on my Linux box. That was easy:

# tail -f /var/log/messages (be root)

will tell you what goes on on a Linux system, including inserting and removing USB devices. When you insert the USB cable connected to the phone, the phone asks you to choose between file transfer and phone mode. When you choose the first, you’ll get two vfat devices, /dev/sda1 and /dev/sdb1, which respectively point to the phone’s internal memory and the memory stick. They can both be mounted using

# mount -t auto /dev/sdx1 /mnt/somedir (replace x)

After that you can freely move and copy files between the phone and your Linux box, while your phone is recharged. Don’t forget to properly umount BOTH devices before removing the cable, or you might end up with corrupted file systems. For convenience, I’ve made an entry in my /etc/fstab like this:

/dev/sdb1 /mnt/phone vfat user,noauto 0 0

which makes most software on my computer aware of my phone when it’s there, including KDE, which is what I’ll assume you’ll be using for the rest of this post.

Slightly slower, but way more convenient, is using Bluetooth. For this you obviously need to have Bluetooth set up. Turn on Bluetooth on the phone, make it visible and let your Linux machine look for it. Make it invisible again, and leave it that way if you value your privacy (except for one more time a few minutes from now). Click on the kbluetooth icon in your system tray and a Konqueror window like this will open:

Bookmark this one, or, as I did, make a link on your desktop to this location. That way you’ll never have to make your phone visible again. Click on OBEX File Transfer and you’ll see the same folders that were there when you mounted the phone over USB. Now you can transfer files just as easily.

On to synchronizing contacts and schedules. That’s not as hard as I thought, using the Opensync framework. Use whatever mechanism your distribution provides to install ar, ranlib, glib, libxml2, gtk+-2.0, swig, python, osengine, kdepim, libopensync, libopensync-plugin-kdepim, libopensync-plugin-irmc and multisync-gui. If you’re using Crux, most of these are available in my repository (httpup file).

When you’re done, make your phone visible again and do:

# hcitool scan

as a user. It should respond with your phone’s MAC address, which is a series of 6 semicolon separated hexadecimal numbers. We need this later.

We also need the channel for syncing:

# sdptool search SYNCML

Now make your phone invisible again (to Bluetooth devices, that is).

Start multisync-gui and click the button labelled “Add+”. Enter a descriptive name like “kdeirmc” and add two members: irmc-sync and kdepim-sync. The first one needs to be configured. Select it and replace the xml with this:

<config>
  <connectmedium>bluetooth</connectmedium>
  <btunit>your:phone's:MAC:address</btunit>
  <btchannel>the channel number</btchannel>
</config>

The kdepim plugin needs no configuration. Close the dialog and shut down Korganizer/Kontact. Now click the refresh button below your new sync group, and syncing should commence. If you started multisync-gui in a terminal, you will see the stdout, useful if something goes wrong. Conflicts will ask for a solution. I’ve found it reliable so far. I had it segfault once, but even then all data seemed to have properly synced. If you don’t want your phone getting clogged up by old schedule entries, make Korganizer archive them automatically: File -> Archive Old Entries…


Categorised as: cool stuff, gadgets, howto, linux


Comments are closed.