Date: Tue, 08 Nov 2005 10:00:59 +0300 From: Vladimir Grebenschikov <vova@fbsd.ru> To: Maksim Yevmenkin <maksim.yevmenkin@savvis.net> Cc: freebsd-bluetooth@freebsd.org Subject: Re: [RFC] rc.d integration for the bluetooth subsystem Message-ID: <1131433259.1164.7.camel@localhost> In-Reply-To: <4353DBBC.2000508@savvis.net> References: <43519460.1090605@ebs.gr> <1129491219.1616.18.camel@localhost> <4353DBBC.2000508@savvis.net>
next in thread | previous in thread | raw e-mail | index | archive | help
В пн, 17/10/2005 в 10:13 -0700, Maksim Yevmenkin пишет: > 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). After recent upgrade of 7-CURRENT I have do not working bthidd. Something bad on boot here. bthidd just not started or failed on boot. If I just turn off and then turn on USB bt dongle - it starts work. No any related messages in /var/log/messages. I have bluetooth_enable="YES" bthidd_enable="YES" in /etc/rc.conf and % cat /usr/local/etc/devd/ubt.conf # When a USB Bluetooth dongle appears, start the bluetooth subsystem. attach 100 { device-name "ubt[0-9]+"; action "/etc/rc.d/bluetooth start $device-name"; }; detach 100 { device-name "ubt[0-9]+"; action "/etc/rc.d/bluetooth stop $device-name"; }; % Does anybody has working on boot bthidd with recent scripts ? > thanks, > max -- Vladimir B. Grebenschikov vova@fbsd.ru
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1131433259.1164.7.camel>
