July 15, 2009

Some Nokia S60 related stuff

In my last blog I mentioned downloading a Youtube video and
converting it so that we can play it on a Nokia phone. Let me then
explain how one can transfer those videos to a phone.

Not long ago I used to have my own site where I was talking
about using Nokia S60 phone from Ubuntu . I was thinking there may be
some number of people attached to their Nokia mobile device and since
Nokia doesn't supply any Linux PC Suite, let me help them try using
Linux. In other words, there is no need to hold on trying Linux even if
there is no official support for it from Nokia, your Nokia phone is
quite capable of talking to Linux. Apparently, there are big plans from
Nokia to make Symbian open source and similar, but there is still zero
support for Linux users. To compile binaries for S60 you use GCC, but
there is no support for development on Linux, beats me.

What happened to my website? Well it's yet another victim of
recession and my difficulties in finding stable employment. Nowadays
development in C++ on Symbian is out of fashion.

Anyway, all was done using Ubuntu 8.04 LTS and Nokia N81. The
odds are that it will work in Debian and very likely on any other
modern distro and with any other Nokia S60 3rd
phone.

Browse using USB cable connection

Before we start I must warn you, this one is more than easy, if you
didn't know how to do it you will be surprised.
Plug in your microUSB-USB cable, Nokia N81 will pop up the following
menu:

Select "Data transfer". The phone will warn you that the
memory card is not available during USB transfer. So if you have
anything that is installed on a memory card and currently active, it
must be shut down. Ubuntu will mount the memory card and open it for
browsing.

As we can see, Nautilus calls it 2.0 GB Media. Anything that
is on it is accessible for any kind of read, write, copy, paste or
delete activity. Use it as you would any other file on any other disc.
Just have in mind that IO operations are somewhat slower. Also, do not
delete indiscriminately - it may affect work of your phone later. If
you delete something Ubuntu will create .Trash folder in root of
mounted partition so that you can undo changes later if you want to.
Once done, right click on 2.0 GB Media and from context menu select
unmount. When 2.0 GB Media icon disappears, unplug the cable. Nokia N81
will issue the warning that data may be corrupt – do not pay attention,
all is in perfect condition.
That was really easy.

Browse using Bluetooth connection

Plug in your favourite dongle, the odds that Ubuntu will recognize it
are very high. In top right corner we will see this:

That familiar Bluetooth icon represents Bluetooth Applet 0.25.
Right click on applet opens context menu; select "Browse device...”.
The following dialog will show up:

Yor phone may have a different name. If you are doing this for
the first time your phone will want to authorise connection. The
procedure is the same as on Windows, enter few digits on your PC and
repeat those on the phone. Now PC is added to paired devices and you
can connect your phone via Bluetooth.

Naturally, Bluetooth must be On for any of it to work. Now
click on connect button and you will see something like this:

Here we are connected via obex and we can not access all files
and folders – only “safe” ones, that is the situation which we know
from Windows environment. Again, on accessible files and folders we can
do our read/write - copy/paste stuff and when done we can unmount our
phone and unplug the dongle.
And people say that Linux is difficult to use.

ObexFTP to the rescue or transferring files from Ubuntu to
Nokia S60 3rd using Bluetooth connection

In my previous article we found out that using Nautilus we can nicely
mount phone file system and transfer to PC files. Unfortunately, that
doesn't work the other way around. That is not by design – that is a
bug.
That still doesn't mean that we can't transfer files from Ubuntu
desktop to Nokia S60 3rd via Bluetooth connection. We will just use a
different approach, from command line. For that we need ObexFTP, so
check if it is installed. From terminal execute obexftp -h and if it is
not there Ubuntu will suggest to execute sudo apt-get install obexftp.
Alternatively, we can use Synaptec Package Manager.
Now we will have handy some file which we want to send to Nokia N81 (I
am using that one). I will send logo.jpg, so from terminal I will
execute cd [relative path to folder with logo.jpg], which in this
particular case translates to cd Desktop/few. Time to activate
Bluetooth on Nokia and to plug in dongle. Now we check if everything is
OK:

