28 lines
1 KiB
Text
28 lines
1 KiB
Text
|
#!/sbin/openrc-run
|
||
|
|
||
|
description="Run hciattach on ttySAC0 to enable bcm43xx bluetooth"
|
||
|
|
||
|
depend () {
|
||
|
before rfkill
|
||
|
before bluetooth
|
||
|
}
|
||
|
|
||
|
start () {
|
||
|
ebegin "Starting hciattach-ttySAC0"
|
||
|
# we need to unlock an rfkill to be able to use bluetootch
|
||
|
if [[ -d /sys/bus/platform/drivers/bcm43xx_bluetooth/bluetooth ]]; then
|
||
|
rfkill unblock 0
|
||
|
# blocking and unblocking this rfkill requires restarting hciattach
|
||
|
# unregister it, so that the UI does not attempt to toggle it
|
||
|
# hciuart driver provides its own rfkill switch, so bluetooth can still be disabled
|
||
|
echo bluetooth > /sys/bus/platform/drivers/bcm43xx_bluetooth/unbind
|
||
|
fi
|
||
|
# if hci0 is already present, this means that the service is being restarted, we can just ignore it
|
||
|
if ! [[ -d /sys/class/bluetooth/hci0 ]]; then
|
||
|
# on the vendor kernel we have to do a manual hciattach
|
||
|
# since we unregistered the rfkill, we won't be able to restart, so this cannot be a "real" service
|
||
|
hciattach /dev/ttySAC0 bcm43xx 3000000 flow nosleep "$(bootmac -gb)"
|
||
|
fi
|
||
|
eend $?
|
||
|
}
|