You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用未在lsusb中显示(识别为UART)的Mac Mini内置蓝牙适配器

如何禁用未在lsusb中显示(识别为UART)的Mac Mini内置蓝牙适配器

我太懂你想换掉Mac Mini那拉胯内置蓝牙的心情了!之前我也折腾过一模一样的情况——内置蓝牙既不在lsusb也不在lspci里,查了一堆资料都没头绪,后来终于摸出几个靠谱的永久禁用方法,分享给你:

方法一:用systemd把rfkill禁用做成开机自动执行

你之前用rfkill临时生效但重启失效?那直接把它做成开机服务就搞定了:

  1. 先找到你的内置蓝牙在rfkill里的标识:
    运行 rfkill list,找到蓝牙相关的条目,比如会显示类似0: hci0: Bluetooth Soft blocked: no Hard blocked: no,记住它的编号(比如0)或者直接用bluetooth这个类型。
  2. 创建一个systemd服务文件:
    用编辑器打开sudo nano /etc/systemd/system/disable-internal-bluetooth.service,填入以下内容:
    [Unit]
    Description=禁用Mac Mini内置蓝牙
    After=multi-user.target
    
    [Service]
    Type=oneshot
    ExecStart=/usr/sbin/rfkill block bluetooth  # 如果编号更精准,也可以写成rfkill block 0
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target
    
  3. 启用并测试服务:
    运行sudo systemctl enable disable-internal-bluetooth.service,然后重启电脑,内置蓝牙就会自动被禁用了。

方法二:用udev规则精准匹配UART蓝牙

Mac的内置蓝牙很多是走UART总线,所以得通过蓝牙控制器的sysfs信息来定位:

  1. 先获取蓝牙控制器的MAC地址:
    运行bluetoothctl show,找到开头的Controller XX:XX:XX:XX:XX:XX,记下这个MAC。
  2. 追踪UART设备的系统路径:
    进入蓝牙设备的sysfs目录:cd /sys/class/bluetooth/XX:XX:XX:XX:XX:XX(把XX换成你的MAC),然后运行ls -l device,会看到一个指向上游UART设备的链接,比如../../devices/platform/apple-bluetooth。
  3. 提取UART设备的唯一属性:
    运行udevadm info -a -p /sys/class/bluetooth/hci0,打印出完整的设备属性链,找最独特的标识——比如ATTRS{name}=="Apple Bluetooth UART"或者SUBSYSTEM=="tty"这类只有内置蓝牙才有的属性。
  4. 编写udev规则:
    创建规则文件sudo nano /etc/udev/rules.d/99-disable-internal-bluetooth.rules,填入匹配规则,比如:
    # 匹配Mac内置UART蓝牙并禁用
    ACTION=="add", SUBSYSTEM=="tty", ATTRS{name}=="Apple Bluetooth UART", RUN+="/usr/sbin/rfkill block bluetooth"
    
    保存后重启,udev就会在设备加载时自动禁用它。

方法三:内核模块黑名单(谨慎使用)

如果你的内置蓝牙依赖特定的内核模块,可以直接拉黑它,但要注意别影响USB蓝牙:

  1. 查看蓝牙相关模块:
    运行lsmod | grep bluetooth,找到可能关联的模块,比如UART蓝牙常用的hci_uart。
  2. 编辑黑名单文件:
    打开sudo nano /etc/modprobe.d/blacklist-bluetooth.conf,添加:
    blacklist hci_uart
    blacklist bluetooth
    
    注意:如果你的USB蓝牙也用hci_uart模块,这个方法会把它也禁用,所以一定要先确认内置和USB蓝牙的模块差异,或者用更精准的设备路径来黑名单模块(比如通过udev规则阻止模块加载)。

额外排查小技巧

  • 用dmesg | grep -i bluetooth查看开机日志,能找到内置蓝牙的初始化信息,比如Bluetooth: hci0: Apple Bluetooth UART,帮你快速定位设备标识。
  • 用udevadm monitor实时监听设备事件,当重启蓝牙时能看到设备的加载过程,方便提取属性写规则。

备注:内容来源于stack exchange,提问作者igorsantos07

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 07:55:32