bluetooth can be found e_player can run

This commit is contained in:
hyx 2026-04-09 12:30:22 +08:00
parent 356d026942
commit 16ee54451d
2 changed files with 71 additions and 60 deletions

View File

@ -9,11 +9,13 @@ HCIATTACH_ARGS="-s 1500000 ${UART_DEV} any 1500000 flow nosleep"
HCI_TOOL=/usr/bin/bt-hci-tool
BTGATT_BIN=/usr/bin/btgatt-server
BTGATT_ARGS="-i ${HCI_DEV} -s low -t public"
BT_LOCAL_NAME="DSL-ETAG"
BLUETOOTHD_BIN=/usr/libexec/bluetooth/bluetoothd
BT_LOCAL_NAME="AIC-BT"
HCI_WAIT_TIMEOUT=10
ATTACH_PIDFILE=/var/run/hciattach.pid
BTGATT_PIDFILE=/var/run/btgatt-server.pid
BLUETOOTHD_PIDFILE=/var/run/bluetoothd.pid
wait_for_hci()
{
@ -25,20 +27,16 @@ bring_hci_up()
"${HCI_TOOL}" up "${HCI_DEV}"
}
set_hci_name()
{
"${HCI_TOOL}" name "${HCI_DEV}" "${BT_LOCAL_NAME}"
}
start_bt()
{
echo "[BT] Init AIC8800..."
insmod /lib/modules/5.10.44/kernel/drivers/net/wireless/aic8800/aic8800_btlpm/aic8800_btlpm.ko
insmod /lib/modules/5.10.44/kernel/drivers/net/wireless/aic8800/aic8800_btlpm/aic8800_btlpm.ko 2>/dev/null
sleep 1
killall hciattach 2>/dev/null
killall bluetoothd 2>/dev/null
killall btgatt-server 2>/dev/null
rm -f "${ATTACH_PIDFILE}" "${BTGATT_PIDFILE}"
rm -f "${ATTACH_PIDFILE}" "${BLUETOOTHD_PIDFILE}" "${BTGATT_PIDFILE}"
"${HCIATTACH_BIN}" ${HCIATTACH_ARGS} &
echo $! > "${ATTACH_PIDFILE}"
@ -53,19 +51,25 @@ start_bt()
return 1
fi
if ! set_hci_name; then
echo "[BT] WARN: failed to set controller local name"
fi
# 先启动 LE 广播
hciconfig ${HCI_DEV} leadv 0
sleep 1
echo "[BT] HCI ready"
# 启动 bluetoothd
"${BLUETOOTHD_BIN}" &
echo $! > "${BLUETOOTHD_PIDFILE}"
# 启动 btgatt-server设置广播数据包含名称
"${BTGATT_BIN}" ${BTGATT_ARGS} >/dev/null 2>&1 &
echo $! > "${BTGATT_PIDFILE}"
echo "[BT] GATT server started"
echo "[BT] Bluetooth ready with GATT server"
}
stop_bt()
{
hciconfig ${HCI_DEV} noleadv 2>/dev/null
if [ -f "${BTGATT_PIDFILE}" ]; then
kill "$(cat "${BTGATT_PIDFILE}")" 2>/dev/null
rm -f "${BTGATT_PIDFILE}"
@ -73,6 +77,13 @@ stop_bt()
killall btgatt-server 2>/dev/null
fi
if [ -f "${BLUETOOTHD_PIDFILE}" ]; then
kill "$(cat "${BLUETOOTHD_PIDFILE}")" 2>/dev/null
rm -f "${BLUETOOTHD_PIDFILE}"
else
killall bluetoothd 2>/dev/null
fi
if [ -f "${ATTACH_PIDFILE}" ]; then
kill "$(cat "${ATTACH_PIDFILE}")" 2>/dev/null
rm -f "${ATTACH_PIDFILE}"

Binary file not shown.