我必须从命令中hcitool dev 只提取蓝牙加密狗的 MAC 地址。
的输出hcitool dev是:
Devices:
hci0 xx:xx:xx:xx:xx:xx
Run Code Online (Sandbox Code Playgroud)
我将此输出写入文件并尝试使用以下内容获取信息awk:
hcitool dev > /home/pi/mario/BT.txt
awk ' { print $2 } ' /home/pi/mario/BT.txt
Run Code Online (Sandbox Code Playgroud)
输出还包含第一行,它是一个空单元格:
xx:xx:xx:xx:xx:xx
我怎样才能推迟第一个细胞?
这样做的原因是我的手机将处于振动模式,我几乎总是忘记在我下课回到房间后切换回“一般”配置文件。因此,当手机不在口袋里时,我会错过很多电话。
当我到家时,我的笔记本电脑会一直开着。因此,如果我在桌面上收到电话通知,并且如果我是 AFK,在我的笔记本电脑上播放铃声,那就太棒了。
我希望我的笔记本电脑将自己作为蓝牙汽车音响系统呈现给我的 android 手机,然后在我的 (Arch) linux 桌面上收到来电通知。我不想要涉及 WiFi 或移动数据的解决方案。
一个名为 LINCONNECT 的应用程序/项目可以做到这一点,但通过 WiFi。但是我没有可用的 WLAN。这就是我坚持使用蓝牙的原因,它对电池的消耗也更少。
这可能吗?如果是这样,如何?如果没有,如何使它成为可能?
在 T430 上使用 pulseaudio 和 Arch Linux 将音频流式传输到我的蓝牙扬声器 (Sony SRS-X3) 时,我遇到了相当严重的音频跳跃。我认为这与一个已知的错误有关 [1]。扬声器与 Android 完美配合。
$ sudo lspci -nnk | grep -iA2 net
> Network controller [0280]: Intel Corporation Centrino Ultimate-N 6300 [8086:4238] (rev 3e)
> Subsystem: Intel Corporation Centrino Ultimate-N 6300 3x3 AGN [8086:1111]
> Kernel driver in use: iwlwifi
$ sudo lsusb | grep Blue
> 0a5c:21e6 Broadcom Corp. BCM20702 Bluetooth 4.0 [ThinkPad]
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何减少/防止跳过?帮助我理解问题的信息也受到赞赏。
我怀疑这与WiFi干扰有关。在关闭 WiFi 或深夜(流量减少)的情况下,跳过次数会减少。Android 如何处理这个问题?我的研究发现了 Linux Frequency Broker [2]。实施了吗?
[1] https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/405294
[2] https://wireless.wiki.kernel.org/en/developers/frequencybroker
5 年后,我的笔记本电脑状况良好(仍然)。
但我的内置蓝牙不再像以前那样了(由于它的广泛使用)并且在启动时几乎无法加载。由于广泛使用,我选择购买一个 10 美元的蓝牙棒,它接替了内置蓝牙棒的工作。
然而,内置的大多不亮,但有时仍会发出火花。有时候它真的很烦人,因为它只会破坏我的设置并覆盖一些东西。
我的问题:如何确保内置蓝牙永久禁用,而 USB 设备仍然能够发送我的音频/指点设备/...。
系统:Linux Mint 18(基础:Ubuntu 16.04)
lsusb 输出:
jeroen@laptop ~ $ lsusb
Bus 002 Device 002: ID 5986:02ac Acer, Inc
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 138a:0018 Validity Sensors, Inc. Fingerprint scanner
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
(Built-in BT) Bus 003 Device 004: ID 0a5c:21b4 Broadcom …Run Code Online (Sandbox Code Playgroud) 我一直在制作一个 BLE 外设的原型,它在一个像树莓一样的小板上以 root 身份运行。现在我正在强化事情并将 BLE 应用程序分区给非 root 用户。因此,我已将应用程序的 systemd 服务文件更改为如下所示:
[Unit]
Description=BLE Peripheral
[Service]
Type=simple
ExecStart=/usr/bin/python3 -u /opt/myPeripheral/bleMainloop
WorkingDirectory=/opt/myPeripheral
StandardOutput=journal
Restart=on-failure
User=blePeripheral
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
添加了User以blePeripheral用户身份运行的字段后,它现在无法启动,原因如下:
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 2 matched rules; type="method_call", sender=":1.6797" (uid=107 pid=17300 comm="/usr/bin/python3 -u /opt/pilot/bleMainloop ") interface="org.freedesktop.DBus.ObjectManager" member="GetManagedObjects" error name="(unset)" requested_reply="0" destination=":1.2" (uid=0 pid=1373 comm="/usr/lib/bluetooth/bluetoothd -d -E --noplugin=* “)
Run Code Online (Sandbox Code Playgroud)
我认为我需要做的是以某种方式允许dbus此非 root 用户的某些用途。我看到有一个bluetooth.confin /etc/dbus-1/system.d。我是否需要调整此文件中的某些内容以允许我的应用程序仍然使用 BLE DBus 服务?
从 bluez 5.44 开始,包含在 bluez-utils(其中包括 hcitool)中的 rfcomm 二进制文件被认为已弃用,从现在开始只包含在 AUR 提供的 bluez-utils-compat 包中。
是否有类似的命令行应用程序使用 rfcomm 内核模块将蓝牙设备绑定到串行端口,或者从现在开始我是否必须使用 PyBluez 或类似的库?
如果碰巧是后者,您会推荐哪些 Python 3 库?
如果有人知道,请告诉我为什么这么多 bluez-utils 突然被认为已弃用。我找不到任何关于那件事的信息。
该ArchWiki建议使用新的执行RFCOMM功能d-Bus的配置文件1 API。
我有一个蓝牙耳机 (Sony WH-1000XM3),只要我只将它用作输出设备,它就可以与 PulseAudio 完美配合。在 pavucontrol 中更改蓝牙配置文件适用于除 HSP/HFP 之外的所有内容(SBC、LDAC、aptX HD、aptX 和 AAC)。发生这种情况时,PulseAudio 会输出以下错误:
I: [pulseaudio] protocol-native.c: Application "PulseAudio-Lautstärkeregler" requests card profile change. card = bluez_card.38_18_4C_6D_C9_22, profile = headset_head_unit
I: [pulseaudio] core.c: default_sink: bluez_sink.38_18_4C_6D_C9_22.a2dp_sink -> alsa_output.usb-BEHRINGER_UMC204HD_192k-00.analog-surround-40
I: [pulseaudio] source-output.c: Freeing output 3 "Ausschlagsserkennung"
I: [bluetooth] bluez5-util.c: Transport /org/bluez/hci0/dev_38_18_4C_6D_C9_22/sep5/fd13 released
I: [pulseaudio] sink.c: Freeing sink 1 "bluez_sink.38_18_4C_6D_C9_22.a2dp_sink"
I: [pulseaudio] source.c: Freeing source 3 "bluez_sink.38_18_4C_6D_C9_22.a2dp_sink.monitor"
I: [pulseaudio] backend-native.c: doing connect
E: [pulseaudio] backend-native.c: connect(): Function not implemented
Run Code Online (Sandbox Code Playgroud)
开始时也
E: [pulseaudio] backend-ofono.c: Failed to …Run Code Online (Sandbox Code Playgroud) 我使用蓝牙管理器连接到我的新 K380,没有配对过程。之后,使用一段时间后,我注意到键盘不再响应,我总是重新连接它以使其正常工作。
我想知道是否有命令行方式来配对,因为蓝牙管理器说“设备存在配对问题”。
我将 Ubuntu 20.04 与 Dell Latitude e5450 和 Intel Wireless 7265(版本 59)一起使用
我使用 Windows11 双启动 Kali-Linux。所以问题是我想连接我的蓝牙扬声器(JBL GO),但不幸的是我无法连接。我使用 GUI 和 CLI 来连接到我的扬声器。之前工作得很好。我可以在 Windows 中连接,但不能在 Kali 中连接。
\n以下是使用 GUI 的消息:\n
这是使用 CLI 的消息:
\n$ bluetoothctl \nAgent registered\n[bluetooth]# agent KeyboardOnly\nAgent is already registered\n[bluetooth]# default-agent \nDefault agent request successful\n[bluetooth]# power on\nChanging power on succeeded\n[bluetooth]# scan on\nDiscovery started\n[CHG] Controller 00:1A:7D:DA:71:15 Discovering: yes\n[CHG] Device 30:C0:1B:95:1D:C3 RSSI: -51\n[CHG] Device 30:C0:1B:95:1D:C3 TxPower: 0\n[bluetooth]# remove 30:C0:1B:95:1D:C3\n[DEL] Device 30:C0:1B:95:1D:C3 JBL GO\nDevice has been removed\n[NEW] Device 30:C0:1B:95:1D:C3 JBL GO\n[CHG] Device 30:C0:1B:95:1D:C3 TxPower: 0\n[CHG] Device 30:C0:1B:95:1D:C3 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb\n[CHG] Device 30:C0:1B:95:1D:C3 UUIDs: …Run Code Online (Sandbox Code Playgroud) 有时,当我将系统设置为睡眠状态(挂起到 RAM)然后恢复时,将不再找到蓝牙适配器。如果我重新启动,它会再次工作。
这是(内部)蓝牙适配器,如下所示lsusb:
# lsusb | grep 8087
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Run Code Online (Sandbox Code Playgroud)
我能够扫描、连接和使用我的蓝牙设备。
lsusb不再显示上述设备,并kern.log说:
usb usb1-port10: Cannot enable. Maybe the USB cable is bad?
usb usb1-port10: Cannot enable. Maybe the USB cable is bad?
usb usb1-port10: attempt power cycle
usb 1-10: new low-speed USB device number 71 using …Run Code Online (Sandbox Code Playgroud)