Hi Nick,
I have been a silent observer of this group till now, but now I am
kinda stuck. I am able to run hciattach, hciconfig, hcitool, etc. but
while running hcid I get this error message:
"
bash-3.2# hcid
hcid[1155]: Bluetooth HCI daemon
hcid[1155]: Create and Bind socket
hcid[1155]: Can't open HCI socket: Operation not permitted (1)
hcid[1155]: Cant open HCI socket: Bad file number (9
"
Can you tell me how to avoid this? I can run hcid (start hcid) with
"bluetooth" user, but I guess since hcid is not running in root user
mode, I am facing this error. The relevant hcid entry in init.rc file
is:
service hcid /system/bin/logwrapper /system/bin/hcid -d -s -n -f
system/etc/hcid.conf
socket bluetooth stream 660 bluetooth bluetooth
socket dbus_bluetooth stream 660 bluetooth bluetooth
# init.rc does not yet support applying capabilities, so run as
root and
# let hcid drop uid to bluetooth with the right linux capabilities
group bluetooth net_bt_admin misc
user root
group bluetooth net_bt_admin misc
# disabled
oneshot
Still, when I do a ps, I cannot see hcid running.
Thanks,
Sidharth
On Dec 9 2008, 2:34 am, Nick Pelly <[email protected]> wrote:
> This is some Android specific magic.
>
> When two linux processes wish to communicate via a unix domain socket on a
> traditional linux distribution they often use /tmp. However on Android we
> got rid of /tmp for security and storage accountability reasons. Instead a
> mechanism was introduced for daemons to request a unix domain socket in
> /dev/socket than the init process creates on behalf of the daemon. The
> daemon just picks up the file descriptor from the environment.
>
> See
> /dev/socket
> #define ANDROID_SOCKET_DIR
> system/core/init/readme.txt keyword socket
>
> The error you show here seems to indicate that hcid was unable to open the
> socket provided by init. Perhaps you did not use the socket syntax in your
> init.rc
>
> Nick
> Android Systems Engineer
>
>
>
> On Mon, Dec 8, 2008 at 1:16 PM, pavan savoy <[email protected]> wrote:
> > Hi,
>
> > I started the bluez hcid as root, after disabling the kernel feature that
> > blocks creation of sockets [CONFIG_ANDROID_PARANOID_NETWORK] in the kernel,
>
> > Now If I start off hcid, I realise that the SDP server, isn't being
> > initialised properly.
>
> > I get the error...
>
> > # hcid -f /etc/hcid.conf -d -n
> > hcid[681]: Bluetooth HCI daemon
> > hcid[681]: Enabling debug information
> > hcid[681]: Starting SDP server
> > hcid[681]: Adding rec : 0x3b628
> > hcid[681]: with handle : 0x1
> > hcid[681]: Adding rec : 0x3b788
> > hcid[681]: with handle : 0x0
> > hcid[681]: Service classes 0x00
> > hcid[681]: Unable to get the control socket for 'bluetooth'
> > hcid[681]: Server initialization failed
>
> > What is the reason ? where is android_get_control_socket defined, why do we
> > need it ?
>
> > regards,
> > Pavan- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---