Compare commits
42 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0002d570d7 | ||
|
|
0a018c6c45 | ||
|
|
173596eec5 | ||
|
|
bf69f2e974 | ||
|
|
6ddf29045e | ||
|
|
2d8aba9b37 | ||
|
|
aa7858ae44 | ||
|
|
0b05afb194 | ||
|
|
ab60a8bc55 | ||
|
|
450826b6bd | ||
|
|
14f406ad6a | ||
|
|
1d74fcb91d | ||
|
|
13d0aaac0e | ||
|
|
1e1f36f275 | ||
|
|
36251114d8 | ||
|
|
5e10559144 | ||
|
|
0e7f516730 | ||
|
|
b75fc91f8b | ||
|
|
1b4d33d37d | ||
|
|
6fdd892aaf | ||
|
|
90dc5b54c0 | ||
|
|
5b68cf097a | ||
|
|
b50df06358 | ||
|
|
84500a88d1 | ||
|
|
854202a1b8 | ||
|
|
e51a0811a1 | ||
|
|
15fc1f447e | ||
|
|
26b5f910b5 | ||
|
|
5cc352bb44 | ||
|
|
3315f6d9c4 | ||
|
|
0f1c8dbf56 | ||
|
|
f5df6e18a8 | ||
|
|
ba78c80b97 | ||
|
|
38bc2b4f91 | ||
|
|
69af4b3819 | ||
|
|
14de047663 | ||
|
|
a310232e2c | ||
|
|
93ea56d0ea | ||
|
|
83dabb2842 | ||
|
|
bf05e66ae8 | ||
|
|
e1fb61e8a8 | ||
|
|
480c11535d |
12
Documentation/bluetooth.md
Normal file
12
Documentation/bluetooth.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Bluetooth
|
||||
|
||||
We support `bluetoothctl` on host. Later we want also support bluetooth trought UI.
|
||||
All pairs and settings are persistent over reboots and updates.
|
||||
|
||||
If you want setup bluetooth on host, use the *bluetoothctl* utility.
|
||||
|
||||
## Scan devices
|
||||
|
||||
```
|
||||
[bluetooth]# scan on
|
||||
```
|
||||
@@ -1,3 +1,4 @@
|
||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/hassos/Config.in"
|
||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/libapparmor/Config.in"
|
||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/apparmor/Config.in"
|
||||
source "$BR2_EXTERNAL_HASSOS_PATH/package/bluetooth-bcm43xx/Config.in"
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
global linux.bootargs.bootchooser="bootchooser.active=A"
|
||||
|
||||
boot system0
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
global linux.bootargs.bootchooser="bootchooser.active=B"
|
||||
|
||||
boot system1
|
||||
|
||||
@@ -398,7 +398,7 @@ CONFIG_SHOWKEY=y
|
||||
CONFIG_AWK=y
|
||||
CONFIG_FEATURE_AWK_LIBM=y
|
||||
CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y
|
||||
# CONFIG_CMP is not set
|
||||
CONFIG_CMP=y
|
||||
# CONFIG_DIFF is not set
|
||||
# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
|
||||
# CONFIG_FEATURE_DIFF_DIR is not set
|
||||
|
||||
@@ -40,6 +40,8 @@ BR2_PACKAGE_AVAHI=y
|
||||
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
|
||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
||||
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
|
||||
BR2_PACKAGE_DHCP=y
|
||||
BR2_PACKAGE_DHCP_CLIENT=y
|
||||
BR2_PACKAGE_DROPBEAR=y
|
||||
|
||||
@@ -48,6 +48,8 @@ BR2_PACKAGE_AVAHI=y
|
||||
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
|
||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
||||
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
|
||||
BR2_PACKAGE_DHCP=y
|
||||
BR2_PACKAGE_DHCP_CLIENT=y
|
||||
BR2_PACKAGE_DROPBEAR=y
|
||||
@@ -94,3 +96,4 @@ BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
|
||||
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
|
||||
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
|
||||
BR2_PACKAGE_APPARMOR=y
|
||||
BR2_PACKAGE_BLUETOOTH_BCM43XX=y
|
||||
|
||||
@@ -47,6 +47,8 @@ BR2_PACKAGE_AVAHI=y
|
||||
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
|
||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
||||
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
|
||||
BR2_PACKAGE_DHCP=y
|
||||
BR2_PACKAGE_DHCP_CLIENT=y
|
||||
BR2_PACKAGE_DROPBEAR=y
|
||||
|
||||
@@ -35,8 +35,8 @@ BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
|
||||
BR2_PACKAGE_RPI_FIRMWARE=y
|
||||
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
|
||||
BR2_PACKAGE_GPTFDISK=y
|
||||
BR2_PACKAGE_GPTFDISK_SGDISK=y
|
||||
BR2_PACKAGE_UBOOT_TOOLS=y
|
||||
@@ -48,6 +48,8 @@ BR2_PACKAGE_AVAHI=y
|
||||
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
|
||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
||||
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
|
||||
BR2_PACKAGE_DHCP=y
|
||||
BR2_PACKAGE_DHCP_CLIENT=y
|
||||
BR2_PACKAGE_DROPBEAR=y
|
||||
@@ -94,3 +96,4 @@ BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
|
||||
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
|
||||
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
|
||||
BR2_PACKAGE_APPARMOR=y
|
||||
BR2_PACKAGE_BLUETOOTH_BCM43XX=y
|
||||
|
||||
@@ -35,8 +35,8 @@ BR2_PACKAGE_JQ=y
|
||||
BR2_PACKAGE_E2FSPROGS=y
|
||||
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
|
||||
BR2_PACKAGE_SQUASHFS=y
|
||||
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
|
||||
BR2_PACKAGE_RPI_FIRMWARE=y
|
||||
BR2_PACKAGE_RPI_WIFI_FIRMWARE=y
|
||||
BR2_PACKAGE_GPTFDISK=y
|
||||
BR2_PACKAGE_GPTFDISK_SGDISK=y
|
||||
BR2_PACKAGE_UBOOT_TOOLS=y
|
||||
@@ -48,6 +48,8 @@ BR2_PACKAGE_AVAHI=y
|
||||
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
|
||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
||||
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
|
||||
BR2_PACKAGE_DHCP=y
|
||||
BR2_PACKAGE_DHCP_CLIENT=y
|
||||
BR2_PACKAGE_DROPBEAR=y
|
||||
@@ -94,3 +96,4 @@ BR2_PACKAGE_HASSOS_CLI_ARGS="--network=hassio --add-host hassio:172.30.32.2"
|
||||
BR2_PACKAGE_HASSOS_CLI_PROFILE="docker-default"
|
||||
BR2_PACKAGE_HASSOS_APPARMOR_DIR="supervisor/apparmor"
|
||||
BR2_PACKAGE_APPARMOR=y
|
||||
BR2_PACKAGE_BLUETOOTH_BCM43XX=y
|
||||
|
||||
@@ -47,6 +47,8 @@ BR2_PACKAGE_AVAHI=y
|
||||
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
|
||||
BR2_PACKAGE_AVAHI_DAEMON=y
|
||||
BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS=y
|
||||
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
|
||||
BR2_PACKAGE_DHCP=y
|
||||
BR2_PACKAGE_DHCP_CLIENT=y
|
||||
BR2_PACKAGE_DROPBEAR=y
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
VERSION_MAJOR=2
|
||||
VERSION_BUILD=0
|
||||
VERSION_MAJOR=1
|
||||
VERSION_BUILD=5
|
||||
|
||||
HASSOS_NAME="HassOS"
|
||||
HASSOS_ID="hassos"
|
||||
|
||||
DEPLOYMENT="development"
|
||||
DEPLOYMENT="production"
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
##
|
||||
# Hooks
|
||||
|
||||
# Handle boot hocks
|
||||
if [ "${RAUC_SLOT_CLASS}" = "boot" ]; then
|
||||
if [ "${1}" = "slot-post-install" ]; then
|
||||
@@ -9,4 +12,12 @@ if [ "${RAUC_SLOT_CLASS}" = "boot" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
##
|
||||
# Fixups
|
||||
|
||||
# timesyncd
|
||||
if [ -L /var/lib/systemd/timesync ]; then
|
||||
rm -f /var/lib/systemd/timesync
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
6
buildroot-external/package/bluetooth-bcm43xx/Config.in
Normal file
6
buildroot-external/package/bluetooth-bcm43xx/Config.in
Normal file
@@ -0,0 +1,6 @@
|
||||
config BR2_PACKAGE_BLUETOOTH_BCM43XX
|
||||
bool "bluetooth bcm43xx"
|
||||
depends on BR2_PACKAGE_BLUEZ5_UTILS_CLIENT
|
||||
select BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED
|
||||
help
|
||||
Install bluetooth for bcm43xx.
|
||||
18
buildroot-external/package/bluetooth-bcm43xx/bluetooth-bcm43xx
Executable file
18
buildroot-external/package/bluetooth-bcm43xx/bluetooth-bcm43xx
Executable file
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
HCIATTACH=/usr/bin/hciattach
|
||||
SERIAL=`cat /proc/device-tree/serial-number | cut -c9-`
|
||||
B1=`echo $SERIAL | cut -c3-4`
|
||||
B2=`echo $SERIAL | cut -c5-6`
|
||||
B3=`echo $SERIAL | cut -c7-8`
|
||||
BDADDR=`printf b8:27:eb:%02x:%02x:%02x $((0x$B1 ^ 0xaa)) $((0x$B2 ^ 0xaa)) $((0x$B3 ^ 0xaa))`
|
||||
|
||||
if [ "$(cat /proc/device-tree/aliases/uart0)" = "$(cat /proc/device-tree/aliases/serial1)" ] ; then
|
||||
if [ "$(wc -c /proc/device-tree/soc/gpio@7e200000/uart0_pins/brcm\,pins | cut -f 1 -d ' ')" = "16" ] ; then
|
||||
$HCIATTACH /dev/serial1 bcm43xx 3000000 flow - $BDADDR
|
||||
else
|
||||
$HCIATTACH /dev/serial1 bcm43xx 921600 noflow - $BDADDR
|
||||
fi
|
||||
else
|
||||
$HCIATTACH /dev/serial1 bcm43xx 460800 noflow - $BDADDR
|
||||
fi
|
||||
@@ -0,0 +1,32 @@
|
||||
################################################################################
|
||||
#
|
||||
# Bluetooth BCM43xx
|
||||
#
|
||||
################################################################################
|
||||
|
||||
BLUETOOTH_BCM43XX_VERSION = 1.0.0
|
||||
BLUETOOTH_BCM43XX_LICENSE = Apache License 2.0
|
||||
BLUETOOTH_BCM43XX_LICENSE_FILES = $(BR2_EXTERNAL_HASSOS_PATH)/../LICENSE
|
||||
BLUETOOTH_BCM43XX_SITE = $(BR2_EXTERNAL_HASSOS_PATH)/package/bluetooth-bcm43xx
|
||||
BLUETOOTH_BCM43XX_SITE_METHOD = local
|
||||
|
||||
define BLUETOOTH_BCM43XX_BUILD_CMDS
|
||||
curl -o $(@D)/BCM43430A1.hcd https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/master/broadcom/BCM43430A1.hcd
|
||||
curl -o $(@D)/BCM4345C0.hcd https://raw.githubusercontent.com/RPi-Distro/bluez-firmware/master/broadcom/BCM4345C0.hcd
|
||||
endef
|
||||
|
||||
define BLUETOOTH_BCM43XX_INSTALL_TARGET_CMDS
|
||||
mkdir -p $(TARGET_DIR)/etc/systemd/system/hassos-hardware.target.wants
|
||||
cp -f $(@D)/bluetooth-bcm43xx $(TARGET_DIR)/usr/sbin/
|
||||
cp -f $(@D)/bluetooth-bcm43xx.service $(TARGET_DIR)/usr/lib/systemd/system/
|
||||
ln -fs /usr/lib/systemd/system/bluetooth-bcm43xx.service $(TARGET_DIR)/etc/systemd/system/hassos-hardware.target.wants/
|
||||
|
||||
mkdir -p $(TARGET_DIR)/lib/firmware/brcm
|
||||
cp -f $(@D)/BCM43430A1.hcd $(TARGET_DIR)/lib/firmware/brcm/
|
||||
cp -f $(@D)/BCM4345C0.hcd $(TARGET_DIR)/lib/firmware/brcm/
|
||||
|
||||
mkdir -p $(TARGET_DIR)/etc/udev/rules.d
|
||||
cp -f $(@D)/bluetooth-bcm43xx.rules $(TARGET_DIR)/etc/udev/rules.d/
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
@@ -0,0 +1,22 @@
|
||||
KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\
|
||||
ALIASES=/proc/device-tree/aliases; \
|
||||
if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \
|
||||
echo 0;\
|
||||
elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \
|
||||
echo 1; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi\
|
||||
'", SYMLINK+="serial%c"
|
||||
|
||||
KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\
|
||||
ALIASES=/proc/device-tree/aliases; \
|
||||
if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \
|
||||
echo 0; \
|
||||
elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \
|
||||
echo 1; \
|
||||
else \
|
||||
exit 1; \
|
||||
fi \
|
||||
'", SYMLINK+="serial%c"
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Bluetooth for BCM43xx
|
||||
Before=bluetooth.service
|
||||
After=dev-ttyAMA0.device
|
||||
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
ExecStart=/usr/sbin/bluetooth-bcm43xx
|
||||
|
||||
[Install]
|
||||
WantedBy=hassos-hardware.target
|
||||
@@ -0,0 +1,2 @@
|
||||
[Policy]
|
||||
AutoEnable=true
|
||||
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/var-lib-bluetooth.mount
|
||||
@@ -0,0 +1 @@
|
||||
/usr/lib/systemd/system/hassos-hardware.target
|
||||
@@ -0,0 +1,2 @@
|
||||
[Unit]
|
||||
RequiresMountsFor=/var/lib/systemd
|
||||
@@ -0,0 +1,2 @@
|
||||
[Service]
|
||||
DynamicUser=no
|
||||
@@ -0,0 +1,3 @@
|
||||
[Unit]
|
||||
Description=HassOS hardware targets
|
||||
Documentation=man:systemd.target(5)
|
||||
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=Bluetooth persistent state
|
||||
Requires=mnt-overlay.mount
|
||||
After=mnt-overlay.mount
|
||||
Before=bluetooth.service
|
||||
|
||||
[Mount]
|
||||
What=/mnt/overlay/var/lib/bluetooth
|
||||
Where=/var/lib/bluetooth
|
||||
Type=None
|
||||
Options=bind
|
||||
|
||||
[Install]
|
||||
WantedBy=hassos-bind.target
|
||||
Reference in New Issue
Block a user