$ obexftp -b -l
Scanning ...
Using 00:1C:9A:6B:6D:62 Bestia Horibile
Browsing 00:1C:9A:6B:6D:62 ...
Channel: 11
Connecting...done
Receiving "(null)"... <?xml version="1.0"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"
[ <!ATTLIST folder mem-type CDATA #IMPLIED>
<!ATTLIST folder label CDATA #IMPLIED> ]>
<folder-listing version="1.0">
<folder name="C:" user-perm="R" mem-type="DEV" label="Phone
memory"/>
<folder name="E:" user-perm="RW" mem-type="MMC" label="Memory
card"/>
</folder-listing>done
Disconnecting...done

Switch -b says use
Bloetooth and scan for device and -l is short for list. Next we like to
see what is on drive E: and in Images folder.

$ obexftp -b00:1C:9A:6B:6D:62 --chdir E:/Images -l
Browsing 00:1C:9A:6B:6D:62 ...
Channel: 11
Connecting...done
Sending "E:"... Sending "Images"... done
Receiving "(null)"...|<?xml version="1.0"?>
<!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"
[ <!ATTLIST folder mem-type CDATA #IMPLIED>
<!ATTLIST folder label CDATA #IMPLIED> ]>
<folder-listing version="1.0">
<parent-folder />
<folder name="200801" modified="20080108T135442Z" user-perm="RWD" mem-type="MMC"/>
<folder name="200802" modified="20080204T092128Z" user-perm="RWD" mem-type="MMC"/>
<folder name="200805" modified="20080509T183944Z" user-perm="RWD" mem-type="MMC"/>
<folder name="200806" modified="20080609T120516Z" user-perm="RWD" mem-type="MMC"/>
<folder name="200808" modified="20080802T082606Z" user-perm="RWD" mem-type="MMC"/>
<folder name="200809" modified="20080905T171844Z" user-perm="RWD" mem-type="MMC"/>
<folder name="Snap" modified="20080905T193000Z" user-perm="RWD" mem-type="MMC"/>
<file name="alien_from_movie.jpg" size="18152" modified="20080201T204104Z" user-perm="RWD"/>
<file name="alienWP.jpg" size="16871" modified="20080201T202820Z" user-perm="RWD"/>
<file name="explained.gif" size="64765" modified="20080811T184124Z" user-perm="RWD"/>
<file name="Nokia N81_lifestyle_01.jpg" size="120713" modified="20070522T111836Z" user-perm="RWD"/>
<file name="Nokia N81_lifestyle_02.jpg" size="127218" modified="20070522T111926Z" user-perm="RWD"/>
<file name="Nokia N81_lifestyle_03.jpg" size="94535" modified="20070802T103406Z" user-perm="RWD"/>
<file name="Nokia N81_lifestyle_04.jpg" size="139754" modified="20070522T112110Z" user-perm="RWD"/>
<file name="Nokia N81_lifestyle_05.jpg" size="76708" modified="20070522T112126Z" user-perm="RWD"/>
<file name="Nokia N81_lifestyle_06.jpg" size="148486" modified="20070801T111742Z" user-perm="RWD"/>
<file name="Nokia N81_lifestyle_07.jpg" size="74890" modified="20070718T132930Z" user-perm="RWD"/>
<file name="Nokia N81_lifestyle_08.jpg" size="114918" modified="20070801T111824Z" user-perm="RWD"/>
<file name="Photo-0012.jpg" size="64162" modified="20080119T195804Z" user-perm="RWD"/>
<file name="where.gif" size="30826" modified="20080910T045504Z" user-perm="RWD"/>
<file name="where.txt" size="504" modified="20080910T051622Z" user-perm="RWD"/>
<file name="where1.gif" size="17324" modified="20080910T045912Z" user-perm="RWD"/>
</folder-listing>done
Disconnecting...done

In this case we wanted to connect to a particular device and
to change directory. Files which are starting with 'where' I do not
need any more and I would like to delete them.

$ obexftp -b00:1C:9A:6B:6D:62 --chdir E: --chdir Images --delete where.txt
Browsing 00:1C:9A:6B:6D:62 ...
Channel: 11
Connecting...done
Sending "E:"... done
Sending "Images"... done
Sending "where.txt"... done
Disconnecting...done

Instead of doing --chdir E:/Images we may change directory
twice. The same is valid for delete we can execute:
 

$ obexftp -b00:1C:9A:6B:6D:62 --chdir E:/Images
--delete where.gif --delete where1.gif

 

And delete two remaining files. Finally our test file is ready
to travel:

$ obexftp
-b00:1C:9A:6B:6D:62 --chdir E:/Images --put logo.jpg
Browsing 00:1C:9A:6B:6D:62 ...
Channel: 11
Connecting...done
Sending "E:"... Sending "Images"... done
Sending "logo.jpg"...|done
Disconnecting...done

In order to check if it is really working we can use obexftp
or file explorer on Nokia:

BTW to see who wrote and when, ObexFTP execute from terminal
obexftp -h, it will also print other available commands.

Click Here!