gpt4 book ai didi

linux - 如何使用 Yocto Poky Linux 在启动脚本中初始化蓝牙

转载 作者:太空狗 更新时间:2023-10-29 12:03:11 27 4
gpt4 key购买 nike

我有一个脚本可以在 Intel Edison 上初始化我的蓝牙设置。它允许配对和连接到这个运行 Yocto Poky Linux 的 headless 机器。有人建议我将启动脚本放在/etc/init.d 中并运行update-rc.d myscript.sh defaults。该脚本已运行但无法正常工作(生成引导错误,提示未找到蓝牙设备),因为蓝牙尚未启动。我做了一些研究,在删除我的链接后我做了 update-rc.d myscript.sh defaults 99 它声称最后运行脚本但它没有任何区别 - 它仍然在启动序列中的同一个地方运行.我确认链接上有 S99,所以看起来它们设置正确。 SO 上还有另一篇文章提出了类似的问题,但那是一个 Ubuntu 系统,而我的是 Poky Linux。该解决方案建议将启动脚本放在我的系统上不存在的目录中。还有其他建议,将它放在 rc.local 中,我这样做并得到了相同的结果,它在蓝牙初始化之前运行。

这是我的脚本。我的程序称为 nmea_thread,最后运行。其他一切都在初始化蓝牙。

#!/bin/sh
/usr/sbin/rfkill unblock bluetooth
/usr/bin/hciconfig hci0 up
/usr/bin/hciconfig hci0 piscan
/usr/bin/hciconfig hic0 sspmode 0
/home/root/simpleAgent/simple-agent &
/home/root/nmea_thread

最佳答案

蓝牙通常是异步初始化的,因此您无法确定添加 hci0 后您的脚本是否会运行。好的解决方案是在后台等待 BT 初始化:

#!/bin/bash

if [ "$1" != "background" ]; then
$0 background &
else
#Wait until BT is initialized
for ((i = 0; i <= 100; i++)) do
hciconfig hci0 && break
usleep 100000
done
/usr/sbin/rfkill unblock bluetooth
/usr/bin/hciconfig hci0 up
/usr/bin/hciconfig hci0 piscan
/usr/bin/hciconfig hic0 sspmode 0
/home/root/simpleAgent/simple-agent &
/home/root/nmea_thread
fi

关于linux - 如何使用 Yocto Poky Linux 在启动脚本中初始化蓝牙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27245227/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com