Author: rpaulo
Date: Fri Apr  9 17:32:38 2010
New Revision: 206427
URL: http://svn.freebsd.org/changeset/base/206427

Log:
  Add rc.d/ubthidhci. This small script calls usbconfig(1) to change a USB
  Bluetooth controller from HID mode to HCI mode.
  
  MFC after:    1 week

Added:
  head/etc/rc.d/ubthidhci   (contents, props changed)
Modified:
  head/etc/defaults/rc.conf
  head/share/man/man5/rc.conf.5

Modified: head/etc/defaults/rc.conf
==============================================================================
--- head/etc/defaults/rc.conf   Fri Apr  9 16:19:30 2010        (r206426)
+++ head/etc/defaults/rc.conf   Fri Apr  9 17:32:38 2010        (r206427)
@@ -436,6 +436,11 @@ rfcomm_pppd_server_two_channel="3" # Ove
 #rfcomm_pppd_server_two_register_sp="NO"       # Override SP and DUN register
 #rfcomm_pppd_server_two_register_dun="NO"      # for 'two'
 
+#ubthidhci_enable="YES"                # Switch an USB BT controller present on
+#ubthidhci_busnum="3"          # bus 3 and addr 2 from HID mode to HCI mode.
+#ubthidhci_addr="2"            # Check usbconfig list to find the correct
+                               # numbers for your system.
+
 ### Miscellaneous network options: ###
 icmp_bmcastecho="NO"   # respond to broadcast ping packets
 

Added: head/etc/rc.d/ubthidhci
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/etc/rc.d/ubthidhci     Fri Apr  9 17:32:38 2010        (r206427)
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: ubthidhci
+# REQUIRE: DAEMON 
+# BEFORE: bluetooth 
+# KEYWORD: nojail shutdown
+
+. /etc/rc.subr
+
+name="ubthidhci"
+command="/usr/sbin/usbconfig"
+rcvar=`set_rcvar`
+start_precmd="ubthidhci_prestart"
+
+ubthidhci_prestart()
+{
+
+       if [ -z ${ubthidhci_busnum} ]; then
+               warn ubthidhci_busnum is not set
+               return 1
+       fi
+       if [ -z ${ubthidhci_addr} ]; then
+               warn ubthidhci_addr is not set
+               return 1
+       fi
+}
+
+load_rc_config $name
+#
+# We discard the output because:
+# 1) we don't want it to show up during boot; and
+# 2) the request usually returns an error, but that doesn't mean it failed
+#
+# NB: 0x40 is UT_VENDOR
+command_args="-u ${ubthidhci_busnum} -a ${ubthidhci_addr} do_request 0x40 0 0 
0 0 > /dev/null 2>&1"
+
+run_rc_command "$1"

Modified: head/share/man/man5/rc.conf.5
==============================================================================
--- head/share/man/man5/rc.conf.5       Fri Apr  9 16:19:30 2010        
(r206426)
+++ head/share/man/man5/rc.conf.5       Fri Apr  9 17:32:38 2010        
(r206427)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 8, 2010
+.Dd April 09, 2010
 .Dt RC.CONF 5
 .Os
 .Sh NAME
@@ -4268,6 +4268,26 @@ if it should register Dial-Up Networking
 RFCOMM channel.
 Default
 .Dq Li NO .
+.It Va ubthidhci_enable
+.Pq Vt bool
+If set to
+.Dq Li YES ,
+change the USB Bluetooth controller from HID mode to HCI mode.
+You also need to specify the location of USB Bluetooth controller with the
+.Va ubthidhci_busnum
+and
+.Va ubthidhci_addr
+variables.
+.It Va ubthidhci_busnum
+Bus number where the USB Bluetooth controller is located.
+Check the output of
+.Xr usbconfig 1
+on your system to find this information.
+.It Va ubthidhci_addr
+Bus address of the USB Bluetooth controller.
+Check the output of
+.Xr usbconfig 1
+on your system to find this information.
 .El
 .Sh FILES
 .Bl -tag -width ".Pa /etc/defaults/rc.conf" -compact
@@ -4283,6 +4303,7 @@ Default
 .Xr kbdcontrol 1 ,
 .Xr makewhatis 1 ,
 .Xr sh 1 ,
+.Xr usbconfig 1 ,
 .Xr vi 1 ,
 .Xr vidcontrol 1 ,
 .Xr bridge 4 ,
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to