1. installation
vi /etc/modules-load.d/cid.conf
bluetooth
btbcm
hci_uart
source /bin/cid-functions
cid_del_line /etc/modprobe.d/blacklist.conf bluetooth
cid_del_line /etc/modprobe.d/blacklist.conf btbcm
cid_del_line /etc/modprobe.d/blacklist.conf hci_uart
modprobe bluetooth
modprobe btbcm
modprobe hci_uart
yum -y install bluez bluez-tools rfkill usbutils
systemctl start bluetooth.service
2. debug
hcitool dev
Devices:
hci0 00:09:DD:50:88:BA
hciconfig
hci0: Type: Primary Bus: USB
BD Address: 00:09:DD:50:88:BA ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING
RX bytes:1094 acl:0 sco:0 events:54 errors:0
TX bytes:1916 acl:0 sco:0 commands:52 errors:0
bluetoothctl
[NEW] Controller 00:09:DD:50:88:BA srv030.d01.net [default]
[bluetooth]#
bt-adapter -d
Searching...
[88:C6:26:71:AB:A5]
Name: Logitech BT Adapter
Alias: Logitech BT Adapter
Address: 88:C6:26:71:AB:A5
Icon: audio-card
Class: 0x240414
LegacyPairing: 0
Paired: 0
RSSI: -32
3. working with raspbian
btuart
bcm43xx_init
Flash firmware /lib/firmware/brcm/BCM4345C0.hcd
Set Controller UART speed to 3000000 bit/s
Device setup complete
hcitool dev
Devices:
hci0 DC:A6:32:2A:56:7D
bluetoothctl list
Controller DC:A6:32:2A:56:7D raspberrypi [default]
4. srv030 + external key
lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) <<<<<<<<<
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
5. thinkpad t420 + onboard bluetooth
bluetoothctl
Agent registered
[CHG] Device F8:AD:CB:19:1F:93 RSSI: -64
[CHG] Device F8:AD:CB:19:1F:93 Connected: yes
6. scripts
wget -N -nv d01cid.ddns.net/sharel/lib/firmware/brcm/BCM4345C0.hcd -P /lib/firmware/brcm/
cd /etc/; ln -sv ../lib/firmware/ .; cd
cd /dev/; ln -sv ./ttyAMA0 serial1; cd
cd /dev/; ln -sv ./ttyS0 serial0; cd
ll /dev/serial*
lrwxrwxrwx 1 root root 5 Jun 16 20:26 /dev/serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 Jun 16 20:26 /dev/serial1 -> ttyAMA0
btuart
bcm43xx_init
Flash firmware /lib/firmware/brcm/BCM4345C0.hcd
Set Controller UART speed to 3000000 bit/s
Device setup complete
vi btuart
#!/bin/sh
HCIATTACH=/usr/bin/hciattach
if grep -q "Pi 4" /proc/device-tree/model; then
BDADDR=
else
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))`
fi
uart0="`cat /proc/device-tree/aliases/uart0`"
serial1="`cat /proc/device-tree/aliases/serial1`"
if [ "$uart0" = "$serial1" ] ; then
uart0_pins="`wc -c /proc/device-tree/soc/gpio@7e200000/uart0_pins/brcm\,pins | cut -f 1 -d ' '`"
if [ "$uart0_pins" = "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