블루투스가 활성화되면 일시 중지/절전할 수 없습니다. 시스템 로그에 오류 메시지가 없습니다.
그러나 rfkill block bluetooth
그 후에는 성공적으로 잠을 자거나 일시 중지할 수 있습니다.
블루투스 마우스를 사용하기 때문에 블루투스를 영구적으로 비활성화할 수 없습니다.
블루투스 기능을 사용하면서 어떻게 잠자기/일시 중단을 할 수 있나요?
답변1
이유
핵심버그 200039 - BT 광고 패킷이 S3에서 시스템을 깨우고 유휴 상태로 정지합니다..
이는 Intel( 8087:0aaa
) 및 Atheros( 0cf3:e005
) 0cf3:e007
Bluetooth에 영향을 미칩니다.
- 에이서 스위프트 SF314-55
- 아수스 UX333FA
- 아수스 UX433FN
- 아수스 UX533FD
해결책
해결 방법은 절전/일시 중단 전에 Bluetooth USB 장치의 인증을 자동으로 취소한 다음 절전 모드 해제 시 다시 인증하는 것입니다.
해결 방법은 systemd
다음을 사용하는 것입니다.
/etc/systemd/system/bluetooth-disable-before-sleep.service
("CHANGE ME" 줄을 참고하세요):
[Unit]
Description=disable bluetooth for systemd sleep/suspend targets
Before=sleep.target
Before=suspend.target
Before=hybrid-sleep.target
Before=suspend-then-hibernate.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
# Usage: bluetooth-sleep (start|stop) <vendor> <product>
# Get values from `lsusb`:
# eg: Bus 001 Device 003: ID 8087:0aaa Intel Corp.
# Usage: bluetooth-sleep (start|stop) 8087 0aaa
##### CHANGE ME: (the two hex values at end of next line) ###
ExecStart=/usr/local/bin/bluetooth-sleep start 8087 0aaa
##### CHANGE ME: (the two hex values at end of next line) ###
ExecStop=/usr/local/bin/bluetooth-sleep stop 8087 0aaa
[Install]
WantedBy=sleep.target
WantedBy=suspend.target
WantedBy=hybrid-sleep.target
WantedBy=suspend-then-hibernate.target
/usr/local/bin/bluetooth-sleep
:
#!/bin/bash
# Disable bluetooth given first argument "start"
# Re-enable bluetooth given first argument "stop"
# Expects vendor and product as 2nd and 3rd arguments
set -eu
usage() {
script_name=${0##*/}
printf '%s: de-authorise bluetooth during sleep/suspend\n' "$script_name" >&2
printf 'Usage: %s (start|stop) <vendor> <product>\n' "$script_name" >&2
exit 1
}
case "${1:-}" in
start) value=0 ;;
stop) value=1 ;;
*) usage ;;
esac
[ $# -ne 3 ] && usage
vendor=$2
product=$3
shopt -s nullglob
for dir in /sys/bus/usb/devices/*; do
if [[ -L "$dir" && -f $dir/idVendor && -f $dir/idProduct &&
$(cat "$dir/idVendor") == "$vendor" &&
$(cat "$dir/idProduct") == "$product" ]]; then
echo "$value" > "$dir/authorized"
echo "echo $value > $dir/authorized"
fi
done
~에 귀속됨이 게시물.