解决macbookpro debian13 挂起后wifi失效问题

📅 2026/8/2 7:55:43 👁️ 阅读次数 📝 编程学习
解决macbookpro debian13 挂起后wifi失效问题

1. 创建 resume 脚本

打开终端:

 
sudo nano /lib/systemd/system-sleep/brcmfmac-reset
 

写入:

 
#!/bin/shif [ "$1" = "post" ]; thenecho -n "0000:03:00.0" > /sys/bus/pci/drivers/brcmfmac/unbindsleep 1echo 1 > /sys/bus/pci/devices/0000:03:00.0/resetsleep 1echo -n "0000:03:00.0" > /sys/bus/pci/drivers/brcmfmac/bind
fi
 

保存退出。


2. 添加执行权限

 
sudo chmod +x /lib/systemd/system-sleep/brcmfmac-reset
 

3. 测试

先手动挂起:

 
systemctl suspend
 

恢复后等待几秒,WiFi 应该自动回来。


4. 如果想看是否执行成功

查看日志:

 
journalctl -b | grep brcmfmac
 

或者临时加入日志:

修改脚本:

 
#!/bin/shif [ "$1" = "post" ]; thenlogger "Resetting brcmfmac PCI device"echo -n "0000:03:00.0" > /sys/bus/pci/drivers/brcmfmac/unbindsleep 1echo 1 > /sys/bus/pci/devices/0000:03:00.0/resetsleep 1echo -n "0000:03:00.0" > /sys/bus/pci/drivers/brcmfmac/bindlogger "brcmfmac reset finished"
fi
 

恢复后:

 
journalctl -b | grep brcmfmac
 

更稳妥的版本(推荐 MacBook Pro)

有些 MacBook 的 Broadcom 芯片恢复时 bind 太快可能失败,可以加检测:

 
#!/bin/shif [ "$1" = "post" ]; thenDEV="0000:03:00.0"if [ -e /sys/bus/pci/drivers/brcmfmac/$DEV ]; thenecho -n "$DEV" > /sys/bus/pci/drivers/brcmfmac/unbindsleep 2fiecho 1 > /sys/bus/pci/devices/$DEV/resetsleep 2echo -n "$DEV" > /sys/bus/pci/drivers/brcmfmac/bind
fi
 

不过注意:0000:03:00.0 是固定 PCI 地址,不同 MacBook Pro 型号可能不同。以后如果换内核或机器失效,可以确认:

 
lspci | grep -i network
 

例如看到:

 
03:00.0 Network controller: Broadcom ...
 

才对应这个地址。