Nokia 7650 & Bluetooth & Linux mini (or even micro) HOWTO 1. Requirements - kernel with -mh patch: http://www.holtmann.org/linux/kernel/ - Bluez http://bluez.sourceforge.net - OpenOBEX http://openobex.sourceforge.net - ObexSERVER http://www.frasunek.com/sources/unix/obexserver.c - ussp-push (only if you want upload files to phone) http://www.unrooted.net/hacking/bluez-rfcomm-obex.html 2. Kernel You have to patch your kernel with recent -mh patch. Then compile with: CONFIG_BLUEZ=m CONFIG_BLUEZ_L2CAP=m CONFIG_BLUEZ_SCO=m CONFIG_BLUEZ_RFCOMM=m CONFIG_BLUEZ_RFCOMM_TTY=y CONFIG_BLUEZ_BNEP=m and proper Bluetooth device. I use generic USB Bluetooth dongle: CONFIG_BLUEZ_HCIUSB=m Add modules into /etc/modules.conf: alias net-pf-31 bluez alias bt-proto-0 l2cap alias bt-proto-2 sco alias bt-proto-3 rfcomm Load your Bluetooth device driver (usually hci_usb). Create /dev/rfcomm* with: # cd /dev && mknod rfcomm0 c 216 0 && mknod rfcomm1 c 216 1 3. Bluez Compile, install and configure Bluez userland apps. This is well documented on Bluez homepage. Run hcid and sdpd. 4. OpenOBEX Compile and install OpenOBEX lib. Again, well documented on OpenOBEX site. 5. ObexSERVER Download openobex-apps-1.0.0.tar.gz from OpenOBEX homepage. Compile it in such tricky way: $ tar -xzvf openobex-apps-1.0.0.tar.gz $ cd openobex-apps-1.0.0 $ ./configure && make $ cd src $ wget http://www.frasunek.com/sources/unix/obexserver.c $ cc -o obexserver obexserver.c libmisc.a -lopenobex # chown root.root obexserver && cp obexserver /usr/local/bin Register SDP service for OpenOBEX. Nokia uses RfCOMM channel 10: # sdptool add --channel=10 OPUSH Run ObexSERVER: # obexserver Now you can send photos from Nokia 7650 to Bluetooth-enabled Linux :) 6. Uploading files to Nokia Download ussp-push software. It needs patching to work on latest OpenOBEX. Apply the following patch, compile and install: --- obex_main.c.old Sat Feb 1 14:12:54 2003 +++ obex_main.c Sat Feb 1 14:13:13 2003 @@ -221,7 +221,7 @@ return NULL; } - custfunc.userdata = gt->userdata; + custfunc.customdata = gt->userdata; custfunc.connect = cobex_connect; custfunc.disconnect = cobex_disconnect; custfunc.write = cobex_write; Now you need to configure RfCOMM channel. Nokia uses channel number 10 for OBEX Push protocol: # rfcomm bind /dev/rfcomm0 10 Ussp-push should work now. 7. Dial-up Networking over Bluetooth The only thing needed to run DUN is suitable RfCOMM channel. Create it with: # rfcomm bind /dev/rfcomm0 1 Now you can run pppd over /dev/rfcomm0. GPRS can be turned on with AT commands. I use the following configuration in Polish GSM network (Plus GSM): # pppd /dev/rfcomm0 115200 connect "chat -V -f /etc/ppp/chatscripts/plusgsm" crtscts modem -detach noccp defaultroute noauth ipcp-accept-remote ipcp-accept-local noipdefault debug With chatscript: ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' '' ATZ OK-AT-OK AT+CGDCONT=1,"IP","www.plusgsm.pl" OK "ATD*99***1#" CONNECT '' 8. Epilogue I'd like to thank OpenOBEX and Bluez people for their great software.