After many many months of trying almost everything, finally I managed to get file transfers between my Linux box (RH9) and my mobile phone (Nokia 3650). Here are the steps:
The things you're gonna need are: bluez, bluez libs, bluez apps and p3nfs.
First of all, load rfcomm module, and run it. If you get an error such as "rfcomm: can"t get device list: operation not supported" you need to do the following:
Go to the kernel source directory and do "make menuconfig", save the config to a file, after that, edit that file and look for CONFIG_BLUEZ_RFCOMM_TTY=m and substitude the "m" for a "y", so you end up with CONFIG_BLUEZ_RFCOMM_TTY=y. This is a kernel bug, as this cannot be build up as a module, but in the config appears as, that's why you get the error.
Once changed this, save the file, run kernel configuration and load the new config. Now compile it.
OK, now is time to pair the mobile with the dongle:
First of all, activate the dongle by doing "hciconfig up"
In your mobile, enable bluetooth and make it discoverable to all devices, once that is done, run "hcitool scan", for seeing your mobile
Code:
[root][/etc/bluetooth]$ hcitool scan
Scanning ...
00:60:57:75:7C:36 Hammett
Keep that address (your mobile phone), as you will need it later on.
OK, now ping you phone to see that there's connection, for doing that type:
Code:
[root][/etc/bluetooth]$ l2ping 00:60:57:75:7C:36 (Mobile's address)
Ping: 00:60:57:75:7C:36 from 00:01:53:00:0D:08 (data size 20) ...
0 bytes from 00:60:57:75:7C:36 id 200 time 27.89ms
0 bytes from 00:60:57:75:7C:36 id 201 time 29.96ms
0 bytes from 00:60:57:75:7C:36 id 202 time 16.25ms
0 bytes from 00:60:57:75:7C:36 id 203 time 16.18ms
0 bytes from 00:60:57:75:7C:36 id 204 time 15.80ms
5 sent, 5 received, 0% loss
(Note that lower L, not 1 in l2ping). You should get something like that.
So far so good. Now it's time to configure RFCOMM. If you don't have a rfcomm0 device (most probably you won't), do:
Code:
cd /dev && mknod --mode 666 /dev/rfcomm0 c 216 0
Now, go to /etc/bluetooth directory, there are 3 files: hci.config, pin and rfcomm.config
Edit pin file and enter there the pin code you wish.
In your mobile phone, try to discover the PC, when PIN code is prompted, put the same PIN as in the file, you should pair the phone.
Edit rfcomm.config file and put the relevant information there (basically phone's address and port to use, which p3nfs use is port 11).
After that, you must bind /dev/rfcomm to that service, for doing that:
Code:
rfcomm bind /dev/rfcomm0 00:60:57:75:7C:36 11
(Substitue address by your's and note the 4 at the end, is the port we use).
Now is time to configure p3nfs. It is very easy to compile and install. What does p3nfs is to mount mobile's filesystem in the PC, so you can browse it as it was another part of your Linux box, so:
1.- create a mount point for the mobile
2.- Download the client p3nfs for the mobile at
http://www.daimi.au.dk/~kbn/nfsapp-2.7-series60.sis , the only problem here is that you must install that SIS file on the phone by uploading it from windows (for example).
3.- Once client is installed on the phone, run it, and within 30seconds you must run:
Code:
p3nfsd -series60 -tty /dev/rfcomm0 -dir /mnt/mobil/
Where /mnt/mobil is the mount point we created before (make any changes you need)
And woot!! Now you can go to the mobile's mount point and start browsing.
For transfering pictures from the phone to the mobile, just copy them!! Like if it was another HDD, the other way round also works (Transfers from PC to MOBILE).
I suggest you to make a script to connect to the phone, it's more easy than writting all this command.
Well, that's how i managed to get working File transfers between Linux and Nokia 3650. I don't know how to make it for calendar syncronization or anything else, this is just file transfer (pictures and tunes basically).
Hope this will be usefull to somebody, if so, please let me know. Also if there's any mistake or something is not working, I'll try to manage what's wrong.
I appologize in advance if there's any errors on the process, but I don't think i missed any part.