5 grub arch-linux linux-kernel command grub-legacy
Linux 中的蓝牙是一团糟。经过几个小时的尝试让蓝牙甚至打开后,我发现将其添加到 grub 中可以解决问题,现在它至少可以打开,尽管不与任何设备配对。
我去重新配置了我的 GRUB 旧版/etc/default/grub
并添加了
GRUB_CMDLINE_LINUX_DEFAULT=btusb.enable_autosuspend=n
但有人能告诉我这实际上做了什么以及为什么有效吗?
我的猜测是它告诉蓝牙不要自动暂停,但是为什么蓝牙在打开我的拱形设备时首先会这样做?
我在配备 Intel centrum 1000 N 的 Dell 上使用 Arch linux
首先,我们来看看您真正拥有的是哪种蓝牙适配器。鉴于 Intel Centrino WirelessN 1000 适配器的网络规格表示它不支持蓝牙并且是PCIe Half Mini Card,并且上面引用的 btusb 参数正在影响您的设置,您应该查看 的输出以lsusb -tv
查找您的戴尔中安装了哪个 USB 蓝牙适配器。您应该确认您没有使用任何假冒的 Barrot 8041A02 克隆,众所周知,无论如何btusb.enable_autosuspend
设置,这些克隆都存在各种暂停和恢复问题。
在最新的稳定内核(撰写本文时为 v5.12)中,btusb.enable_autosuspend
布尔内核参数会影响探测 btusb 设备时usb_enable_autosuspend
是否调用。
如USB 内核文档的电源管理中所述:
\n\n\n驱动程序可以通过调用以下命令为其设备启用自动挂起:
\nRun Code Online (Sandbox Code Playgroud)\nusb_enable_autosuspend(struct usb_device *udev);\n
在他们的
\nprobe()
日常工作中,如果他们知道设备能够正确挂起和恢复。auto
这与写入device\xe2\x80\x99s属性完全相同power/control
。同样,驱动程序可以通过调用禁用自动挂起:Run Code Online (Sandbox Code Playgroud)\nusb_disable_autosuspend(struct usb_device *udev);\n
\n
on
这与写入属性完全相同power/control
。有时驱动程序需要确保在自动挂起期间启用远程唤醒。例如,如果用户无法通过在键盘上打字来远程唤醒键盘,那么自动挂起键盘就没有多大意义。如果驱动程序设置
\nintf->needs_remote_wakeup
为 1,则当远程唤醒不可用时,内核将不会自动挂起设备。(但是,如果设备已经自动挂起,设置此标志不会导致内核自动恢复它。通常驱动程序会在其探测方法中设置此标志,此时保证设备不会自动挂起.)
如果没有有关您的戴尔的更多详细信息,并且鉴于上述文档,我只能假设:
\n您应该对照 的grep . /sys/bus/usb/devices/*/power/wakeup
输出检查 的输出lsusb -tv
,以确认该/sys/bus/usb/devices/${Bus}-${Port}/power/wakeup
输出适用enabled
于您的蓝牙适配器。您可以使用以下命令在所有 USB 设备上启用唤醒功能,以便进行测试,而无需调整内核启动参数并重新启动:
echo enabled | sudo tee -a /sys/bus/usb/devices/*/power/wakeup\n
Run Code Online (Sandbox Code Playgroud)\n