003 File Manager
Current Path:
/etc/rc.d
etc
/
rc.d
/
📁
..
📄
DAEMON
(178 B)
📄
FILESYSTEMS
(351 B)
📄
LOGIN
(342 B)
📄
NETWORKING
(299 B)
📄
SERVERS
(209 B)
📄
accounting
(1.64 KB)
📄
addswap
(319 B)
📄
adjkerntz
(219 B)
📄
apm
(595 B)
📄
archdep
(298 B)
📄
auditd
(587 B)
📄
auditdistd
(384 B)
📄
automount
(414 B)
📄
automountd
(369 B)
📄
autounmountd
(318 B)
📄
bgfsck
(968 B)
📄
blacklistd
(1.66 KB)
📄
bluetooth
(8.91 KB)
📄
bootparams
(303 B)
📄
bridge
(2.22 KB)
📄
bsnmpd
(347 B)
📄
bthidd
(928 B)
📄
ccd
(300 B)
📄
cfumass
(2.93 KB)
📄
cleanvar
(908 B)
📄
cleartmp
(1.8 KB)
📄
cron
(368 B)
📄
ctld
(376 B)
📄
ddb
(538 B)
📄
defaultroute
(1.43 KB)
📄
devd
(684 B)
📄
devfs
(1.36 KB)
📄
devmatch
(2.29 KB)
📄
dhclient
(1.37 KB)
📄
dmesg
(412 B)
📄
dumpon
(1.3 KB)
📄
fsck
(1.61 KB)
📄
ftp-proxy
(2.3 KB)
📄
ftpd
(376 B)
📄
gbde
(2.1 KB)
📄
geli
(3.5 KB)
📄
geli2
(1.88 KB)
📄
gptboot
(2.46 KB)
📄
growfs
(3.1 KB)
📄
gssd
(228 B)
📄
hastd
(505 B)
📄
hcsecd
(463 B)
📄
hostapd
(621 B)
📄
hostid
(3.65 KB)
📄
hostid_save
(586 B)
📄
hostname
(2.56 KB)
📄
inetd
(344 B)
📄
iovctl
(445 B)
📄
ip6addrctl
(2.52 KB)
📄
ipfilter
(2.03 KB)
📄
ipfs
(1.05 KB)
📄
ipfw
(3.04 KB)
📄
ipfw_netflow
(1.92 KB)
📄
ipmon
(723 B)
📄
ipnat
(506 B)
📄
ippool
(579 B)
📄
ipropd_master
(703 B)
📄
ipropd_slave
(509 B)
📄
ipsec
(1.11 KB)
📄
iscsictl
(335 B)
📄
iscsid
(309 B)
📄
jail
(13.88 KB)
📄
kadmind
(518 B)
📄
kdc
(469 B)
📄
keyserv
(411 B)
📄
kfd
(297 B)
📄
kld
(1.66 KB)
📄
kldxref
(709 B)
📄
kpasswdd
(498 B)
📄
ldconfig
(1.93 KB)
📄
linux
(1.47 KB)
📄
local
(529 B)
📄
local_unbound
(2.71 KB)
📄
localpkg
(1.35 KB)
📄
lockd
(625 B)
📄
lpd
(416 B)
📄
mdconfig
(4.98 KB)
📄
mdconfig2
(5.86 KB)
📄
mixer
(2.4 KB)
📄
motd
(1.28 KB)
📄
mountcritlocal
(1.2 KB)
📄
mountcritremote
(1.82 KB)
📄
mountd
(1.48 KB)
📄
mountlate
(723 B)
📄
moused
(1.6 KB)
📄
msgs
(396 B)
📄
natd
(762 B)
📄
netif
(5.72 KB)
📄
netoptions
(2.71 KB)
📄
netwait
(3 KB)
📄
newsyslog
(459 B)
📄
nfscbd
(284 B)
📄
nfsclient
(1.03 KB)
📄
nfsd
(1.19 KB)
📄
nfsuserd
(514 B)
📄
nisdomain
(1.76 KB)
📄
nscd
(1.04 KB)
📄
ntpd
(7.11 KB)
📄
ntpdate
(696 B)
📄
opensm
(444 B)
📄
os-release
(952 B)
📄
othermta
(286 B)
📄
pf
(1.17 KB)
📄
pflog
(2.24 KB)
📄
pfsync
(787 B)
📄
power_profile
(2.06 KB)
📄
powerd
(429 B)
📄
ppp
(2.28 KB)
📄
pppoed
(585 B)
📄
pwcheck
(428 B)
📄
quota
(576 B)
📄
random
(2.86 KB)
📄
rarpd
(339 B)
📄
rctl
(469 B)
📄
resolv
(2.02 KB)
📄
rfcomm_pppd_server
(2.31 KB)
📄
root
(724 B)
📄
route6d
(369 B)
📄
routed
(409 B)
📄
routing
(7.91 KB)
📄
rpcbind
(331 B)
📄
rtadvd
(1.62 KB)
📄
rtsold
(430 B)
📄
rwho
(247 B)
📄
savecore
(1.27 KB)
📄
sdpd
(465 B)
📄
securelevel
(519 B)
📄
sendmail
(6.42 KB)
📄
serial
(4.98 KB)
📄
sppp
(835 B)
📄
sshd
(1.41 KB)
📄
statd
(587 B)
📄
static_arp
(2.12 KB)
📄
static_ndp
(2.09 KB)
📄
stf
(1.83 KB)
📄
swap
(224 B)
📄
swaplate
(258 B)
📄
syscons
(7.75 KB)
📄
sysctl
(592 B)
📄
syslogd
(1.48 KB)
📄
sysvipc
(323 B)
📄
tmp
(2.19 KB)
📄
ubthidhci
(762 B)
📄
ugidfw
(992 B)
📄
utx
(266 B)
📄
var
(3.16 KB)
📄
virecover
(1.55 KB)
📄
watchdogd
(2.65 KB)
📄
wpa_supplicant
(817 B)
📄
ypbind
(504 B)
📄
ypldap
(358 B)
📄
yppasswdd
(584 B)
📄
ypserv
(584 B)
📄
ypset
(544 B)
📄
ypupdated
(496 B)
📄
ypxfrd
(540 B)
📄
zfs
(872 B)
📄
zfsbe
(1.65 KB)
📄
zfsd
(209 B)
📄
zpool
(457 B)
📄
zvol
(736 B)
Editing: bluetooth
#!/bin/sh # # Copyright (c) 2005 Maksim Yevmenkin <m_evmenkin@yahoo.com> # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $FreeBSD$ # PROVIDE: bluetooth # REQUIRE: DAEMON # KEYWORD: nojail nostart . /etc/rc.subr name="bluetooth" desc="Bluetooth setup script" rcvar= start_cmd="bluetooth_start" stop_cmd="bluetooth_stop" required_modules="ng_bluetooth ng_hci ng_l2cap ng_btsocket" ############################################################################## # Read and parse Bluetooth device configuration file ############################################################################## bluetooth_read_conf() { local _err _file _line _namespace _file=$1 _namespace=$2 _err=0 if [ ! -e $_file ]; then return 0 fi if [ ! -f $_file -o ! -r $_file ]; then err 1 "Bluetooth configuration file $_file is not a file or not readable" fi while read _line do case "$_line" in \#*) continue ;; *) if [ -z "$_line" ]; then continue; fi if expr "$_line" : "[a-zA-Z0-9_]*=" > /dev/null 2>&1; then eval "${_namespace}${_line}" else warn "Unable to parse line \"$_line\" in $_file" _err=1 fi ;; esac done < $_file return $_err } ############################################################################## # Setup Bluetooth stack. Create and connect nodes ############################################################################## bluetooth_setup_stack() { dev=$1 shift hook=$1 shift # Setup HCI ngctl mkpeer ${dev}: hci ${hook} drv \ > /dev/null 2>&1 || return 1 ngctl name ${dev}:${hook} ${dev}hci \ > /dev/null 2>&1 || return 1 ngctl msg ${dev}hci: set_debug ${bluetooth_device_hci_debug_level} \ > /dev/null 2>&1 || return 1 # Setup L2CAP ngctl mkpeer ${dev}hci: l2cap acl hci \ > /dev/null 2>&1 || return 1 ngctl name ${dev}hci:acl ${dev}l2cap \ > /dev/null 2>&1 || return 1 ngctl msg ${dev}l2cap: set_debug ${bluetooth_device_l2cap_debug_level} \ > /dev/null 2>&1 || return 1 # Connect HCI node to the Bluetooth sockets layer ngctl connect ${dev}hci: btsock_hci_raw: raw ${dev}raw \ > /dev/null 2>&1 || return 1 # Connect L2CAP node to Bluetooth sockets layer ngctl connect ${dev}l2cap: btsock_l2c_raw: ctl ${dev}ctl \ > /dev/null 2>&1 || return 1 ngctl connect ${dev}l2cap: btsock_l2c: l2c ${dev}l2c \ > /dev/null 2>&1 || return 1 # Initilalize HCI node ${hccontrol} -n ${dev}hci reset \ > /dev/null 2>&1 || return 1 ${hccontrol} -n ${dev}hci read_bd_addr \ > /dev/null 2>&1 || return 1 ${hccontrol} -n ${dev}hci read_local_supported_features \ > /dev/null 2>&1 || return 1 ${hccontrol} -n ${dev}hci read_buffer_size \ > /dev/null 2>&1 || return 1 if checkyesno bluetooth_device_discoverable; then if checkyesno bluetooth_device_connectable; then ${hccontrol} -n ${dev}hci write_scan_enable 3 \ > /dev/null 2>&1 || return 1 else ${hccontrol} -n ${dev}hci write_scan_enable 1 \ > /dev/null 2>&1 || return 1 fi else if checkyesno bluetooth_device_connectable; then ${hccontrol} -n ${dev}hci write_scan_enable 2 \ > /dev/null 2>&1 || return 1 else ${hccontrol} -n ${dev}hci write_scan_enable 0 \ > /dev/null 2>&1 || return 1 fi fi ${hccontrol} -n ${dev}hci write_class_of_device ${bluetooth_device_class} \ > /dev/null 2>&1 || return 1 if checkyesno bluetooth_device_authentication_enable; then ${hccontrol} -n ${dev}hci write_authentication_enable 1 \ > /dev/null 2>&1 || return 1 else ${hccontrol} -n ${dev}hci write_authentication_enable 0 \ > /dev/null 2>&1 || return 1 fi case "${bluetooth_device_encryption_mode}" in [Nn][Oo][Nn][Ee]|0) ${hccontrol} -n ${dev}hci write_encryption_mode 0 \ > /dev/null 2>&1 || return 1 ;; [Pp][2][Pp]|1) ${hccontrol} -n ${dev}hci write_encryption_mode 1 \ > /dev/null 2>&1 || return 1 ;; [Al][Ll][Ll]|2) ${hccontrol} -n ${dev}hci write_encryption_mode 2 \ > /dev/null 2>&1 || return 1 ;; *) warn "Unsupported encryption mode ${bluetooth_device_encryption_mode} for device ${dev}" return 1 ;; esac if checkyesno bluetooth_device_role_switch; then ${hccontrol} -n ${dev}hci write_node_role_switch 1 \ > /dev/null 2>&1 || return 1 else ${hccontrol} -n ${dev}hci write_node_role_switch 0 \ > /dev/null 2>&1 || return 1 fi ${hccontrol} -n ${dev}hci change_local_name "${bluetooth_device_local_name}" \ > /dev/null 2>&1 || return 1 ${hccontrol} -n ${dev}hci initialize \ > /dev/null 2>&1 || return 1 return 0 } ############################################################################## # Shutdown Bluetooth stack. Destroy all nodes ############################################################################## bluetooth_shutdown_stack() { dev=$1 ngctl shutdown ${dev}hci: > /dev/null 2>&1 ngctl shutdown ${dev}l2cap: > /dev/null 2>&1 return 0 } ############################################################################## # bluetooth_start() ############################################################################## bluetooth_start() { local _file dev=$1 # Try to figure out device type by looking at device name case "${dev}" in # uartX - serial/UART Bluetooth device uart*) load_kld ng_h4 || return 1 hook="hook" # Obtain unit number from device. unit=`expr ${dev} : 'uart\([0-9]\{1,\}\)'` if [ -z "${unit}" ]; then err 1 "Unable to get uart unit number: ${dev}" fi ${hcseriald} -f /dev/cuau${unit} -n ${dev} sleep 1 # wait a little bit if [ ! -f "/var/run/hcseriald.${dev}.pid" ]; then err 1 "Unable to start hcseriald on ${dev}" fi ;; # USB Bluetooth adapters ubt*) hook="hook" # Obtain unit number from device. unit=`expr ${dev} : 'ubt\([0-9]\{1,\}\)'` if [ -z "${unit}" ]; then err 1 "Unable to get ubt unit number: ${dev}" fi ;; # Unknown *) err 1 "Unsupported device: ${dev}" ;; esac # Be backward compatible and setup reasonable defaults bluetooth_device_authentication_enable="0" bluetooth_device_class="ff:01:0c" bluetooth_device_connectable="1" bluetooth_device_discoverable="0" bluetooth_device_encryption_mode="0" bluetooth_device_hci_debug_level="3" bluetooth_device_l2cap_debug_level="3" bluetooth_device_local_name="`/usr/bin/uname -n` (${dev})" bluetooth_device_role_switch="1" # Load default device configuration parameters _file="/etc/defaults/bluetooth.device.conf" if ! bluetooth_read_conf $_file bluetooth_device_ ; then err 1 "Unable to read default Bluetooth configuration from $_file" fi # Load device specific overrides _file="/etc/bluetooth/$dev.conf" if ! bluetooth_read_conf $_file bluetooth_device_ ; then err 1 "Unable to read Bluetooth device configuration from $_file" fi # Setup stack if ! bluetooth_setup_stack ${dev} ${hook} ; then bluetooth_shutdown_stack $dev err 1 "Unable to setup Bluetooth stack for device ${dev}" fi return 0 } ############################################################################## # bluetooth_stop() ############################################################################## bluetooth_stop() { dev=$1 # Try to figure out device type by looking at device name case "${dev}" in # uartX - serial/UART Bluetooth device uart*) if [ -f "/var/run/hcseriald.${dev}.pid" ]; then kill `cat /var/run/hcseriald.${dev}.pid` sleep 1 # wait a little bit fi ;; # 3Com Bluetooth Adapter 3CRWB60-A btccc*) ;; # USB Bluetooth adapters ubt*) ;; # Unknown *) err 1 "Unsupported device: ${dev}" ;; esac bluetooth_shutdown_stack ${dev} return 0 } ############################################################################## # Start here ############################################################################## load_rc_config $name hccontrol="${bluetooth_hccontrol:-/usr/sbin/hccontrol}" hcseriald="${bluetooth_hcseriald:-/usr/sbin/hcseriald}" run_rc_command $*
Upload File
Create Folder