BlueZ on Sony VAIO notebook with builtin Bluetooth

by Marcel Holtmann


1. Introduction

Most new Sony VAIO notebook's have builtin Bluetooth. Sony uses a USB Bluetooth chip from ALPS, which is a CSR derivative. But by default this USB device is not enabled (not plugged in). The control of this device is done through the "Sony Programmable I/O Control Device". For this device Stelian Pop has written a driver named sonypi which is included in the Linux kernel 2.4.18 and allows to enable the Bluetooth device. To activate this driver it should be compiled as a module and the following lines have to be added to the file /etc/modules.conf.

alias char-major-10-63  sonypi
options sonypi minor=63

And the special device /dev/sonypi must also be created.

# mknod /dev/sonypi c 10 63
# chmod 666 /dev/sonypi

After download of the control utility spicctrl from the SonyPI site it has to be installed the following way.

linux:/usr/src # bzcat spicctrl-1.2.tar.bz2 | tar xf -
linux:/usr/src # cd spicctrl-1.2

linux:/usr/src/spicctrl-1.2 # make
gcc -Wall -Wstrict-prototypes -O2 -pipe   -c -o spicctrl.o spicctrl.c
gcc   spicctrl.o   -o spicctrl
linux:/usr/src/spicctrl-1.2 # cp spicctrl /usr/bin

At this point all is ready to make use of the builtin Bluetooth of the laptop. The hci_usb module have to inserted or loaded automaticly by a hotplug system.

# modprobe hci_usb

# spicctrl --setbluetoothpower=1

# hciconfig hci0 up

# hciconfig -a
hci0:   Type: USB 
        BD Address: 08:00:46:2D:8F:02 ACL MTU: 192:8  SCO: MTU 64:8
        UP RUNNING PSCAN ISCAN 
        RX bytes:414 acl:0 sco:0 events:19 errors:0
        TX bytes:62 acl:0 sco:0 commands:13 errors:0
        Features: 0xff 0xff 0x0d 0x00
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
        Link policy: 
        Link mode: SLAVE ACCEPT 
        Name: 'SONY'
        Class: 0x000000
        HCI Ver: 0x1 HCI Rev: 0x77 LMP Ver: 0x1 LMP Subver: 0x77
        Manufacturer: 10

If the VAIO have a Bluetooth led the blue light should now shown. The Bluetooth device could also be disabled if it is not in use to save lifetime of the battery.

# spicctrl --setbluetoothpower=0

With the hcid and the autoinit feature activated it will be possible to activate or deactivate the device on demand with only one spicctrl command. Such a function can also be done through a daemon which is listing for a pressed button (like the Bluetooth button), but at the moment no such program exists.


2. Links

Sony Programmable I/O Control Device Driver


Copyright © 2002 Marcel Holtmann Created on March 4, 2002
Last modification on December 10, 2002