Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Oct 2005 10:13:32 -0700
From:      Maksim Yevmenkin <maksim.yevmenkin@savvis.net>
To:        Panagiotis Astithas <past@ebs.gr>
Cc:        vova@fbsd.ru, freebsd-bluetooth@freebsd.org
Subject:   Re: [RFC] rc.d integration for the bluetooth subsystem
Message-ID:  <4353DBBC.2000508@savvis.net>
In-Reply-To: <1129491219.1616.18.camel@localhost>
References:  <43519460.1090605@ebs.gr> <1129491219.1616.18.camel@localhost>

next in thread | previous in thread | raw e-mail | index | archive | help
Panagiotis,

it appears i have missed your original email :( not a big problem - i
have found it in the archive. please read my comments inline.

>> I've been playing with integrating the bluetooth subsystem into our
>> rc.d infrastructure and I'd like to submit the results of my
>> efforts for review. My testing has been centered around my USB
>> bluetooth dongle and I know that it works, but I suppose other
>> bluetooth devices should work as well. I have taken the existing
>> rc.bluetooth script (that is not installed by default) and
>> converted it to rc.d, renaming it as 'bluetooth'. I also added a
>> couple of other scripts for hcsecd and sdpd, that are started from
>> bluetooth, but can also function independently, id so desired.
>> Finally I have added a devd configuration file that makes sure the
>> bluetooth script gets started on insertion and removal of the USB
>> dongle.

that is great. thanks for doing the work! it seems we have been working 
on this in parallel :) about a week ago i have committed (into -current) 
hcsecd(8) and sdpd(8) rc.d scripts. they are very similar to what you 
have done. please see

http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/rc.d/hcsecd

http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/rc.d/sdpd

http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/defaults/rc.conf

for more details.

>> With these changes, when I plug in my USB bluetooth dongle, all the
>> necessary initialization happens behind the scenes and I can start
>> using my bluetooth peripherals right away. When I unplug the dongle
>> all the services stop and the necessary shutdown operations are
>> performed on the bluetooth stack. There is still some work left,
>> like specifying different flags for sdpd & hcsecd, but the defaults
>> work fine.

that sounds just fine. once again - do not worry about hcsecd(8) and 
sdpd(8) scripts anymore - they are done.

>> In order to test this stuff you have to:
>> 
>> - copy bluetooth, hcsecd and sdpd into /etc/rc.d - copy ubt.conf
>> into /usr/local/etc/devd (creating it if necessary), or add its
>> contents to /etc/devd.conf - add a line in /etc/rc.conf with: 
>> bluetooth_enable="YES"
>> 
>> In an eventual merge into the base system the devd configuration
>> should be merged into /etc/devd.conf and /etc/defaults/rc.conf
>> should contain the following line instead: bluetooth_enable="NO"
>> 
>> I'd appreciate any comments you may have.

devd(8) configuration (ubt.conf) looks fine. i can merge this info 
devd.conf for you. hcsecd(8) and sdpd(8) already committed into 
-current. i have also created bluetooth section in the 
/etc/defaults/rc.conf file.

i have few comments about my original rc.bluetooth script.

1) it probably should not load any kernel modules. the problem is that 
when one (or more) bluetooth kernel modules compiled into the kernel the 
kldstat(8) check may fail. this has to do with the way kldstat(8) prints 
the results and the way rc.bluetooth grep's through them.

2) original rc.bluetooth is very rigid. things like device name, device 
class, etc. are hardwired into the script. so i'd like to have a bit of 
flexibility here, i.e. ability to specify per device

- device name (change_local_name)

- device class (write_class_of_device)

- should device be "visible"/discoverable by default (write_scan_enable)

- should device request authentication (write_authentication_enable)

- should device use encryption (write_encryption_enable)

- should device request role switch (write_node_role_switch)

and maybe few others.

3) i'd like to have some way to execute a few hccontrol(8) commands 
after default setup was done. perhaps this could be done with some sort 
of bluetooth.local rc.d script that will be executed after main script. 
by default it should be empty. another way to do it is to have something 
along the bluetooth_extra_commands variable in rc.conf.

> Great ! It just works, Thank you.
> 
> I've added bthidd script (in attachment) to start human interface
> daemon (bt mouse in my case).

Vladimir, could you please forward it to me too (directly). i did not 
get the attachment.

thanks,
max



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4353DBBC.2000508>