После ухода в ждущий режим и поднятия из него тачпад не работает. До перезагрузки иксов. Как это побороть?
Справочно - отмечалось на железе macbookair 2011, т.е. завязка на броадкомовские модули
Linux AIR 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0424:2513 Standard Microsystems Corp.
Bus 001 Device 003: ID 05ac:850a Apple, Inc.
Bus 002 Device 002: ID 0424:2513 Standard Microsystems Corp.
Bus 001 Device 004: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 001 Device 005: ID 05ac:024c Apple, Inc.
Bus 002 Device 003: ID 05ac:8404 Apple, Inc.
Bus 001 Device 008: ID 05ac:821f Apple, Inc.
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Universal Host Controller #5 (rev 05)
00:1a.7 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5)
00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 2 (rev b5)
00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Universal Host Controller #1 (rev 05)
00:1d.7 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation QS67 Express Chipset Family LPC Controller (rev 05)
00:1f.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset Family 4 port SATA IDE Controller (rev 05)
00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05)
02:00.0 Network controller: Broadcom Corporation BCM43224 802.11a/b/g/n (rev 01)
03:00.0 PCI bridge: Intel Corporation Device 151a (rev 01)
04:00.0 PCI bridge: Intel Corporation Device 151a (rev 01)
04:03.0 PCI bridge: Intel Corporation Device 151a (rev 01)
04:04.0 PCI bridge: Intel Corporation Device 151a (rev 01)
05:00.0 System peripheral: Intel Corporation Device 151a (rev 01)
dmesg | tail
[ 5398.847775] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
[ 5398.851922] cfg80211: Found new beacon on frequency: 5200 MHz (Ch 40) on phy0
[ 5632.161832] ieee80211 phy0: brcms_c_ampdu_dotxstatus_complete: Pkt tx suppressed, illegal channel possibly 40
[ 5632.161846] ieee80211 phy0: AMPDU status: BA Timeout, seq 1343, in_transit 0
[ 5752.568042] ieee80211 phy0: brcms_c_ampdu_dotxstatus_complete: Pkt tx suppressed, illegal channel possibly 40
[ 5752.568056] ieee80211 phy0: AMPDU status: BA Timeout, seq 1913, in_transit 0
[ 5993.712809] ieee80211 phy0: brcms_c_ampdu_dotxstatus_complete: Pkt tx suppressed, illegal channel possibly 40
[ 5993.712815] ieee80211 phy0: AMPDU status: BA Timeout, seq 3599, in_transit 0
[ 5993.712997] ieee80211 phy0: brcms_c_ampdu_dotxstatus_complete: Pkt tx suppressed, illegal channel possibly 40
[ 5993.713000] ieee80211 phy0: AMPDU status: BA Timeout, seq 3600, in_transit 0
если быть более точным, то после выхода из ждущего режима при тапе двумя пальцами тачпад таскает по экрану окна, одним пальцем крутит прокрутку, но курсор мыши остается недвижимым.
Проблема решается засовыванием скрипта следующего содержания -
sudo gedit /usr/lib/pm-utils/sleep.d/02touchpad
в него запихиваем:
#!/bin/bash
if [ -e '/usr/lib/pm-utils/functions' ];then
. /usr/lib/pm-utils/functions
fi
suspend_bcm5974() { /sbin/rmmod bcm5974; }
resume_bcm5974() { /sbin/modprobe bcm5974; }
case "$1" in
suspend|hibernate)
suspend_bcm5974;
;;
thaw|resume)
resume_bcm5974;
;;
*)
;;
esac
exit $?
даем скрипту право на исполнение.