На моем компьютере 18.04 со стандартным ядром 4.15 я использую стандартный CSR-ключ Bluetooth. Теперь проблема заключается в том, что аппарат не будет должным образом приостанавливаться при подключении этого ключа - он будет спать в течение 5–10 секунд, но затем возобновит работу самостоятельно, даже если в настоящее время никакие устройства Bluetooth не подключены или даже не включены. Когда я отключаю ключ перед тем, как приостановить, он остается приостановленным, как и должно.
Я мог бы просто полностью отключить пробуждение через USB, но я надеялся, что есть более детальное решение, которое просто предотвращает пробуждение через ключ Bluetooth ...
lsusb, usb-устройства, вывод hcitool для ключа:
Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#= 7 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0a12 ProdID=0001 Rev=88.91
S: Product=CSR8510 A10
C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
hci0: Type: Primary Bus: USB
BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN
RX bytes:124465 acl:0 sco:0 events:3928 errors:0
TX bytes:3182 acl:0 sco:0 commands:51 errors:0
Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'monolith'
Class: 0x0c0104
Service Classes: Rendering, Capturing
Device Class: Computer, Desktop workstation
HCI Version: 4.0 (0x6) Revision: 0x22bb
LMP Version: 4.0 (0x6) Subversion: 0x22bb
Manufacturer: Cambridge Silicon Radio (10)
Из этого ответа:
Можно создать названный сценарий /lib/systemd/system-sleep/cambridge.sh
#!/bin/bash
ZeroBUS1=$(lsusb | grep 0a12:0001 | cut -c 5-7 )
BUS1=$(echo $ZeroBUS1 | sed 's/^0*//') # Strip leading zeros
ZeroBUS2=$(lsusb | grep 0a12:0001 | cut -c 16-18 )
BUS2=$(echo $ZeroBUS2 | sed 's/^0*//') # Strip leading zeros
BUS="$BUS1"-"$BUS2"
case $1 in
suspend|suspend_hybrid|hibernate)
echo "Powering off: $BUS"
echo "$BUS" | sudo tee /sys/bus/usb/drivers/usb/unbind
;;
resume|thaw)
echo "Powering on: $BUS"
echo "$BUS" | sudo tee /sys/bus/usb/drivers/usb/bind
;;
esac
Mark файл как исполняемый файл с
sudo chmod a+x /lib/systemd/system-sleep/cambridge.sh
Вы, возможно, должны перезагрузить для изменений для вступления в силу.