Browse Source

bluez: fix bluez5 init with procd

- remove deprecated daemons
- bluetoothd is managed via /etc/bluetooth/*.conf files and dbus

Signed-off-by: Dirk Neukirchen <dirkneukirchen@web.de>
lilik-openwrt-22.03
Dirk Neukirchen 10 years ago
parent
commit
334b441011
2 changed files with 13 additions and 131 deletions
  1. +13
    -0
      utils/bluez/files/bluetoothd.init
  2. +0
    -131
      utils/bluez/files/bluez-utils.init

+ 13
- 0
utils/bluez/files/bluetoothd.init View File

@ -0,0 +1,13 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org
#start after dbus (60)
START=62
USE_PROCD=1
PROG=/usr/bin/bluetoothd
start_service() {
procd_open_instance
procd_set_param command "$PROG" -n
procd_close_instance
}

+ 0
- 131
utils/bluez/files/bluez-utils.init View File

@ -1,131 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2007 OpenWrt.org
#start after dbus (60)
START=62
append_bool() {
local section="$1"
local option="$2"
local value="$3"
local _val
config_get_bool _val "$section" "$option" '0'
[ $_val -gt 0 ] && append args "$3"
}
append_string() {
local section="$1"
local option="$2"
local value="$3"
local default="$4"
local _val
config_get _val "$section" "$option" "$default"
[ -n "$_val" ] && append args "$3 $_val"
}
hcid_config() {
local cfg="$1"
config_get_bool enabled "$cfg" "enabled" '1'
[ $enabled -gt 0 ] || return 1
args=""
append_bool "$cfg" nodaemon "-n"
append_string "$cfg" config "-f"
service_start /usr/sbin/hcid $args
}
hciattach_config() {
local cfg="$1"
config_get_bool enabled "$cfg" "enabled" '1'
[ $enabled -gt 0 ] || return 1
args=""
append_string "$cfg" initspeed "-s" "115200"
append_string "$cfg" tty " " "ttyS1"
append_string "$cfg" type " " "csr"
append_string "$cfg" speed " " "115200"
append_string "$cfg" flow " " "noflow"
service_start /usr/sbin/hciattach $args
}
rfcomm_config() {
local cfg="$1"
config_get_bool enabled "$cfg" "enabled" '1'
[ $enabled -gt 0 ] || return 1
args=""
append_string "$cfg" config "-f"
/usr/bin/rfcomm $args bind all
}
dund_config() {
local cfg="$1"
config_get_bool enabled "$cfg" "enabled" '1'
[ $enabled -gt 0 ] || return 1
args=""
append_bool "$cfg" listen "--listen"
append_string "$cfg" connect "--connect"
append_string "$cfg" mrouter "--mrouter"
append_bool "$cfg" search "--search"
append_string "$cfg" channel "--channel"
append_string "$cfg" device "--device"
append_bool "$cfg" nosdp "--nosdp"
append_bool "$cfg" auth "--auth"
append_bool "$cfg" encrypt "--encrypt"
append_bool "$cfg" secure "--secure"
append_bool "$cfg" master "--master"
append_bool "$cfg" nodetach "--nodetach"
append_bool "$cfg" persist "--persist"
append_string "$cfg" pppd "--pppd"
append_bool "$cfg" msdun "--msdun"
append_bool "$cfg" activesync "--activesync"
append_bool "$cfg" cache "--cache"
append_string "$cfg" pppdopts ""
config_get ifn "$cfg" interface
if [ -n "$ifn" ]; then
config_get unit "$cfg" unit
[ -z "$unit" ] || append args "unit $unit ipparam $ifn linkname $ifn"
fi
service_start /usr/bin/dund $args
}
pand_config() {
local cfg="$1"
config_get_bool enabled "$cfg" "enabled" '1'
[ $enabled -gt 0 ] || return 1
args=""
append_bool "$cfg" listen "--listen"
append_string "$cfg" connect "--connect"
append_bool "$cfg" autozap "--autozap"
append_bool "$cfg" search "--search"
append_string "$cfg" role "--role"
append_string "$cfg" service "--service"
append_string "$cfg" ethernet "--ethernet"
append_string "$cfg" device "--device"
append_bool "$cfg" nosdp "-D"
append_bool "$cfg" auth "-A"
append_bool "$cfg" encrypt "-E"
append_bool "$cfg" secure "-S"
append_bool "$cfg" master "-M"
append_bool "$cfg" nodetach "-n"
append_bool "$cfg" persist "--persist"
append_bool "$cfg" cache "--cache"
append_string "$cfg" pidfile "--pidfile"
service_start /usr/bin/pand $args
}
start() {
config_load bluetooth
config_foreach hcid_config hcid
config_foreach hciattach_config hciattach
config_foreach rfcomm_config rfcomm
config_foreach dund_config dund
config_foreach pand_config pand
}
stop() {
service_stop /usr/bin/dund
service_stop /usr/bin/pand
/usr/bin/rfcomm release all
service_stop /usr/sbin/hciattach
service_stop /usr/sbin/hcid
}

Loading…
Cancel
Save